hadoop2.7.1集群配置过程

Hadoop2.7.1集群安装流程:

 

1.硬件配置:

1台:Namenode 24核3.5g  256G内存 硬盘1.8T

2台:Datanode 24核3.5g  256G内存硬盘1.8T

以上均为物理机

 

2.配置域名解析

编辑/etc/sysconfig/network, hostname要编辑成如下形式

图1

        

编辑/etc/hosts

   图2

         图1和图2均为namenode上的配置,dw-server20-30.wlt为主机名,两个地方需要保持一致

3.配置ssh公钥密钥自动登录

使用的命令有:ssh-keygen  -t  rsa

产生了两个文件,私钥文件:id_raa公钥文件:id_rsa.pub

cat id_rsa.pub >> authorized_keys 

再把产生的文件拷贝到datanode的相应目录中

scp ./*  root@dn1:/root/.ssh/  

 

 

把两类文件从namenode上copy到datanode上,

         Scp  /root/.ssh/* root@dn1:/root/.ssh

         Scp  /etc/hosts root@dn1:/etc/

 

再测试从namenode到datanode的无钥密自动登录

 

免密码登录失败的常见原因,无非是目录权限问题:

1.      当前用户的主目录,建议配置成700, chmod 700 /home/dba

2.      .ssh目录的权限,建议配置成700,chmod 700 /home/dba/.ssh

3.      authorized_keys文件的权限,建议配置成600或者644,chmod600 /home/dba/.ssh/ authorized_keys

4.下载并配置jdk

下载jdk1.7.0_79.tar.gz

解压 tar –zxvf  jdk1.7.0_79.tar.gz

编辑/etc/profile,添加

exportJAVA_HOME=/home/huzhihua/jdk1.7.0_79

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=$PATH:$JAVA_HOME/bin

 

5.安装hadoop2.7.1

1) 下载并解压hadoop-2.7.1.tar.gz

]# tar –zxvf hadoop-2.7.1.tar.gz

2) 把安装目录移动到/home/hadoop

]#mv hadoop-2.7.1 /home/hadoop  //统一放到/home/hadoop下,方便管理

3) 创建目录

创建tmp hdfs/name hdfs/data

]#mkdir –p tmp  hdfs/name hdfs/data

 

注:Hdfs/data为datanode上的hdfs的存放目录,hdfs/name为namenode上hdfs的存放目录,tmp为临时目录

 

4) 配置各种配置文件

各种配置文件包括:core-site.xml、yarn-site.xml、mapred-site.xml、hdfs-site.xml、slaves

 

我们可以通过apache的官网去查询各种配置文件的范本,地址http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common

每个配置属性后面都有相应的默认配置和解释

目录在${HADOOP_HOME}/etc/hadoop下

 

Core-site.xml的配置如下

<configuration>

    <property>

        <name>fs.defaultFS</name>   //配置namenode的地址

        <value>hdfs://nn </value>//端口默认为8020

    </property>

    <property>

        <name>hadoop.tmp.dir</name>            //配置tmp目录

       <value>/home/hadoop/tmp</value>

    </property>

    <property>

       <name>io.file.buffer.size</name>//sequencefileread/writebuffer,默认是物理页大小4096的整数倍

        <value>131072</value>

    </property>

</configuration>

 

Hdfs-site.xml的配置

<configuration>

    <property>

        <name>dfs.namenode.name.dir</name>//namenodehdfs的路径

        <value>file:///home/hadoop/hdfs/name</value>

    </property>

    <property>

       <name>dfs.datanode.data.dir</name> //datanodehdfs路径

        <value>file:///home/hadoop/hdfs/data</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>//tmp路径

       <value>/home/hadoop/tmp</value>

    </property>

    <property>

       <name>dfs.replication</name> //datanode个数

        <value>2</value>

    </property>

    <property>

       <name>dfs.namenode.secondary.http-address</name> //第二个namenode的地址和端口,可以不在本机

       <value>172.16.19.201:9001</value>

    </property>

    <property>

   <name>dfs.webhdfs.enabled</name>

    <value>true</value>

    </property>

</configuration>

 

mapred-site.xml的配置

<configuration>

   <property>

       <name>mapreduce.framework.name</name>// mapreduce的调度程序指定为hadoop  yarn

       <value>yarn</value>

   </property>

   <property>

       <name>mapreduce.jobhistory.address</name>//查看mapreduce的历史情况

       <value>172.16.19.201:10020</value>

   </property>

   <property>

       <name>mapreduce.cluster.local.dir</name>

       <value>/home/hadoop/hdfs/data</value>

   </property>

   <property>

       <name>mapreduce.jobhistory.webapp.address</name>

       <value>172.16.19.201:19888</value>

   </property>

</configuration>

 

Yarn-site.xml的配置

<configuration>
    <property>
       <name>yarn.nodemanager.aux-services</name>
//shuffle service that needed to be set for mapreduceapplication
       <value>mapreduce_shuffle</value>
    </property>
    <property>
       <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
       <name>yarn.resourcemanager.address</name>
//resourcemanager的地址和端口
        <value>172.16.19.201:8032</value>
    </property>
    <property>
       <name>yarn.resourcemanager.scheduler.address</name>
//application master用来获取调度资源的地址和端口
        <value>172.16.19.201:8030</value>
    </property>
    <property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
//resoucemanager对nodemananger开放的地址和端口
        <value>172.16.19.201:8031</value>
    </property>
    <property>
       <name>yarn.resourcemanager.admin.address</name>
        <value>172.16.19.201:8033</value>
    </property>
    <property>
       <name>yarn.resourcemanager.webapp.address</name>
        <value>172.16.19.201:8088</value>
    </property>
    <property>
       <name>yarn.nodemanager.resource.memory-mb</name>
        <value>30720</value>
    </property>

<property>

           <name>mapreduce.map.memory.mb</name>

           <value>2048</value>

    </property>

    <property>

           <name>mapreduce.reduce.memory.mb</name>

           <value>2048</value>

    </property>

    <property>

       <name>mapreduce.map.java.opts</name>

       <value>-Xmx2048m</value>

    </property>

    <property>

       <name>mapreduce.reduce.java.opts</name>

       <value>-Xmx2048m</value>

</property>
</configuration>

 

5) 配置hadoop-env.sh、yarn-env.sh的JAVA_HOME

exportJAVA_HOME=/home/huzhihua/jdk1.7.0_79

配置slaves,删除默认的localhost,增加两个节点

Dn1

Dn2

6.把配置好的整个hadoop目录scp到各个从节点上

scp -r hadoop/ root@dn1:/home/

scp -r hadoop/root@dn2:/home/

 

7.修改环境变量

编辑/etc/profile,hadoop的各个路径配置进去,再source /etc/profile,使配置生效

 

 

8 namenode上启动hadoop

进入/home/hadoop/hadoop-2.7.1目录

1) 初始化文件系统,hdfs namenode –format

]#hdfs namenode-format

2) 启动hadoop

可以start-all.sh来启动hdfsyarn,也可以单独start-dfs.sh,start-yarn.sh来分别启动hdfsyarn

3) 停止hadoop

可以stop-all.sh来全部停止服务,也可以stop-dfs.shstop-yarn.sh来分别停止

4) 查看进程启动情况

可以使用jps命令来查看各个节点上的启动情况

Namenode

Datanode

5) 启动历史任务服务器

Mr-jobhistory-daemon.sh start historyserver

9 查看hadoopcluster运行情况

在浏览器里输入172.16.19.201:8088

 

查看hdfs的使用情况,可以输入172.16.19.50070

 

 

Hadoop安装过程遇到的问题:

 

1.主机名没配置

Incorrectconfiguration: namenode address dfs.namenode.servicerpc-address ordfs.namenode.rpc-address is not configured.

问题core-site.xml里面fs.defaultFS没有配置,需要添加如下

<property>

        <name>fs.defaultFS</name>

       <value>hdfs://bhm:9000</value>//bhmnamenode的别名

</property>

 

2.Distcp出错

hadoop distcphdfs://172.16.19.73//bi/wlt_user_tag/cloud_page_mobile_mapping_ft0 /tmp

 

报错:

Error:java.io.IOException: File copy failed: hdfs://172.16.19.73/bi/wlt_user_tag/cloud_page_mobile_mapping_ft0/000001_0--> hdfs://bhm:9000/tmp/cloud_page_mobile_mapping_ft0/000001_0

解决:加上选项-update –skipcrccheck

 

 

3.启动Jobhistoryserver

Sbin/mr-jobhistory-daemon.sh starthistoryserver





Yarn 架构:

包含3大块,resource manager, Application master ,node manager

 

Resource manager

包括调度器和应用程序管理器

1.      调度器,负责资源的分配和调度

调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念资源容器ResourceContainer,简称Container)表示,Container是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起

2.      应用程序管理器

负责启动应用程序,与调度器协商启动application master(AM),监控AM的运行状态以及失败时重启

Application master(AM)

与RM协商获得资源

进一步分配子任务

与node manager通信,来启动/停止任务

监控所有任务的运行情况,任务失败时重新申请资源来重启任务

Node manager(NM)

定时向RM汇报本节点的资源使用情况,还有contianer的运行状况,向RM发心跳

出来来自AM的启动/停止container的请求

 

 

Container

抽象出来的资源单位,包括了CPU、内存、网络IO、磁盘等资源。

当AM向RM申请资源的时候,RM向AM返回的资源就是用Container表示的。

Yarn会为每个任务分配一个container。

 

 

Yarn的工作流程

步骤1 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。

步骤2ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster

步骤3ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7

步骤4ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

步骤5 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。

步骤6NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。

步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。

    在应用程序运行过程中,用户可随时通过RPCApplicationMaster查询应用程序的当前运行状态。

步骤8 应用程序运行完成后,ApplicationMasterResourceManager注销并关闭自己。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值