2021年大数据环境搭建(二):分布式环境搭建
2021大數據領域優質創作博客,帶你從入門到精通,該博客每天更新,逐漸完善大數據各個知識體系的文章,幫助大家更高效學習。
有對大數據感興趣的可以關注微信公眾號:三幫大數據
目錄
分布式環境搭建
集群規劃
安裝包解壓
配置文件的修改
修改core-site.xml
???????修改hdfs-site.xml
???????修改yarn-site.xml,注意node03與node02配置不同
???????修改mapred-site.xml
???????修改slaves
???????修改hadoop-env.sh
???????集群啟動過程
???????啟動HDFS過程
???????啟動yarn過程
???????查看resourceManager狀態
???????node3啟動jobHistory
???????hdfs狀態查看
???????yarn集群訪問查看
???????歷史任務瀏覽界面
分布式環境搭建
集群規劃
使用完全分布式,實現namenode高可用,ResourceManager的高可用
集群運行服務規劃
| node1 | node2 | node3 | |
| zookeeper | zk | zk | zk |
| HDFS | JournalNode | JournalNode | JournalNode |
| NameNode | NameNode | ||
| ZKFC | ZKFC | ||
| DataNode | DataNode | DataNode | |
| YARN | ResourceManager | ResourceManager | |
| NodeManager | NodeManager | NodeManager | |
| MapReduce | JobHistoryServer |
???????安裝包解壓
停止之前的hadoop集群的所有服務,然后重新解壓編譯后的hadoop壓縮包
解壓壓縮包
node1機器執行以下命令進行解壓
mkdir?-p /opt/softwaremkdir?-p /opt/servercd?/opt/softwaretar?-zxvf hadoop-2.7.5.tar.gz -C /opt/server/cd?/opt/server/hadoop-2.7.5/etc/hadoop
???????配置文件的修改
以下操作都在node1機器上進行
???????修改core-site.xml
<configuration><!-- 指定NameNode的HA高可用的zk地址 ?--><property><name>ha.zookeeper.quorum</name><value>node1:2181,node2:2181,node3:2181</value></property><!-- 指定HDFS訪問的域名地址 ?--><property><name>fs.defaultFS</name><value>hdfs://ns</value></property><!-- 臨時文件存儲目錄 ?--><property><name>hadoop.tmp.dir</name><value>/opt/server/hadoop-2.7.5/data/tmp</value></property><!-- 開啟hdfs垃圾箱機制,指定垃圾箱中的文件七天之后就徹底刪掉單位為分鐘--><property><name>fs.trash.interval</name><value>10080</value></property></configuration>
???????修改hdfs-site.xml
<configuration><!-- 指定NameNode的HA高可用的zk地址 ?--><property><name>ha.zookeeper.quorum</name><value>node1:2181,node2:2181,node3:2181</value></property><!-- 指定HDFS訪問的域名地址 ?--><property><name>fs.defaultFS</name><value>hdfs://ns</value></property><!-- 臨時文件存儲目錄 ?--><property><name>hadoop.tmp.dir</name><value>/opt/server/hadoop-2.7.5/data/tmp</value></property><!-- 開啟hdfs垃圾箱機制,指定垃圾箱中的文件七天之后就徹底刪掉單位為分鐘--><property><name>fs.trash.interval</name><value>10080</value></property></configuration>
???????修改yarn-site.xml,注意node03與node02配置不同
<configuration><!-- Site specific YARN configuration properties --><!-- 是否啟用日志聚合.應用程序完成后,日志匯總收集每個容器的日志,這些日志移動到文件系統,例如HDFS. --><!-- 用戶可以通過配置"yarn.nodemanager.remote-app-log-dir"、"yarn.nodemanager.remote-app-log-dir-suffix"來確定日志移動到的位置 --><!-- 用戶可以通過應用程序時間服務器訪問日志 --><!-- 啟用日志聚合功能,應用程序完成后,收集各個節點的日志到一起便于查看 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!--開啟resource manager HA,默認為false-->?<property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 集群的Id,使用該值確保RM不會做為其它集群的active --><property><name>yarn.resourcemanager.cluster-id</name><value>mycluster</value></property><!--配置resource manager ?命名--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!-- 配置第一臺機器的resourceManager --><property><name>yarn.resourcemanager.hostname.rm1</name><value>node2</value></property><!-- 配置第二臺機器的resourceManager --><property><name>yarn.resourcemanager.hostname.rm2</name><value>node3</value></property><!-- 配置第一臺機器的resourceManager通信地址 --><property><name>yarn.resourcemanager.address.rm1</name><value>node2:8032</value></property><property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>node2:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address.rm1</name><value>node2:8031</value></property><property><name>yarn.resourcemanager.admin.address.rm1</name><value>node2:8033</value></property><property><name>yarn.resourcemanager.webapp.address.rm1</name><value>node2:8088</value></property><!-- 配置第二臺機器的resourceManager通信地址 --><property><name>yarn.resourcemanager.address.rm2</name><value>node3:8032</value></property><property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>node3:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address.rm2</name><value>node3:8031</value></property><property><name>yarn.resourcemanager.admin.address.rm2</name><value>node3:8033</value></property><property><name>yarn.resourcemanager.webapp.address.rm2</name><value>node3:8088</value></property><!--開啟resourcemanager自動恢復功能--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!--在node2上配置rm1,在node3上配置rm2,注意:一般都喜歡把配置好的文件遠程復制到其它機器上,但這個在YARN的另一個機器上一定要修改,其他機器上不配置此項--><property>???????<name>yarn.resourcemanager.ha.id</name><value>rm1</value><description>If we want to launch more than one RM in single node, we need this configuration</description></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>node2:2181,node3:2181,node1:2181</value><description>For multiple zk services, separate them with comma</description></property><!--開啟resourcemanager故障自動切換,指定機器-->?<property><name>yarn.resourcemanager.ha.automatic-failover.enabled</name><value>true</value><description>Enable automatic failover; By default, it is enabled only when HA is enabled.</description></property><property><name>yarn.client.failover-proxy-provider</name><value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value></property><!-- 允許分配給一個任務最大的CPU核數,默認是8 --><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>2</value></property><!-- 每個節點可用內存,單位MB --><property><name>yarn.nodemanager.resource.memory-mb</name><value>2048</value></property><!-- 單個任務可申請最少內存,默認1024MB --><property><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value></property><!-- 單個任務可申請最大內存,默認8192MB --><property><name>yarn.scheduler.maximum-allocation-mb</name><value>2048</value></property><!--多長時間聚合刪除一次日志 此處--><property><name>yarn.log-aggregation.retain-seconds</name><value>2592000</value><!--30 day--></property><!--時間在幾秒鐘內保留用戶日志。只適用于如果日志聚合是禁用的--><property><name>yarn.nodemanager.log.retain-seconds</name><value>604800</value><!--7 day--></property><!--指定文件壓縮類型用于壓縮匯總日志--><property><name>yarn.nodemanager.log-aggregation.compression-type</name><value>gz</value></property><!-- nodemanager本地文件存儲目錄--><property><name>yarn.nodemanager.local-dirs</name><value>/opt/server/hadoop-2.7.5/yarn/local</value></property><!-- resourceManager ?保存最大的任務完成個數 --><property><name>yarn.resourcemanager.max-completed-applications</name><value>1000</value></property><!-- 逗號隔開的服務列表,列表名稱應該只包含a-zA-Z0-9_,不能以數字開始--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--rm失聯后重新鏈接的時間-->?<property><name>yarn.resourcemanager.connect.retry-interval.ms</name><value>2000</value></property></configuration>
???????修改mapred-site.xml
<configuration><!--指定運行mapreduce的環境是yarn --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- MapReduce JobHistory Server IPC host:port --><property><name>mapreduce.jobhistory.address</name><value>node3:10020</value></property><!-- MapReduce JobHistory Server Web UI host:port --><property><name>mapreduce.jobhistory.webapp.address</name><value>node0:19888</value></property><!-- The directory where MapReduce stores control files.默認 ${hadoop.tmp.dir}/mapred/system --><property><name>mapreduce.jobtracker.system.dir</name><value>/opt/server/hadoop-2.7.5/data/system/jobtracker</value></property><!-- The amount of memory to request from the scheduler for each map task. 默認 1024--><property><name>mapreduce.map.memory.mb</name><value>1024</value></property><!-- <property><name>mapreduce.map.java.opts</name><value>-Xmx1024m</value></property> --><!-- The amount of memory to request from the scheduler for each reduce task. 默認 1024--><property><name>mapreduce.reduce.memory.mb</name><value>1024</value></property><!-- <property><name>mapreduce.reduce.java.opts</name><value>-Xmx2048m</value></property> --><!-- 用于存儲文件的緩存內存的總數量,以兆字節為單位。默認情況下,分配給每個合并流1MB,給個合并流應該尋求最小化。默認值100--><property><name>mapreduce.task.io.sort.mb</name><value>100</value></property><!-- <property><name>mapreduce.jobtracker.handler.count</name><value>25</value></property>--><!-- 整理文件時用于合并的流的數量。這決定了打開的文件句柄的數量。默認值10--><property><name>mapreduce.task.io.sort.factor</name><value>10</value></property><!-- 默認的并行傳輸量由reduce在copy(shuffle)階段。默認值5--><property><name>mapreduce.reduce.shuffle.parallelcopies</name><value>15</value></property><property><name>yarn.app.mapreduce.am.command-opts</name><value>-Xmx1024m</value></property><!-- MR AppMaster所需的內存總量。默認值1536--><property><name>yarn.app.mapreduce.am.resource.mb</name><value>1536</value></property><!-- MapReduce存儲中間數據文件的本地目錄。目錄不存在則被忽略。默認值${hadoop.tmp.dir}/mapred/local--><property><name>mapreduce.cluster.local.dir</name><value>/opt/server/hadoop-2.7.5/data/system/local</value></property></configuration>
???????修改slaves
node1node2node3
???????修改hadoop-env.sh
export JAVA_HOME=/export/server/jdk1.8.0_241
???????集群啟動過程
將第一臺機器的安裝包發送到其他機器上
第一臺機器執行以下命令:
cd?/opt/serverscp -r hadoop-2.7.5/?node2:$PWDscp -r hadoop-2.7.5/?node3:$PWD
三臺機器上共同創建目錄
三臺機器執行以下命令
mkdir?-p /opt/server/hadoop-2.7.5/data/dfs/nn/namemkdir?-p /opt/server/hadoop-2.7.5/data/dfs/nn/editsmkdir?-p /opt/server/hadoop-2.7.5/data/dfs/nn/namemkdir?-p /opt/server/hadoop-2.7.5/data/dfs/nn/edits
更改node3的rm2
第二臺機器執行以下命令
vim?yarn-site.xml
?<!--在node2上配置rm1,在node3上配置rm2,注意:一般都喜歡把配置好的文件遠程復制到其它機器上,
但這個在YARN的另一個機器上一定要修改,其他機器上不配置此項
注意我們現在有兩個resourceManager ??第二臺是rm1 第三臺是rm2
這個配置一定要記得去node3上面改好
-->
<property>???????<name>yarn.resourcemanager.ha.id</name><value>rm2</value><description>If we want to launch more than one RM in single node, we need this configuration</description></property>
???????啟動HDFS過程
node1機器執行以下命令
cd???/opt/server/hadoop-2.7.5bin/hdfs zkfc -formatZKsbin/hadoop-daemons.sh start journalnodebin/hdfs namenode -formatbin/hdfs namenode -initializeSharedEdits -forcesbin/start-dfs.sh
node2上面執行
cd???/opt/server/hadoop-2.7.5bin/hdfs namenode -bootstrapStandbysbin/hadoop-daemon.sh start namenode
???????啟動yarn過程
node2上執行
cd???/opt/server/hadoop-2.7.5sbin/start-yarn.sh
node3上面執行
cd???/export/servers/hadoop-2.7.5sbin/start-yarn.sh
???????查看resourceManager狀態
node2上面執行
cd???/opt/server/hadoop-2.7.5bin/yarn rmadmin -getServiceState rm1
node3上面執行
cd???/opt/server/hadoop-2.7.5bin/yarn rmadmin -getServiceState rm2
???????node3啟動jobHistory
node3機器執行以下命令啟動jobHistory
cd?/opt/server/hadoop-2.7.5sbin/mr-jobhistory-daemon.sh start historyserver
???????hdfs狀態查看
node1機器查看hdfs狀態
http://192.168.88.161:50070/dfshealth.html#tab-overview
node2機器查看hdfs狀態
http://192.168.88.162:50070/dfshealth.html#tab-overview
???????yarn集群訪問查看
http://192.168.88.163:8088/cluster
???????歷史任務瀏覽界面
頁面訪問:
http://192.168.88.163:19888/jobhistory
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
總結
以上是生活随笔為你收集整理的2021年大数据环境搭建(二):分布式环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据环境搭建(一):
- 下一篇: 2021年大数据Hadoop(一):