Linnux中搭建HADOOP僞分佈式集羣環境

步驟以下:html

 Linux環境基礎配置可參照我上一篇博客http://www.cnblogs.com/whcwkw1314/p/8921352.htmljava

1、準備工做

1.目錄規劃及軟件安裝

建立目錄:在根目錄下的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文件

賦予這三個文件執行權限

2、HDFS安裝

 首先配置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文件

測試成功~

 

3、YARN安裝

配置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

4、運行MapReduce

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~

相關文章
相關標籤/搜索