




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
任務6.1HadoopHA環境搭建任務實施1.配置靜態IP在宿主機中,創建自定義網橋,指定網段,網關,操作命令及結果如下。[root@CentOS~]#dockernetworkcreate--subnet=/24--gateway=HAf1bad6fa92064749b7e9df80ae3832fd0a33ba644b781c83b2d7da6510ea57232.Docker容器添加端口映射創建3個容器,并添加端口映射,操作命令如下。[root@CentOS~]#dockerrun-dit-hmaster1--namemaster1--network=HA--ip=0-p10022:22-p50070:50070-p8088:8088-p8042:8042-p2181:2181--privileged=truecentos:7init
[root@CentOS~]#dockerrun-dit-hslave1--nameslave1--network=HA--ip=1-p10023:22-p50071:50070-p8089:8088-p2182:2181-p8043:8042--privileged=truecentos:7init
[root@CentOS~]#dockerrun-dit-hslave2--nameslave2--network=HA--ip=2-p10024:22-p8090:8088-p2183:2181-p8044:8042--privileged=truecentos:7init3.拷貝安裝包到master1容器中,操作命令及結果如下。[root@CentOSopt]#dockercp/opt/hadoop-2.7.7.tar.gzmaster1:/optSuccessfullycopied218.7MBtomaster1:/opt[root@CentOSopt]#dockercp/opt/zookeeper-3.4.8.tar.gzmaster1:/optSuccessfullycopied22.26MBtomaster1:/opt[root@CentOSopt]#dockercp/opt/jdk-8u341-linux-x64.tar.gzmaster1:/optSuccessfullycopied148.2MBtomaster1:/opt4.進入master1容器,安裝并開啟SSH服務,操作命令如下。[root@CentOSopt]#dockerexec-itmaster1bash[root@master1/]#yuminstall-ynet-toolsvimopenssh
openssh-clientsopenssh-serverwhich[root@master1/]#systemctlstartsshd5.解壓jdk,hadoop,zookeeper文件到指定目錄中,并重命名文件,操作命令如下。[root@master1opt]#tar-zxvfjdk-8u341-linux-x64.tar.gz-C/usr/lib/[root@master1opt]#tar-zxvfhadoop-2.7.7.tar.gz-C/usr/local/[root@master1opt]#tar-zxvfzookeeper-3.4.8.tar.gz-C/usr/local/[root@master1opt]#cd/usr/lib[root@master1lib]#mvjdk1.8.0_341jdk1.8.0[root@master1lib]#cd/usr/local/[root@master1local]#mvhadoop-2.7.7hadoop[root@master1local]#mvzookeeper-3.4.8/zookeeper6.編輯“~/.bashrc”文件,將相應軟件的安裝路徑添加到環境變量中,操作內容如下。exportJAVA_HOME=/usr/lib/jdk1.8.0exportHADOOP_HOME=/usr/local/hadoopexportZOOKEEPER_HOME=/usr/local/zookeeperPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin7.配置免密登錄生成密鑰,配置免密登錄并測試,操作命令如下。[root@master1~]#ssh-keygen-trsa[root@master1~]#ssh-copy-idmaster1[root@master1~]#ssh-copy-idslave1[root@master1~]#ssh-copy-idslave2[root@master1~]#sshslave1Lastlogin:MonMar608:15:562023from[root@slave1~]#8.配置zookeeper切換到zookeeper下的conf目錄,通過復制“zoo_sample.cfg”文件創建“zoo.cfg”文件,操作命令如下。[root@master1conf]#cpzoo_sample.cfgzoo.cfg編輯“zoo.cfg”文件,操作命令及文件內容如下。[root@master1conf]#vizoo.cfg
tickTime=2000initLimit=10syncLimit=5clientPort=2181dataDir=/usr/local/zookeeper/datadataLogDir=/usr/local/zookeeper/logsserver.1=master1:2888:3888server.2=slave1:2889:3889server.3=slave2:2890:3890其中配置項“dataDir”和“dataLogDir”中的目錄需要手動創建,操作命令如下。[root@master1zookeeper]#mkdirdata[root@master1zookeeper]#mkdirlogs進入新創建的data目錄中,創建myid文件,并編輯其內容為1,操作命令如下。[root@master1zookeeper]#cddata/[root@master1data]#touchmyid9.配置Hadoop配置完Zookeeper后,切換到“/usr/local/hadoop/etc/hadoop”目錄中在此查看目錄,操作命令如下。[root@master1hadoop]#lscapacity-scheduler.xmlhttpfs-env.shmapred-env.shconfiguration.xsl
httpfs-pertiesmapred-queues.xml.templatecontainer-executor.cfg
httpfs-signature.secretmapred-site.xml.templatecore-site.xmlhttpfs-site.xmlslaveshadoop-env.cmdkms-acls.xmlssl-client.xml.examplehadoop-env.shkms-env.shssl-server.xml.examplepertiespertiesyarn-env.cmdpertieskms-site.xmlyarn-env.shhadoop-policy.xmlpertiesyarn-site.xmlhdfs-site.xmlmapred-env.cmd編輯hadoop-env.sh,修改JAVA_HOME配置項,配置內容如下。#Thejavaimplementationtouse.exportJAVA_HOME=/usr/lib/jdk1.8.0在“/usr/local/hadoop/etc/hadoop”目錄中,通過拷貝“mapred-site.xml.template”文件生成“mapred-site.xml”文件,操作命令如下。[root@master1hadoop]#cpmapred-site.xml.templatemapred-site.xml分別編輯core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml四文件個文件。<configuration><!--使用fs.defa還是使用fs.defaultFS,首先判斷是否開啟了namenode的高可用,如果開啟了就用fs.defaultFS,在單一namenode的情況下,就用fs.defa
<!--指定默認的HDFS路徑--><property><name>fs.defaultFS</name><value>hdfs://mycluster</value></property><!--指定NameNode、DataNode、secondaryNamenode等存放數據的公共目錄--><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/tmp</value></property><!--指定zookeeper地址--><property><name>ha.zookeeper.quorum</name><value>master1:2181,slave1:2181,slave2:2181</value></property><!--設置hadoop鏈接zookeeper的超時時間--><property><name>ha.zookeeper.session-timeout.ms</name><value>30000</value></property><!--設置垃圾回收時間,以分鐘為單位,1440分鐘=60*24,剛好是一天--><property><name>erval</name><value>1440</value></property></configuration>編輯“core-site.xml”文件,內容如下。
(文本過長,放在ppt頁面下方)編輯“hdfs-site.xml”文件,文件內容如下,(文本過長,放在ppt頁面下方,第一頁)。
<configuration><!--指定journalnode集群之間通信的超時時間--><property><name>dfs.qjournal.start-segment.timeout.ms</name><value>60000</value></property><!--指定namenode的組名稱,自己可以定義--><property><name>dfs.nameservices</name><value>mycluster</value></property><!--指定namenode組mycluster的成員--><property><name>dfs.ha.namenodes.mycluster</name><value>master1,slave1</value></property><!--配置master1的rpc地址及端口號--><property><name>dfs.namenode.rpc-address.mycluster.master1</name><value>master1:9000</value></property><!--配置slave1的rpc地址及端口號--><property><name>dfs.namenode.rpc-address.mycluster.slave1</name><value>slave1:9000</value></property><!--配置master1的地址及端口號--><property><name>dfs.namenode.http-address.mycluster.master1</name><value>master1:50070</value></property><!--配置slave1的地址及端口號--><property><name>dfs.namenode.http-address.mycluster.slave1</name><value>slave1:50070</value></property><!--指定NameNode的edits元數據在JournalNode上的存放位置--><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master1:8485;slave1:8485;slave2:8485/mycluster</value></property><!--指定該集群出故障時,哪個實現類負責執行故障切換--><property> <name>dfs.client.failvider.mycluster</name><value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider </value></property><!--配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行--><property> <name>dfs.ha.fencing.methods</name><value>
sshfenceshell(/bin/true)</value></property><!--如果為"true",則在HDFS中啟用權限檢查;如果為"false",則關閉權限檢查;默認值為"true"。--><property><name>dfs.permissions.enabled</name><value>false</value></property>
<property><!--指定是否允許支持文件追加,默認為”false”--><name>dfs.support.append</name><value>true</value></property><!--使用sshfence隔離機制時需要ssh免登錄--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!--數據備份的個數--><property><name>dfs.replication</name><value>2</value></property><!--指定hdfs元數據存儲的路徑--><property><name>dfs.namenode.name.dir</name><value>/usr/local/hadoop/dfs/name</value></property><!--指定hdfs數據存儲的路徑--><property><name>dfs.datanode.data.dir</name><value>/usr/local/hadoop/dfs/data</value></property><!--指定journalnode日志文件存儲的路徑--><property><name>dfs.journalnode.edits.dir</name><value>/usr/local/hadoop/tmp/journal</value></property><!--開啟自動故障轉移--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!--開啟WebHDFS功能(基于REST的接口服務)--><property><name>dfs.webhdfs.enabled</name><value>true</value></property><!--配置sshfence隔離機制超時時間--><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property><!--設定從CLI手動運行的FC功能等待健康檢查、服務狀態超時時間--><property><name>ha.failover-controller.cli-check.rpc-timeout.ms</name><value>60000</value></property></configuration>編輯“hdfs-site.xml”文件,文件內容如下,(文本過長,放在ppt頁面下方,第二頁)。
編輯“mapred-site.xml”文件,文件內容如下。<configuration><!--設定指定mapreduce執行框架為YARN方式--><property><name>map</name><value>yarn</value></property><!--設定jobhistory的IPC地址--><property><name>mapreduce.jobhistory.address</name><value>master1:10020</value></property><!--設定jobhistory的web地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>master1:19888</value></property></configuration>編輯“yarn-site.xml”文件,文件內容如下。(文本過長,放在ppt頁面下方)<configuration><!--開啟resourcemanger高可用--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!--指定resourcemanger的clusterid--><property><name>yarn.resourcemanager.cluster-id</name><value>yrc</value></property><!--指定resourcemanger的名字--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!--分別指定resourcemanger的地址--><property><name>yarn.resourcemanager.hostname.rm1</name><value>master1</value></property><!--分別指定resourcemanger的地址--><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value></property><!--指定resourcemanger使用ZK集群地址--><property><name>yarn.resourcemanager.zk-address</name><value>master1:2181,slave1:2181,slave2:2181</value></property><!--配置yarn運行shuffle的方式,選擇mapreduce的默認shuffle算法--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--是否啟用日志聚集功能--><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!--配置聚集的日志在HDFS上最多保存時間--><property><name>yarn.log-aggregation.retain-seconds</name><value>86400</value></property><!--開啟Recovery后,ResourceManger會將應用的狀態等信息保存到yarn.resourcemanager.store.class配置的存儲介質中,重啟后會load這些信息,并且NodeManger會將還在運行的container信息同步到ResourceManager,整個過程不影響作業的正常運行。--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!--指定yarn.resourcemanager.store.class的存儲介質(HA集群只支持ZKRMStateStore)--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property></configuration>修改slaves文件(3.X為workers),編輯內容如下。master1slave1slave2在core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml四個配置文件中,所涉及的配置項中的目錄需要手動創建,操作命令如下。[root@master1hadoop]#mkdirlogs[root@master1hadoop]#mkdirdfs[root@master1hadoop]#mkdirtmp[root@master1hadoop]#cddfs[root@master1dfs]#mkdirdata[root@master1dfs]#mkdirname[root@master1dfs]#cd..[root@master1hadoop]#cdtmp/[root@master1tmp]#mkdirjournal在master1節點中分別拷貝“.bashrc”、“jdk”、“hadoop”和“zookeeper”文件到slave1和slave2節點中,操作命令如下。[root@master1~]#scp-r~/.bashrcslave1:~/.bashrc[root@master1~]#scp-r~/.bashrcslave2:~/.bashrc[root@master1~]#scp-r/usr/lib/jdk1.8.0slave1:/usr/lib/[root@master1~]#scp-r/usr/lib/jdk1.8.0slave2:/usr/lib/[root@master1~]#scp-r/usr/local/zookeeperslave1:/usr/local/[root@master1~]#scp-r/usr/local/zookeeperslave2:/usr/local/[root@master1~]#scp-r/usr/local/hadoopslave1:/usr/local/[root@master1~]#scp-r/usr/local/hadoopslave2:/usr/local/分別在slave1和slave2節點上執行“source~/.bashrc”命令使環境變量立即生效。10.啟動Hadoop集群(1)啟動Zookeeper集群并查看狀態。在master1節點啟動Zookeeper并查看狀態,操作命令及結果如下。[root@master1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@master1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower
在slave1節點啟動Zookeeper并查看狀態,操作命令及結果如下。[root@slave1zookeeper]#cdbin[root@slave1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@slave1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower
在slave2節點啟動Zookeeper并查看狀態,操作命令及結果如下。[root@slave2zookeeper]#cdbin[root@slave2bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED[root@slave2bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:leader(2)初始化HA在Zookeeper中的狀態,操作命令及部分結果如下。[root@master1bin]#./hdfs
zkfc-formatZK23/03/0614:42:42INFOha.ActiveStandbyElector:Successfullycreated/hadoop-ha/myclusterinZK.23/03/0614:42:42INFOha.ActiveStandbyElector:Sessionconnected.23/03/0614:42:42INFOzookeeper.ZooKeeper:Session:0x386b7555fb80000closed23/03/0614:42:42INFOzookeeper.ClientCnxn:EventThreadshutdown(3)在master1、slave1和slave2中啟動journalnode,操作命令如下。[root@master1sbin]#./hadoop-daemon.shstartjournalnode[root@slave1sbin]#./hadoop-daemon.shstartjournalnode[root@slave2sbin]#./hadoop-daemon.shstartjournalnode在master1中初始化namenode節點,如果看到“status0”字樣即代表初始化成功,操作命令及部分結果如下。[root@master1bin]#hdfs
namenode-format23/03/0614:47:20INFOutil.ExitUtil:Exitingwithstatus023/03/0614:47:20INFOnamenode.NameNode:SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG:ShuttingdownNameNodeatmaster1/10************************************************************/(4)在master1節點執行‘start-all.sh’命令,并分別查看master1、slave1和slave2節點進程,操作命令及結果如下。[root@master1hadoop]#start-all.sh[root@master1hadoop]#jps4896ResourceManager225QuorumPeerMain5330Jps3879JournalNode4072DFSZKFailoverController5016NodeManager3673DataNode3565NameNode
[root@slave1hadoop]#jps2322Jps1783DFSZKFailoverController218QuorumPeerMain1596DataNode1692JournalNode2190NodeManager
[root@slave2hadoop]#jps228QuorumPeerMain1173DataNode1269JournalNode1592NodeManager1724Jps(5)格式化主、從節點將master1節點元數據復制到slave1和slave2節點中,由于之前namenode,datanode的數據存放在hadoop/dfs目錄下,journalnode的數據存放在hadoop/tmp目錄下,所以直接復制dfs和tmp目錄至slave1和slave2節點中,操作命令如下。[root@master1hadoop]#scp-r/usr/local/hadoop/tmp/*slave1:/usr/local/hadoop/tmp/[root@master1hadoop]#scp-r/usr/local/hadoop/dfs/*slave1:/usr/local/hadoop/dfs/[root@master1hadoop]#scp-r/usr/local/hadoop/tmp/*slave2:/usr/local/hadoop/tmp/[root@master1hadoop]#scp-r/usr/local/hadoop/dfs/*slave2:/usr/local/hadoop/dfs/(6)在slave1節點啟動resoucemanager和namenode,操作命令及結果如下。[root@slave1sbin]#./yarn-daemon.shstartresourcemanager[root@slave1sbin]#./hadoop-daemon.shstartnamenode[root@slave1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校科普室管理制度
- 學生桌椅凳管理制度
- 學院體育隊管理制度
- 安全最基本管理制度
- 安全風險點管理制度
- 完善新業態管理制度
- 寶雞小飯桌管理制度
- 實驗服領用管理制度
- 客戶公海池管理制度
- 宣傳部預算管理制度
- 同聲傳譯考試大綱
- 初中英語2023年中考專題訓練任務型閱讀-判斷正誤篇
- 2022年江西南昌高新技術產業開發區人民檢察院聘用制檢察輔助人員招聘考試真題
- 小學安全隱患排查表
- 測控電路課程設計報告-信號采集調理電路的設計【完整版】
- 銀行業法律法規與綜合能力經濟基礎知識課
- 套管開窗側鉆技術
- 2023-2024學年山西省長治市小學語文五年級期末模考題詳細參考答案解析
- 淘寶客服銷售技巧-客戶分析
- 現代物流管理(第三版-錢廷仙)課件3.物流成本核算特點與內容
- 混凝土結構下冊第章鋼筋混凝土框架結構設計
評論
0/150
提交評論