yum安裝CDH5.5 Hadoop集羣

一、環境說明

系統環境:html

  • 系統環境:centos6.7
  • Hadoop版本:CDH5.5
  • JDK運行版本:1.7.0_67

集羣各節點組件分配:java

二、準備工做

安裝 Hadoop 集羣前先作好下面的準備工做,在修改配置文件的時候,建議在一個節點上修改,而後同步到其餘節點。由於要同步配置文件和在多個節點啓動服務,建議配置 ssh 無密碼登錄。node

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
  • 使其生效:
# sysctl -p
  • 最後確認是否已禁用:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
  • 設置hostname,以bd-ops-test-74爲例
hostname bd-ops-test-74
  • 並使其永久生效
# vim /etc/sysconfig/network
修改HOSTNAME=bd-ops-test-74
  • 修改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

2.2關閉防火牆以及selinux

# setenforce 0
# vim /etc/sysconfig/selinux #修改SELINUX=disabled

#清空iptables
# iptables -F

2.3時鐘同步

搭建時鐘同步服務器

這裏選擇 74 節點爲時鐘同步服務器,其餘節點爲客戶端同步時間到該節點。安裝ntp:linux

# yum install ntp -y

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

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

啓動 ntp:apache

#設置開機啓動
# chkconfig ntpd on

# service ntpd start

ntpq用來監視ntpd操做,使用標準的NTP模式6控制消息模式,並與NTP服務器通訊。bootstrap

ntpq -p 查詢網絡中的NTP服務器,同時顯示客戶端和每一個服務器的關係。vim

#ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*dns1.synet.edu. 202.118.1.47     2 u   57   64  377   41.912   -3.877   4.628

客戶端的配置

在76和77節點上執行下面操做:centos

# ntpdate bd-ops-test-74

Ntpd啓動的時候一般須要一段時間大概5分鐘進行時間同步,因此在ntpd剛剛啓動的時候還不能正常提供時鐘服務,報錯"no server suitable for synchronization found"。啓動時候須要等待5分鐘。bash

過一下子咱們就能夠看到同步成功了:

#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

解壓後配置本地倉庫使用。

 

三、安裝Zookeeper

Zookeeper 至少須要3個節點,而且節點數要求是基數,這裏在7五、7六、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

 

四、安裝和配置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.dirdfs.namenode.name.dir 的本地目錄:

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

DataNode上手動建立 dfs.data.dirdfs.datanode.data.dir 的本地目錄:

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

修改上面目錄全部者:

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

hadoop的進程會自動設置 dfs.data.dirdfs.datanode.data.dir,可是 dfs.name.dirdfs.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配置

安裝服務

在 7五、7六、77 上安裝 hadoop-hdfs-journalnode

yum install hadoop-hdfs-journalnode -y

在 7四、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

啓動7五、7六、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。

五、安裝和配置YARN(HA模式)

根據文章開頭的節點規劃,7四、75 爲resourcemanager節點,74,、7五、7六、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</value>
    </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-dirsyarn.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
相關文章
相關標籤/搜索