本文主要記錄了安裝hadoop集群前的準備工作以及hdfs+yarn+zookeeper的搭建 ...
1、環境說明
系統環境:
- 系統環境:centos6.7
- Hadoop版本:CDH5.5
- JDK運行版本:1.7.0_67
集群各節點組件分配:
2、準備工作
安裝 Hadoop 集群前先做好下麵的準備工作,在修改配置文件的時候,建議在一個節點上修改,然後同步到其他節點。因為要同步配置文件和在多個節點啟動服務,建議配置 ssh 無密碼登陸。
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:
# yum install ntp -y
修改 74 上的配置文件 /etc/ntp.conf
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:
#設置開機啟動 # chkconfig ntpd on # service ntpd start
ntpq用來監視ntpd操作,使用標準的NTP模式6控制消息模式,並與NTP伺服器通信。
ntpq -p
查詢網路中的NTP伺服器,同時顯示客戶端和每個伺服器的關係。
#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節點上執行下麵操作:
# 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</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-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