mapreduce叢集的搭建及安裝
阿新 • • 發佈:2018-11-27
mapreduce叢集的搭建及安裝
節點分配
NameNode node01 主 node02 從 DataNode node02 node03 node04 zookeeper node02 node03 node04 zkfc node01 node02 journalnode node01 node02 node03 resourcemanager node03 node04 nodemanager node02 node03 node04
環境檢測
安裝jdk 配置環境變數 配置免祕鑰 如果本身沒有.ssh檔案需要先生成 ssh localhost 如果要和其他節點免祕鑰需要將自己的公鑰發給他,並追加公鑰 ssh-keygen -t dsa -P '' -f ./id_dsa scp -r ./id_dsa.pub [email protected]*:`pwd`/node0*.pub cat node0*.pub >> aut……
安裝hadoop
解壓hadoop到指定目錄下 配置配置檔案 配置三個env.sh,將其中的JAVA_HOME寫死 修改hdfs-site.xml 命名叢集名 <name>dfs.nameservices</name> <value>mycluster</value> 命名叢集下的兩個NN的名稱 <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> 分別對兩個NN指定其物理路徑:ip加 埠號 <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node01:8020</value> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node02:8020</value> 指定兩個NN的瀏覽器訪問路徑:ip加埠號 <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node01:50070</value> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node02:50070</value> 指定edits的路徑,在journalnode伺服器上,因為journalnode伺服器是公用的,所以需要指定叢集名以示區分 <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value> 在本機上給一個路徑表示edits的地址 <name>dfs.journalnode.edits.dir</name> <value>/var/sxt/hadoop/ha/jn</value> 給一個類 <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 還有兩個不知道 <name>dfs.ha.fencing.methods</name> <value>sshfence</value> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> 開啟主從NN的切換 <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> 修改core-site.xml 預設檔案系統路徑 <name>fs.defaultFS</name> <value>hdfs://mycluster</value> hadoop臨時檔案存放路徑 /var/sxt/hadoop-2.6/ha zookeeper叢集節點資訊 <name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value>
安裝zookeeper
將zookeeper解壓到指定目錄下 配置配置檔案 將conf/zoo重新命名為zoo.cfg 在裡面將資料存放目錄改掉 dataDir=/var/sxt/zk 新增伺服器節點資訊 server.1=node02:2888:3888 server.2=node03:2888:3888 server.3=node04:2888:3888 在各個節點的/var/sxt/zk下建立一個myid檔案,並將值加入其中 echo 1 > myid
啟動hadoopHA叢集
啟動zookeeper zkServer.sh start 檢查zookeeper狀態 zkServer.sh status 啟動journalnode hadoop-daemon.sh start journalnode 在主NN上 格式化namenode hdfs namenode –format 啟動NameNode hadoop-daemon.sh start namenode 在另一臺NN上 hdfs namenode -bootstrapStandby 格式化zkfc hdfs zkfc -formatZK 啟動dfs start-dfs.sh 檢查叢集 jps 通過瀏覽器訪問
hadoop+yarn的搭建
目標:用yarn來管理hadoop叢集的資源排程 配置mapred-site.xml 指定mapreduce框架名yarn <name>mapreduce.framework.name</name> <value>yarn</value> 配置yarn-site.xml 指定shuffle <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> 開啟ResourceManager <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> 指定叢集id <name>yarn.resourcemanager.cluster-id</name> <value>cluster1</value> 指定ResourceManager的虛擬節點 <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> 指定ResourceManager真實物理 <name>yarn.resourcemanager.hostname.rm1</name> <value>node03</value> <name>yarn.resourcemanager.hostname.rm2</name> <value>node04</value> 指定zookeeper節點,利用zookeeper實現高可用 <name>yarn.resourcemanager.zk-address</name> <value>node02:2181,node03:2181,node04:2181</value> 啟動hadoop+yarn 前面的hadoopHA已經啟動 在node01上啟動yarn start-yarn.sh 在node03和node04上分別啟動ResourceManager yarn-daemon.sh start resourcemanager