Hadoop2.7.1 HA集群部署
分类:计算机教程

图片 1

[root@masternode .ssh]# scp .ssh/authorized_keys root@slavenode3:~/.ssh/

 2.2关闭防火墙以及selinux
# setenforce 0
# vim /etc/sysconfig/selinux #修改SELINUX=disabled
 
#清空iptables
# iptables -F

[root@masternode /]# cd 

1、环境说明
系统环境:

10.10.10.4 masternode.novalocal masternode

2、准备工作
安装 Hadoop 集群前先做好下面的准备工作,在修改配置文件的时候,建议在一个节点上修改,然后同步到其他节点。因为要同步配置文件和在多个节点启动服务,建议配置 ssh 无密码登陆。

export ZOOKEEPER_HOME=/opt/hadoop/zookeeper

jitter

*dns1.synet.edu. 202.118.1.47    2 u  57  64  377  41.912  -3.877  4.628

客户端的配置
在76和77节点上执行下面操作:

# ntpdate bd-ops-test-74

Ntpd启动的时候通常需要一段时间大概5分钟进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,报错"no server suitable for synchronization found"。启动时候需要等待5分钟。

过一会儿我们就可以看到同步成功了:

#ntpdate bd-ops-test-74
24 Aug 22:32:14 ntpdate[14024]: step time server 172.16.57.74 offset -77.582859 sec

2.4安装JDK
此过程不再赘述,本例中jdk安装目录为/opt/programs/jdk1.7.0_67

2.5设置本地yum源
从官方下载cdh5.5压缩仓库包,传送门:http://archive.cloudera.com/cdh5/repo-as-tarball/5.5.1/cdh5.5.1-centos5.tar.gz

解压后配置本地仓库使用。

3、安装Zookeeper
Zookeeper 至少需要3个节点,并且节点数要求是基数,这里在75、76、77上安装 Zookeeper。

3.1安装
在需要安装的节点上执行:

# yum install zookeeper* -y

3.2修改配置文件
设置 zookeeper 配置 /etc/zookeeper/conf/zoo.cfg

maxClientCnxns=50
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/zkdata
clientPort=2181
dataLogDir=/opt/zookeeper/zkdatalog
server.1=172.16.57.75:2888:3888
server.2=172.16.57.76:2888:3888
server.3=172.16.57.77:2888:3888

 指定jdk路径/etc/zookeeper/conf/java.env

export JAVA_HOME=/opt/programs/jdk1.7.0_67/

3.3同步配置文件
将配置文件同步到其他节点:

# scp -r /etc/zookeeper/conf root@bd-ops-test-76:/etc/zookeeper/
# scp -r /etc/zookeeper/conf root@bd-ops-test-77:/etc/zookeeper/

3.4初始化并启动服务
在每个节点上初始化并启动 zookeeper,注意 myid 的值需要和 zoo.cfg 中的编号一致。

在 75 节点运行:

# service zookeeper-server init --myid=1
# service zookeeper-server start

 在 76 节点运行:

# service zookeeper-server init --myid=2
# service zookeeper-server start

 在 77 节点运行:

# service zookeeper-server init --myid=3
# service zookeeper-server start

3.5测试
通过下面命令测试是否启动成功:

# zookeeper-client -server bd-ops-test-74:2181

4、安装和配置HDFS(HA模式)
根据文章开头的节点规划,

在74,75上安装 hadoop-hdfs-namenode,

# yum install hadoop-hdfs-namenode -y

 在74,75,76,77上安装hadoop-hdfs-datanode

# yum install hadoop-hdfs-datanode -y

4.1配置hadoop相关环境变量
创建 /etc/hadoop/conf/hadoop-env.sh,主要指定的是jdk、hadoop等相关安装目录

# cat hadoop-env.sh
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
export HADOOP_HOME=/usr/lib/hadoop
export JAVA_HOME=/opt/programs/jdk1.7.0_67/
export HADOOP_NAMENODE_OPTS="-XX: UseParallelGC -XX:ParallelGCThreads=8"
export HADOOP_HEAPSIZE=16384
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/lib/hadoop-lzo.jar

 在/etc/hadoop/conf/slaves中指定集群的hostname

# cat slaves
bd-ops-test-74
bd-ops-test-75
bd-ops-test-76
bd-ops-test-77

