• Hadoop入门之安装配置(hadoop-0.20.2)


          Hadoop,简单理解为HDFS(分布式存储)+Mapreduce(分布式处理),专为离线和大规模数据分析而设计。

          Hadoop可以把很多linux的廉价PC组成分布式结点,然后编程人员也不需要知道分布式算法之类的,只需根据mapreduce的规则定义好的接口方法,剩下的就交给hadoop,它会自动把相关的计算分布到各个结点上去,然后得到结果。

          比如,有一个1PB的文件,我们要分析其中的有用的数据,首先我们把1PB的数据文件导入到HDFS中,然后编程人员定义好map和reduce函数,也就是把文件的行定义为key,每行内容定义为value,然后进行匹配,匹配成功把结果通过reduce聚合起来,Hadoop就会把这个程序分别到N个结点去并行操作,缩短时间。

         环境软件准备:VMware10、Cent6.5、JDK1.8.0_65、hadoop-0.20.2

         我们在VMware10上安装三个Cent6.5OS,三个节点,其中一个为服务器master,另外两个为客户机slave(node)

         安装的过程可以借助网上的相关文档:http://wenku.baidu.com/link?url=er-Uo_5unEZGIcyg14wzZydaB5cqaUE-yAQddxCC7rS_rBtBBtsFgtVkVETRWZTsmi46_f7d5MBgPVWvnRdoKPMjuwDLLlpcSwAZRBT10m_

         安装好CentOS后,即可在每台机器上安装JDK,安装地址参考:http://jingyan.baidu.com/article/c74d60007b85510f6a595dfa.html

         Java JDK安装好之后就可以正式开始安装Hadoop了。

        第一步:修改主机名称hostname,修改后可以重启CentOS

        [root@wy ~]$   vi /ect/sysconfig/network

        修改其中的HostName=master,修改后可以重启一下CentOS,以让其生效。

        其余两个节点也类似方式,分别将HostName修改为node2、node3

        第二步:在三个节点上都配置hosts文件,确定每台CentOS的IP和主机名对应上

        [root@master ~]$   ifconfig

        查看各个节点的IP地址,然后在hosts文件中输入IP+主机名

        [root@master ~]$  vi /etc/hosts

        在打开的hosts文件中,输入i,即可编辑文件,输入以下内容后,按ESC,后输入:wq后即可保存退出。

        192.168.1.188  master

        192.168.1.189  node2

        192.168.1.190  node3

        第三步:创建hadoop群组和hadoop用户(三个节点都要做如下配置)

        [root@master ~]$ groupadd hadoop  --创建hadoop组

        [root@master ~]$ useradd hadoop -g hadoop --为hadoop组中添加一个用户,用户名为hadoop

        [root@master ~]$ passwd hadoop --为hadoop用户指定密码

        这样即可完成组和用户的创建,在创建完后,即可开始进行下面的操作了。

        第四步:配置ssh免密码连入(三个节点都要做如下配置)

        系统默认是root用户登录的,所以首先是要切换到hadoop用户,以及导航到根目录。然后利用命令生成公钥和私钥,生成位置在.ssh目录下,生成后导航到.ssh目录下,利用ls命令即可查看生成出来的文件,最后将公钥文件中的内容复制成authorized_keys文件,具体涉及命令如下:

        [root@master ~]$ su hadoop

        [hadoop@master ~]$ cd ~

        [hadoop@master ~]$ ssh-keygen -t dsa -P '' -f  ~/.ssh/id_dsa

        [hadoop@master ~]$ cd .ssh/

        [hadoop@master ~]$ cat id_dsa.pub >> authorized_keys

        

        将公钥复制到authorized_keys文件之后一定要修改权限,否则无法进行下一步操作,就像上图中红色框中的内容.

        修改.ssh文件夹以及authorized_keys文件的权限

       [hadoop@master ~]$ chmod 700 ~/.ssh

       [hadoop@master ~]$ chmod 600 ~/.ssh/authorized_keys

       完成以上操作后,可以对各个节点进行自检测

       [hadoop@master ~]$ ssh localhost --第一次连接需要输入yes

       [hadoop@master ~]$ ssh localhost --第一次连接可直接连接,即表示配置成功

       下面开始配置主节点master可以通过ssh免密码登录两个子节点(node2、node3),在未做以下操作前,如果你在命令行输入ssh node2,是需要输入密码的.

       为了实现这个功能,两个node节点的公钥文件中必须要包含主节点的公钥信息,这样master就可以顺利安全访问两个node。

       首先在node3上做如下操作:(node2和master上也需要做以下操作)

       

       这时候,在master中用ssh连接node2就不需要输入密码了,即表示配置成功。

        第五步:下载安装hadoop

        将下载的hadoop文件放在/home/hadoop用户的根目录下,接着开始解压

        [hadoop@master ~]$ tar xzvf /root/hadoop-0.20.2.tar.gz

        解压后文件会是/home/hadoop/hadoop-0.20.2,此时为了以后操作方便,修改了文件的名称,将hadoop-0.20.0修改为hadoop(这步操作其实完全可以不需要做)。

        解压后需要在/etc/porfile文件中配置hadoop的环境变量

        [hadoop@master ~]$ vi /etc/profile

        export HADOOP_INSTALL=/home/hadoop/hadoop --第一个hadoop是用户名,第二个是刚才修改的文件名称

        export PATH=$PATH:$HADOOP_INSTALL/bin

        接着,就可以修改hadoop的配置文件了,分别是core.site.xml、hdfs-site.xml、mapred-site.xml、hadoop-env.sh、masters、slaves文件(在mater主节点中配置)

    core.site.xml

    <configuration>  
      <property>  
        <!-- 用于设置Hadoop的文件系统,由URI指定 -->
        <name>fs.default.name</name>  
        <value>hdfs://mater:9000</value>  
      </property>  
      <property>
    <!-- 配置Hadoop的临时目录,默认在/tmp目录下,但是/tmp上面可能会被系统自动清理掉。-->
    <name>hadoop.tmp.dir</name>
    <!-- 目录如果不存在,需要手动创建 -->
        <value>/home/hadoop/hadoop/tmp</value>
        <description>A base for other temperary directory</description>
      </property>
    </configuration>  

    hdfs-site.xml

    <configuration> 
            <property> 
                <name>dfs.name.dir</name> 
                <value>/home/hadoop/hadoop/name</value> 
            </property> 
            <property> 
                <name>dfs.data.dir</name> 
                <value>/home/hadoop/hadoop/data</value> 
            </property> 
            <property> 
                <name>dfs.replication</name> 
                <value>2</value> 
            </property> 
    </configuration> 

    mapred-site.xml

    <configuration>  
      <property>  
        <name>mapred.job.tracker</name>
        <!-- 主节点IP-->
        <value>192.168.1.188:9001</value>  
      </property>  
    </configuration>

    hadoop-env.sh

    <!--在该文件中去掉export JAVA_HOME前面的#,然后根据自己的JDK路径实际配置-->
    export JAVA_HOME=/usr/java/jdk1.8.0_65

    masters

    master

    slaves

    node2
    node3

     在主节点中完成以上配置后,就可以将hadoop复制到node2、node3节点中,这样子节点也就安装好hadoop。

     [hadoop@master ~]$ scp -r ./hadoop node2:~

     [hadoop@master ~]$ scp -r ./hadoop node3:~

    第六步:关闭防火墙,启动hadoop

    在启动hadoop之前要先关闭防火墙,否则会失败。

    关闭完防火墙,在启动hadoop之前,要再做一部格式化主节点master上的namenode(只需要在主节点上操作,子节点中对应只有datanode)

    格式化中出现上图标示的successfully formatted 后即可启动hadoop。

    启动后,可用JPS命令查看各个节点的各个进程是否启动成功。(在三个节点都做以下操作)

    在node2、node3用JPS输入后显示的是:

    Jps

    DataNode

    TaskTracker

    这样,安装和配置环节终于完成,最后通过web方式验证hadoop是否安装成功。

    在主节点的centos中打开浏览器,默认是火狐,在url地址栏分别输入以下两个命令

    http://192.168.1.188:50030/jobtracker.jsp

    http://192.168.1.188:50070

    分别出现以下页面,即表示安装成功:

    http://192.168.1.188:50030/jobtracker.jsp

    http://192.168.1.188:50070

  • 相关阅读:
    在浏览器中输入URL并回车后都发生了什么?
    HashMap数据结构
    记录一次mysql死锁
    常见排序(归并排序)
    记录一次redis事故
    jsp与javaBean
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.zhuoshi.entity.Dep#1]
    Oracle创建表空间报错:O/S-Error: (OS 3) 系统找不到指定的路径
    在myeclipse中maven项目关于ssh整合时通过pom.xml导入依赖是pom.xml头部会报错
    2018idea如何布置tomcat修改URL后连接不到
  • 原文地址:https://www.cnblogs.com/wangyong/p/4913770.html
Copyright © 2020-2023  润新知