步驟以下:html
Linux環境基礎配置可參照我上一篇博客http://www.cnblogs.com/whcwkw1314/p/8921352.htmljava
建立目錄:在根目錄下的opt文件夾中建立4個文件夾 node
datas放測試數據 softwares放軟件安裝壓縮包 modules軟件安裝目錄 tools開發IDE以及工具 linux
查看是否建立成功web
上傳軟件:安全
這裏我用了linux自帶的上傳下載軟件服務器
$ sudo yum install -y lrzsz 其中 rz: 上傳文件 sz: 表示下載
在softwares文件夾下上傳hadoop2.x版本的壓縮包 jdk在上篇博客中已經安裝完畢app
給該壓縮包添加執行權限框架
解壓到指定目錄moduleswebapp
解壓完畢後查看hadoop-2.7.3文件夾屬性
更改所屬用戶及用戶組爲當前用戶, 使以後的操做更加安全 ,root用戶下的誤操做可能會形成很大影響
配置*-env.sh環境變量文件 hadoop-env.sh yarn-env.sh mapred-env.sh
進入解壓後的hadoop-2.7.3中的/etc/hadoop 能夠看到這三個文件以及後面要配置的一些配置文件
這裏我用nodepad++鏈接虛擬機進行更改配置操做 直觀方便
首先更改hadoop-env.sh
將JAVA_HOME路徑更改成以前安裝JDK的路徑
export JAVA_HOME=/opt/modules/jdk1.8.0_91
而後更改完yarn-env.sh mapred-env.sh 這2文件
賦予這三個文件執行權限
首先配置HDFS環境
1.建立臨時數據存儲目錄(在hadoop-2.7.3當前目錄下建立data文件夾內含tmpData文件夾) ./表示在當前目錄下
2.配置core-site.xml文件
<configuration> <!--指定文件系統爲HDFS及NameNode主節點運行的機器端口和ip地址--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata-hpsk01.huadian.com:8020</value> </property> <!--本地臨時存儲目錄--> <property> <name>hadoop.tmp.dir</name> <value>/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/data/tmpData</value> </property> </configuration>
3.配置hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
4.配置slaves文件:指定DataNode運行在哪些機器上
此文件中一行表示一個主機名稱,會在此主機上運行DataNode
下一步啓動服務
對於HDFS文件系統來講 第一次要格式化系統
能夠在下面的目錄中看到 namenode -format命令是用來格式化HDFS文件系統的
若初始化沒有報錯即成功。
啓動HDFS服務 主節點和從節點
而後驗證是否成功
第一種方式:查看進程 命令行輸入jps 出現NameNode DataNode即成功
第二種方式:經過web ui界面查看 http://bigdata-hpsk01.huadian.com:50070 這裏經過主機名訪問確保在本地hosts文件中配置了映射。(我在上篇博客中已經配置好了映射)
出現以下界面即成功
測試HDFS
1.查看幫助文檔
$ bin/hdfs dfs
能夠看到對HDFS操做的命令
2.建立目錄
$ bin/hdfs dfs -mkdir -p /datas/tmp
3.上傳文件
$ bin/hdfs dfs -put etc/hadoop/core-site.xml /datas/tmp
4.列舉目錄文件
$ bin/hdfs dfs -ls /datas/tmp
5. 查看文件的內容
$ bin/hdfs dfs -text /datas/tmp/core-site.xml
最後咱們去webui界面看看HDFS文件系統裏面是否有了這些內容
datas文件夾裏面有tmp文件夾
而後咱們上傳了core-site.xml文件
測試成功~
配置YARN集羣
對於分佈式資源管理和任務調度框架來講:
在YARN上面運行多種應用的程序
- MapReduce
並行數據處理框架
- Spark
基於內存分佈式計算框架
- Storm/Flink
實時流式計算框架
- Tez
分析數據,速度MapReduce快
主節點:
ResourceManager
從節點:
NodeManagers
配置yarn-site.xml文件
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata-hpsk01.huadian.com</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
配置slaves文件
指定NodeManager運行的主機名稱,因爲NodeManager與DataNode同屬一臺機器,前面已經配置完成。
啓動服務
RM 主節點:
$ sbin/yarn-daemon.sh start resourcemanager
NM 從節點:
$ sbin/yarn-daemon.sh start nodemanager
輸入jps能夠看到已經啓動成功了,也可查看全部與java相關的進程 ps -ef|grep java
最後經過web ui 界面來驗證 出現以下界面OK
MapReduce: 並行計算框架(Hadoop 2.x)
思想:分而治之
核心:
Map: 分
並行處理數據,將數據分割,一部分一部分的處理
Reduce: 合
將Map處理的數據結果進行合併,包含一些業務邏輯在裏面
大數據計算框架中經典案例(下面咱們來運行這個案例):
詞頻統計(WordCount)
統計某個文件中單詞的出現次數
1.配置MapReduce相關屬性:
進入hadoop-2.7.3下的etc/hadoop 拷貝該目錄下的MapReduce模板配置文件
$ cd etc/hadoop/
$ cp mapred-site.xml.template mapred-site.xml
而後修改mapred-site.xml文件,指定MapReduce的程序運行在YARN上
2.提交MapReduce程序,到YARN上運行
- 準備測試數據 在cd到預先建立的/opt/datas文件夾(用來存放測試數據)中建立一個測試數據文件wc.input
編輯數據文件並保存:
在HDFS文件系統中遞歸建立/user/huadian/mapreduce/wordcount/input文件夾 bin/hdfs dfs命令要在hadoop-2.7.3目錄下操做
$ bin/hdfs dfs -mkdir -p /user/huadian/mapreduce/wordcount/input
把咱們的測試數據文件放到input目錄下
$ bin/hdfs dfs -put /opt/datas/wc.input /user/huadian/mapreduce/wordcount/input
3.提交運行
這裏咱們用官方自帶MapReduce程序JAR包 路徑以下:
${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-
examples-2.7.3.jar wordcountUsage: wordcount <in> [<in>...] <out>
參數說明:
<in> -> 表示的MapReduce程序要處理的數據所在的位置
<out> -> 表示的MapReduc處理的數據結果存儲的位置,此路徑不能存在。
命令以下:
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/huadian/mapreduce/wordcount/input /user/huadian/mapreduce/wordcount/output678
查看結果
$ bin/hdfs dfs -text /user/huadian/mapreduce/wordcount/output67/part*
界面上看到success即成功
最後啓動一下日誌服務
配置mapred-site.xml:
<!-- 配置歷史服務器 --> <property> <name>mapreduce.jobhistory.address</name> <value>bigdata-hpsk01.huadian.com:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>bigdata-hpsk01.huadian.com:19888</value> </property>
啓動服務:
$ sbin/mr-jobhistory-daemon.sh start historyserver
日誌彙集功能:
當MapReduce程序在YARN上運行完成之後,將產生的日誌文件上傳到HDFS的目錄中,以便後續監控查看
配置yarn-site.xml:
<!-- 配置YARN日誌彙集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
重啓YARN和JobHistoryServer服務
爲了從新讀取配置屬性
OK~