4.2修改hadoop配置文件
在/etc/hadoop/conf/core-site.xml中设置fs.defaultFS属性值,该属性指定NameNode是哪一个节点以及使用的文件系统是file还是hdfs,格式:hdfs://<namenode host>:<namenode port>/,默认的文件系统是file:///:

<property>
 <name>fs.defaultFS</name>
 <value>hdfs://bd-ops-test:8020</value>
</property>

 在/etc/hadoop/conf/hdfs-site.xml中设置dfs.permissions.superusergroup属性,该属性指定hdfs的超级用户,默认为hdfs,你可以修改为hadoop:

<property>
    <name>dfs.permissions.superusergroup</name>
    <value>hadoop</value>
</property>

 更多的配置信息说明,请参考 Apache Cluster Setup

4.3指定本地文件目录
在hadoop中默认的文件路径以及权限要求如下:

目录                                  所有者    权限      默认路径
hadoop.tmp.dir                      hdfs:hdfs  drwx------  /var/hadoop
dfs.namenode.name.dir              hdfs:hdfs  drwx------  file://${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir              hdfs:hdfs  drwx------  file://${hadoop.tmp.dir}/dfs/data
dfs.namenode.checkpoint.dir        hdfs:hdfs  drwx------  file://${hadoop.tmp.dir}/dfs/namesecondary

 说明你可以在 hdfs-site.xm l中只配置hadoop.tmp.dir,也可以分别配置上面的路径。这里使用分别配置的方式,hdfs-site.xml中配置如下:

<property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///opt/hadoop/data/hdfs/nn</value>
  </property>
 
  <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///opt/hadoop/data1/hdfs/dn,file:///opt/hadoop/data2/hdfs/dn,file:///opt/hadoop/data3/hdfs/dn</value>
  </property>

 在NameNode上手动创建 dfs.name.dir 或 dfs.namenode.name.dir 的本地目录:

mkdir -p /opt/hadoop/data/hdfs/nn

 在DataNode上手动创建 dfs.data.dir 或 dfs.datanode.data.dir 的本地目录:

mkdir -p /opt/hadoop/data{1,2,3}/hdfs/dn

 修改上面目录所有者:

