Hadoop框架:单服务下伪分布式集群搭建
本文源碼:GitHub·點這里 || GitEE·點這里
一、基礎環境
1、環境版本
環境:centos7 hadoop版本:2.7.2 jdk版本:1.82、Hadoop目錄結構
- bin目錄:存放對Hadoop的HDFS,YARN服務進行操作的腳本
- etc目錄:Hadoop的相關配置文件目錄
- lib目錄:存放Hadoop的本地庫,提供數據壓縮解壓縮能力
- sbin目錄:存放啟動或停止Hadoop相關服務的腳本
- share目錄:存放Hadoop的依賴jar包、文檔、和相關案例
3、配置加載
vim /etc/profile # 添加環境 export JAVA_HOME=/opt/jdk1.8 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/opt/hadoop2.7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# 退出刷新配置 source /etc/profile二、偽集群配置
以下配置文件所在路徑:/opt/hadoop2.7/etc/hadoop,這里是Linux環境,腳本配置sh格式。
1、配置hadoop-env
root# vim hadoop-env.sh # 修改前 export JAVA_HOME= # 修改后 export JAVA_HOME=/opt/jdk1.82、配置core-site
文件結構概覽
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> </configuration>NameNode的地址
<property><name>fs.defaultFS</name><value>hdfs://127.0.0.1:9000</value> </property>數據存放目錄:Hadoop運行時產生文件的存儲目錄。
<property><name>hadoop.tmp.dir</name><value>/opt/hadoop2.7/data/tmp</value> </property>3、配置hdfs-site
文件結構和上述一樣,配置hdfs副本個數,這里偽環境,配置1個即可。
<property><name>dfs.replication</name><value>1</value> </property>4、配置yarn-env
export JAVA_HOME=/opt/jdk1.85、配置yarn-site
指定YARN的ResourceManager的地址
<property><name>yarn.resourcemanager.hostname</name><value>192.168.72.132</value> </property>指定map產生的中間結果傳遞給reduce采用的機制是shuffle
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value> </property>6、配置mapred-env
export JAVA_HOME=/opt/jdk1.87、配置mapred-site
將mapred-site.xml.template重新命名為mapred-site.xml。
指定MapReduce程序資源調在度集群上運行。如果不指定為yarn,那么MapReduce程序就只會在本地運行而非在整個集群中運行。
<property><name>mapreduce.framework.name</name><value>yarn</value> </property>三、環境啟動測試
1、測試文件系統
Hdfs相關
格式化NameNode
第一次啟動時執行該操作。
[hadoop2.7]# bin/hdfs namenode -format格式化NameNode,會產生新的clusterID,導致NameNode和DataNode的集群id不一致,集群找不到已往數據。所以,格式NameNode時,一定要停止相關進程,刪除data數據和log日志,然后再格式化NameNode。clusterID在如下目錄中的VERSION文件里,可自行查看對比。
/opt/hadoop2.7/data/tmp/dfs/name/current /opt/hadoop2.7/data/tmp/dfs/data/current啟動NameNode
[hadoop2.7]# sbin/hadoop-daemon.sh start namenode啟動DataNode
[hadoop2.7]# sbin/hadoop-daemon.sh start datanodejps查看狀態
[root@localhost hadoop2.7]# jps 2450 Jps 2276 NameNode 2379 DataNodeWeb界面查看
需要Linux關閉防火墻和相關安全增強控制(這里很重要)。
IP地址:50070Yarn相關
啟動ResourceManager
[hadoop2.7]# sbin/yarn-daemon.sh start resourcemanager啟動NodeManager
[hadoop2.7]# sbin/yarn-daemon.sh start nodemanagerWeb界面查看
IP地址:8088/clusterMapReduce相關
文件操作測試
創建一個測試文件目錄
[root@localhost inputfile]# pwd /opt/inputfile [root@localhost inputfile]# echo "hello word hadoop" > word.txtHDFS文件系統上創建文件夾
[hadoop2.7] bin/hdfs dfs -mkdir -p /opt/upfile/input上傳文件
[hadoop2.7]# bin/hdfs dfs -put /opt/inputfile/word.txt /opt/upfile/input查看文件
[hadoop2.7]# bin/hdfs dfs -ls /opt/upfile/input2、Web端查看文件
執行文件分析
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /opt/upfile/input /opt/upfile/output查看分析結果
bin/hdfs dfs -cat /opt/upfile/output/*結果:每個單詞各自出現一次。
刪除分析結果
bin/hdfs dfs -rm -r /opt/upfile/output四、歷史服務器
MapReduce的JobHistoryServer,這是一個獨立的服務,可通過 web UI 展示歷史作業日志。
1、修改mapred-site
<!-- 服務器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.72.132:10020</value> </property><!-- 服務器web端地址 --> <property><name>mapreduce.jobhistory.webapp.address</name><value>192.168.72.132:19888</value> </property>2、啟動服務
[hadoop2.7]# sbin/mr-jobhistory-daemon.sh start historyserver3、Web端查看
IP地址:198884、配置日志的聚集
日志聚集概念:應用服務運行完成以后,將運行日志信息上傳到HDFS系統上。方便的查看到程序運行詳情,方便開發調試。
開啟日志聚集功能之后,需要重新啟動NodeManager 、ResourceManager和HistoryManager。
關閉上述服務
[hadoop2.7]# sbin/yarn-daemon.sh stop resourcemanager [hadoop2.7]# sbin/yarn-daemon.sh stop nodemanager [hadoop2.7]# sbin/mr-jobhistory-daemon.sh stop historyserver修改yarn-site
<!-- 日志聚集功開啟 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property><!-- 日志保留時間7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>修改完之后再次啟動上述服務器。再次執行文件分析任務。
查看Web端
五、源代碼地址
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent總結
以上是生活随笔為你收集整理的Hadoop框架:单服务下伪分布式集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈 System.Data.DataR
- 下一篇: 关于Java性能监控您不知道的5件事