chown -R hdfs:hdfs /opt/hadoop/*

 hadoop的进程会自动设置 dfs.data.dir 或 dfs.datanode.data.dir,但是 dfs.name.dir 或 dfs.namenode.name.dir 的权限默认为755,需要手动设置为700:

# chmod 700 /opt/hadoop/data/hdfs/nn

 注意:DataNode的本地目录可以设置多个(我这里有三个),你可以设置 dfs.datanode.failed.volumes.tolerated 参数的值,表示能够容忍不超过该个数的目录失败。

4.4开启回收站功能
回收站功能默认是关闭的,建议打开。在 /etc/hadoop/conf/core-site.xml 中添加如下两个参数:

fs.trash.interval,该参数值为时间间隔,单位为分钟,默认为0,表示回收站功能关闭。该值表示回收站中文件保存多长时间,如果服务端配置了该参数,则忽略客户端的配置;如果服务端关闭了该参数,则检查客户端是否有配置该参数;
fs.trash.checkpoint.interval,该参数值为时间间隔,单位为分钟,默认为0。该值表示检查回收站时间间隔,该值要小于fs.trash.interval,该值在服务端配置。如果该值设置为0,则使用 fs.trash.interval 的值。
4.5开启WebHDFS
在NameNode节点上安装:

# yum install hadoop-httpfs -y

 然后修改 /etc/hadoop/conf/core-site.xml配置代理用户:

<property> 
<name>hadoop.proxyuser.httpfs.hosts</name> 
<value>*</value> 
</property> 
<property> 
<name>hadoop.proxyuser.httpfs.groups</name> 
<value>*</value> 
</property>

 4.6配置LZO
安装lzo:

# yum install hadoop-lzo* impala-lzo  -y

 最后,在 /etc/hadoop/conf/core-site.xml 中添加如下配置:

<property>
  <name>io.compression.codecs</name>
  <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
  <name>io.compression.codec.lzo.class</name>
  <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

 更多关于LZO信息,请参考:Using LZO Compression

4.7配置Snappy
cdh 的 rpm 源中默认已经包含了 snappy ,直接在每个节点安装Snappy:

yum install snappy snappy-devel  -y

 然后,在 core-site.xml 中修改io.compression.codecs的值,添加 org.apache.hadoop.io.compress.SnappyCodec 。

使 snappy 对 hadoop 可用:

ln -sf /usr/lib64/libsnappy.so /usr/lib/hadoop/lib/native/

 4.8HA配置
安装服务
在 75、76、77 上安装 hadoop-hdfs-journalnode

yum install hadoop-hdfs-journalnode -y

 在 74、75(namenode) 上安装 hadoop-hdfs-zkfc:

yum install hadoop-hdfs-zkfc -y

 修改配置文件

修改/etc/hadoop/conf/core-site.xml,做如下修改:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://bd-ops-test:8020</value>
</property>
<property>
    <name>ha.zookeeper.quorum</name>
    <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
</property>

修改/etc/hadoop/conf/hdfs-site.xml

<property>
        <name>dfs.nameservices</name>
        <value>bd-ops-test</value>
    </property>
 
    <property>
        <name>dfs.ha.namenodes.bd-ops-test</name>
        <value>bd-ops-test-74,bd-ops-test-75</value>
    </property>
 
    <property>
        <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-74</name>
        <value>bd-ops-test-74:8020</value>
    </property>
 
    <property>
        <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-75</name>
        <value>bd-ops-test-75:8020</value>
    </property>
 
    <property>
        <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-74</name>
        <value>bd-ops-test-74:50070</value>
    </property>
 
    <property>
        <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-75</name>
        <value>bd-ops-test-75:50070</value>
    </property>
 
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://bd-ops-test-75:8485;bd-ops-test-76:8485;bd-ops-test-77:8485/bd-ops-test</value>
    </property>
 
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/hadoop/data1/hdfs/jn</value>
    </property>
 
    <property>
        <name>dfs.client.failover.proxy.provider.bd-ops-test</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
 
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
 
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/var/lib/hadoop-hdfs/.ssh/id_rsa</value>
    </property>
 
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>

 4.9启动HDFS
将74上的配置文件同步到每一个节点:

scp -r /etc/hadoop/conf root@bd-ops-test-75:/etc/hadoop/
scp -r /etc/hadoop/conf root@bd-ops-test-76:/etc/hadoop/
scp -r /etc/hadoop/conf root@bd-ops-test-77:/etc/hadoop/

 在74节点格式化NameNode:

sudo -u hdfs hadoop namenode -format

启动journalnode
启动75、76、77上的 hadoop-hdfs-journalnode 服务

service hadoop-hdfs-journalnode start

初始化共享存储
在namenode上初始化共享存储,如果没有格式化,则先格式化:

hdfs namenode -initializeSharedEdits

 启动第一个namenode(74)

service hadoop-hdfs-namenode start

同步 Standby NameNode
75作为 Standby NameNode,运行

sudo -u hdfs hadoop namenode -bootstrapStandby

 然后,启动 Standby NameNode:

service hadoop-hdfs-namenode start

配置自动切换
在两个NameNode上,即74和75,安装hadoop-hdfs-zkfc

yum install hadoop-hdfs-zkfc -y

 在任意一个NameNode上下面命令,其会创建一个znode用于自动故障转移

hdfs zkfc -formatZK

 然后再两个 NameNode 节点上启动zkfc:

service hadoop-hdfs-zkfc start

启动datanode
在datanode节点运行:

service hadoop-hdfs-datanode start

 如果安装了HttpFS,则启动 HttpFS 服务:

service hadoop-httpfs start

4.10测试
使用 curl 运行下面命令,可以测试 webhdfs 并查看执行结果:

# curl "http://localhost:14000/webhdfs/v1?op=gethomedirectory&user.name=hdfs"
{"Path":"/user/hdfs"}

更多的 API,请参考 WebHDFS REST API

分别访问 http://bd-ops-test-74:50070/http://bd-ops-test-75:50070/ 查看谁是 active namenode,谁是 standyby namenode。

查看某Namenode的状态:

#查看nn1状态
$ sudo -u hdfs hdfs haadmin -getServiceState bd-ops-test-74
active
 
#查看nn2状态
$ sudo -u hdfs hdfs haadmin -getServiceState bd-ops-test-75
standby

 执行手动切换:

sudo -u hdfs hdfs haadmin -failover bd-ops-test-74 bd-ops-test-75

再次访问 http://bd-ops-test-74:50070/http://bd-ops-test-75:50070/ 查看谁是 active namenode,谁是 standyby namenode。

5、安装和配置YARN(HA模式)
根据文章开头的节点规划,74、75 为resourcemanager节点,74,、75、76、77 为nodemanager节点,historyserver 装在 76 节点上。

5.1 安装服务
在74,75安装:

yum install hadoop-yarn hadoop-yarn-resourcemanager -y

 在74-77安装:

yum install hadoop-yarn hadoop-yarn-nodemanager hadoop-mapreduce -y

 在76安装:

yum install hadoop-mapreduce-historyserver hadoop-yarn-proxyserver -y

5.2修改配置文件
要想使用YARN,需要在 /etc/hadoop/conf/mapred-site.xml 中做如下配置:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

 修改/etc/hadoop/conf/yarn-site.xml,配置resourcemanager的节点名称、一些服务的端口号以及ha的配置:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 
<configuration>
    <!-- RM Manager Configd -->
    <property>
        <name>yarn.resourcemanager.connect.retry-interval.ms</name>
        <value>2000</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
        <value>true</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarn-rm-cluster</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>bd-ops-test-74,bd-ops-test-75</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.ha.id</name>
        <value>bd-ops-test-74</value>
    </property>
 
    <!--
            <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    </property>
    -->
 
    <!--scheduler capacity -->
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.zk.state-store.address</name>
        <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
    </property>
 
    <property>
        <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
        <value>5000</value>
    </property>
 
    <!-- RM1 Configs-->
    <property>
        <name>yarn.resourcemanager.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23140</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.scheduler.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23130</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.webapp.https.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23189</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.webapp.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23188</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23125</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.admin.address.bd-ops-test-74</name>
        <value>bd-ops-test-74:23141</value>
    </property>
 
 
    <!-- RM2 Configs -->
    <property>
        <name>yarn.resourcemanager.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23140</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.scheduler.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23130</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.webapp.https.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23189</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.webapp.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23188</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.resource-tracker.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23125</value>
    </property>
 
    <property>
        <name>yarn.resourcemanager.admin.address.bd-ops-test-75</name>
        <value>bd-ops-test-75:23141</value>
    </property>
 
    <!-- Node Manager Configs -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>61440</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>24</value>
    </property>
 
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>
 
    <property>
        <name>yarn.log-aggregation.retain-check-interval-seconds</name>
        <value>8640</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.localizer.address</name>
        <value>0.0.0.0:23344</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.webapp.address</name>
        <value>0.0.0.0:23999</value>
    </property>
   
    <property>
        <name>yarn.web-proxy.address</name>
        <value>0.0.0.0:8080</value>
    </property>
 
    <property>
        <name>mapreduce.shuffle.port</name>
        <value>23080</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
 
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>file:///opt/hadoop/data1/yarn/dn,file:///opt/hadoop/data2/yarn/dn,file:///opt/hadoop/data3/yarn/dn</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>file:///opt/hadoop/data1/yarn/logs,file:///opt/hadoop/data2/yarn/logs,file:///opt/hadoop/data3/yarn/logs</value>
    </property>
 
    <!--
            <property>
        <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
        <value>0</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.disk-health-checker.enable</name>
        <value>false</value>
    </property>
    -->
 
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>hdfs://bd-ops-test:8020/yarn/apps</value>
    </property>
 
    <property>
        <name>yarn.application.classpath</name>
        <value>
                $HADOOP_CONF_DIR,
                $HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
                $HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
                $HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
                $HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*
        </value>
    </property>
 
    <property>
        <name>yarn.web-proxy.address</name>
        <value>172.16.57.76:41202</value>
    </property>
    <property>
        <name>yarn.log.server.url</name>
        <value>http://bd-ops-test-76:19888/jobhistory/logs&lt;/value&gt;
    </property>
</configuration>

 在 /etc/hadoop/conf/mapred-site.xml 中配置 MapReduce History Server:

<property>
    <name>mapreduce.jobhistory.address</name>
    <value>bd-ops-test-76:10020</value>
</property>
 
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>bd-ops-test-76:19888</value>
</property>

 此外,确保 mapred、yarn 用户能够使用代理,在 /etc/hadoop/conf/core-site.xml 中添加如下参数:

<property>
        <name>hadoop.proxyuser.mapred.groups</name>
        <value>*</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.mapred.hosts</name>
        <value>*</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.yarn.groups</name>
        <value>*</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.yarn.hosts</name>
        <value>*</value>
    </property>

 配置 Staging 目录:

<property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/user</value>
</property>

 并在 hdfs 上创建相应的目录:

# sudo -u hdfs hadoop fs -mkdir -p /user
# sudo -u hdfs hadoop fs -chmod 777 /user
# sudo -u hdfs hadoop fs -mkdir -p /user/history
# sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
# sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history

5.3创建本地文件目录
创建 yarn.nodemanager.local-dirs 和 yarn.nodemanager.log-dirs 参数对应的目录:

# mkdir -p mkdir /opt/hadoop/data{1..3}/yarn/{dn,logs}
# chown -R yarn:yarn /opt/hadoop/data{1..3}/yarn

5.4同步配置文件
同步配置文件到整个集群。

5.5启动服务
在每个节点启动 YARN :

for x in `ls /etc/init.d/|grep hadoop-yarn` ; do service $x start ; done

 在 76节点启动 mapred-historyserver :

/etc/init.d/hadoop-mapreduce-historyserver start

 在 hdfs 运行之后,创建 /tmp 临时目录,并设置权限为 1777:

sudo -u hdfs hadoop fs -mkdir /tmp
sudo -u hdfs hadoop fs -chmod -R 1777 /tmp

5.6测试
通过http://bd-ops-test-74:23188/cluster/cluster, http:// bd-ops-test-75:23188/cluster/cluster , 可以查看谁是actice谁是standby,通过 http://cdh1:19888/ 可以访问 JobHistory 的管理页面。

查看ResourceManager状态:

yarn rmadmin -getServiceState bd-ops-test-73

执行手动切换:

yarn rmadmin -transitionToActive --forcemanual bd-ops-test-74

下面关于Hadoop的文章您也可能喜欢,不妨看看:

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 6.3下Hadoop伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS下安装Hadoop 1.2.1(伪分布模式) http://www.linuxidc.com/Linux/2016-09/135406.htm

Ubuntu上搭建Hadoop环境(单机模式 伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

实战CentOS系统部署Hadoop集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

Hadoop 2.6.0 HA高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

在Ubuntu X64上编译安装Hadoop http://www.linuxidc.com/Linux/2016-12/138568.htm

CentOS 6.7安装Hadoop 2.7.3  http://www.linuxidc.com/Linux/2017-01/139089.htm

CentOS7 Hadoop2.5.2 Spark1.5.2环境搭建  http://www.linuxidc.com/Linux/2017-01/139364.htm

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-02/140186.htm

图片 2

|       = . * .   |

 修改 74 上的配置文件 /etc/ntp.conf

10.10.10.3 slavenode1.novalocal slavenode1

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict 172.16.57.0 mask 255.255.255.0 nomodify notrap
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.ntp.org iburst
server 3.centos.pool.ntp.org iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor

[root@masternode java]# scp -r jdk1.7.0_79/ root@10.10.10.5:/usr/java/

使其生效:
# sysctl -p

Enter file in which to save the key (/opt/.ssh/id_rsa): 

2.1配置hosts
CDH 要求使用 IPv4,IPv6 不支持,禁用IPv6方法:
# vim /etc/sysctl.conf
#disable ipv6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

(2)如果在用命令ssh-copy-id时发现找不到该命令“ssh-copy-id:Command not found”,则可能是ssh服务的版本太低的原因,比如若你的机器是RedHat系统就可能该问题,解决办法是:手动复制本地的pubkey内容到远程服务器,命令如下:

# yum install ntp -y

|       .o.* o    |

ntpq -p 查询网络中的NTP服务器,同时显示客户端和每个服务器的关系。

[root@masternode .ssh]# ls

2.3时钟同步
搭建时钟同步服务器
这里选择 74 节点为时钟同步服务器,其他节点为客户端同步时间到该节点。安装ntp:

2) 生产密钥 

#ntpq -p
    remote          refid      st t when poll reach  delay  offset 

#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

设置hostname,以bd-ops-test-74为例
 hostname bd-ops-test-74

Source ~/.bash_profile

 修改hosts表
在每个节点上都应有一份hosts表,在之后的配置中,对应节点名称使用hostname
# vim /etc/hosts
172.16.57.74 bd-ops-test-74
172.16.57.75 bd-ops-test-75
172.16.57.76 bd-ops-test-76
172.16.57.77 bd-ops-test-77

[root@masternode ~]# rpm -qa |grep ssh 

 并使其永久生效

|     . . . o     |

 启动 ntp:

Generating public/private rsa key pair.

#设置开机启动
# chkconfig ntpd on
 
# service ntpd start

e8:3d:75:11:0b:6a:a9:f5:39:e5:04:71:2e:94:21:94 root@masternode.novalocal

ntpq用来监视ntpd操作,使用标准的NTP模式6控制消息模式,并与NTP服务器通信。

Hostname=masternode1

 最后确认是否已禁用:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1

export JAVA_HOME=/usr/java/jdk1.7.0_79/

# vim /etc/sysconfig/network
修改HOSTNAME=bd-ops-test-74

[root@masternode .ssh]# scp .ssh/authorized_keys root@mslavenode1:~/.ssh/

系统环境:CentOS6.7
Hadoop版本:CDH5.5
JDK运行版本:1.7.0_67
集群各节点组件分配:

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$SPARK_HOME/bin

1)解压java软件包

(1)用ssh-copy-id命令将公钥传送到远程主机上(这里以Slave1node3为例)。

4)验证安装成功

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

export PATH=$PATH:$HBASE_HOME/bin

export HADOOP_HOME=/opt/hadoop/hadoop-2.7.2

|      . o        |

hosts                                                                                          100%  332     0.3KB/s   00:00   

export PATH=$PATH:$HIVE_HOME/bin

此时不可以选择较低版本的JDK进行安装,因为所有集群中的JDK版本必须相同

#set hadoop path

#export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

3.在主节点机器上设置ssh免密码登陆

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

export PATH=$PATH:$SCALA_HOME/bin

5)安装剩余机器java

   cd /usr/java/

#set spark

The authenticity of host '125.208.30.89(125.208.30.89)' can't be established.

Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

2)编辑环境变量

export PATH=$PATH:$JAVA_HOME/bin

Hadoop集群之zookeeper安装配置-hbase安装就不用安装这个模块

1.下���地址:

http://mirror.bjtu.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
2.zookeepe 安装

① 上传软件并解压

把zookeeper-3.4.8.tar.gz文件存放在/opt/hadoop目录下,进行解压:

[root@masternode hadoop]# tar -zxvf zookeeper-3.4.8.tar.gz 

mv   zookeeper-3.4.8 zookeeper

---要是单独有自己的用户名则执行下面命令

hadoop@Ubuntu:~$ sudo tar -zxvf zookeeper-3.4.8.tar.gz 

hadoop@ubuntu:~$ chown -R hadoop:hadoop zookeeper-3.4.8 

mv   zookeeper-3.4.8 zookeeper

② 设置环境变量 vi /etc/profile

#set zookeeper

export ZOOKEEPER_HOME=/opt/hadoop/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME/bin

Vi ~/.bash_profile 

#set zookeeper

export ZOOKEEPER_HOME=/opt/hadoop/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME/bin

[root@masternode hadoop]# source /etc/profile

[root@masternode hadoop]# cd zookeeper/conf/

[root@masternode conf]# pwd

/opt/hadoop/zookeeper/conf

③ 配置zoo.cfg文件

 配置文件存放在$ZOOKEEPER_HOME/conf/目录下,将zoo_sample.cfd文件名称改为zoo.cfg,  缺省的配置内容如下:

[root@masternode conf]# mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

clientPort=2181

dataDir=/opt/hadoop/zookeeper/data/

dataLogDir=/opt/hadoop/zookeeper/log/

server.1=slavenode1:2888:3888

server.2=masternode:2888:3888

server.3=slavenode2:2888:3888

server.4=slavenode3:2888:3888

配置说明:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

④ 新建两个目录

 mkdir /opt/hadoop/zookeeper/data/

 mkdir /opt/hadoop/zookeeper/log/

在 /opt/hadoop/zookeeper/data/目录下创建一个文件:myid

touch /opt/hadoop/zookeeper/data/myid

[root@masternode data]# echo ‘1’> myid 

1

⑤ 将zookeeper目录 和环境变量设置文件拷贝到其他机器上

[root@masternode hadoop]# scp -r zookeeper root@slavenode1:/opt/hadoop/

[root@masternode hadoop]# scp -r zookeeper root@slavenode3:/opt/hadoop/

[root@masternode hadoop]# scp -r zookeeper root@slavenode2:/opt/hadoop/

 

[root@masternode conf]# scp ~/.bash_profile root@slavenode2:~/.bash_profile 

[root@masternode conf]# scp ~/.bash_profile root@slavenode3:~/.bash_profile 

[root@masternode conf]# scp ~/.bash_profile root@slavenode1:~/.bash_profile 

⑥ 修改其他机器该文件

[root@masternode centos]# cat /opt/hadoop/zookeeper/data/myid 

2

[root@slavenode3 centos]# cat /opt/hadoop/zookeeper/data/myid 

4

[root@slavenode3 centos]# cat /opt/hadoop/zookeeper/data/myid 

3

⑦ 启动zookeeper (所配的机器都要启动)

cd /opt/hadoop/zookeeper/bin

./zkServer.sh start

⑧ 验证

[root@masternode zookeeper]# jps

16159 HQuorumPeer

14438 DataNode

16397 Jps

14549 NodeManager

 

查看状态

[root@slavenode3 centos]# /opt/hadoop/zookeeper/bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /opt/hadoop/zookeeper/bin/../conf/zoo.cfg

Mode: leader

客户端链接zookeeper

[root@slavenode3 centos]# /opt/hadoop/zookeeper/bin/zkCli.sh -server slavenode3:2181

WATCHER::

 

WatchedEvent state:SyncConnected type:None path:null

[zk: slavenode3:2181(CONNECTED) 0] ls /

[hbase, zookeeper]

[zk: slavenode3:2181(CONNECTED) 1] ls /hbase

[meta-region-server, backup-masters, region-in-transition, table, draining, table-lock, running, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs, flush-table-proc]

 

export SCALA_HOME=/opt/hadoop/scala

|                 |

保存并退出,执行下面命令使其配置立即生效。

#set hadoop path

[root@masternode .ssh]# vi authorized_keys 

 

|      o S = o    |

1.修改文件/etc/hostname里的值即可,修改成功后用hostname命令查看当前主机名是否设置成功。

 

java version "1.7.0_79"

#set hbase

export HBASE_HOME=/opt/hadoop/hbase-1.1.5

4.把主机hosts拷贝到其他从机器上

[root@masternode java]# scp -r jdk1.7.0_79/ root@10.10.10.3:/usr/java/

export HIVE_HOME=/opt/hadoop/hive-2.0.0

Are you sure you want to continue connecting (yes/no)? yes

3)使配置生效

openssh-server-5.3p1-104.el6_6.1.x86_64

chown -R Hadoop:hadoop jdk-7u79

[root@masternode .ssh]# cat id_rsa.pub >> authorized_keys

10.10.10.6 slavenode3.novalocal slavenode3

export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

--[ RSA 2048]----

Your identification has been saved in /opt/.ssh/id_rsa.

本文由美洲杯赔率发布于计算机教程,转载请注明出处:Hadoop2.7.1 HA集群部署

上一篇:NodeJS学习笔记之Connect中间件模块(二),nodejs学 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • Linux find tar -type 备份日志
    Linux find tar -type 备份日志
    这几天系统出现一个bug,需要截取日志供研发研究: find精华应用 $ ls -lrt   …… find  path  -option  [  -print ]  [ -exec  -ok  command ]  {} ; -rw-r-----   1 jrtu  
  • 男篮世界杯赔率:创建自己的Gubuntu
    男篮世界杯赔率:创建自己的Gubuntu
    #1,确保你的网络环境连通 关于安装,该主题最好在 gnome 3.16 上安装, 3.14 也测试过。 sudo apt-get install gnome-tweak-tool Server = http://downloads.sourceforge.net/project/
  • Linux下安装炫丽而强大的Dock:Docky
    Linux下安装炫丽而强大的Dock:Docky
    Docky是从GNOME Do项目剥离出来的一个Dock软件,最初即为GNOMEDo的“Docky”模式。 后来开发者觉得,GNOMEDo是个快速启动工具,弄个Docky模式有点不伦不类,于是
  • PHP实现Soap通讯的方法
    PHP实现Soap通讯的方法
    本文实例讲述了PHP实现Soap通讯的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下: ?php function HttpSoap($server, $port, $url, $namespace, $act
  • 男篮世界杯赔率php结合js实现点击超链接执行删除
    男篮世界杯赔率php结合js实现点击超链接执行删除
    如题,本次是要实现点击超链接实现执行js代码,并确认是否删除数据库数据,采用php。 首先链接数据库,查询数据库数据: 复制代码 代码如下: ?php $db