大數據(hadoop-Hadoop2.7.3僞分佈搭建)

安裝準備:

vmware10
Centos6.5 64位版本
JDK1.8linux32位版
Hadoop2.7.3版本html

 

安裝過程講解:

 字符界面安裝centos6.5,網絡設置爲主機模式或者橋鏈接
 配置靜態ip 並測試能不能從主機ping的通虛擬機
 使用secureCRT進行遠程ssh登錄
 配置etc/hosts 添加ip對應的主機名,好比192.168.17.2 master
 安裝ssh 客戶端,經過修改本地yum源來進行,成功後重啓服務
 關閉防火牆 chkconfig
 建立普通用戶 hadoop(名字可自定義)
 設置免密鑰ssh登陸(僞分佈式其實能夠省略
 上傳jdk和hadoop2.7.3
 使用普通用戶登錄,在home目錄下建立bd文件夾(非必需)
 分別解壓jdk和hadoop2.7.3,並測試
 配置普通用戶的環境變量,.bashrc(也能夠直接在etc/profile進行配置)
 測試echo $JAVA_HOME
 修改配置5個配置文件
 hadoop-env.sh
 core-site.xml
 hdfs-site.xml
 mapred-sit.xml(將mapred-sit.xml.template重命令)
 yarn-site.xml
 使用jdk下面的bin目錄中的jps來查看下進程
 或者查看日誌,在hadoop解壓目錄中logs裏面
 在主機windows裏面的system32/drivers/etc/hosts裏面添加linux主機名對應的linux裏面的ip
 經過瀏覽器進行訪問8088端口和50070端口進行測試java

具體操做:

1.添加hadoop用戶node

2.切換到hadoop用戶linux

配置無密碼ssh認證鏈接web

...(自查)apache

獲取hadoop安裝包windows

從hadoop的官網獲取你須要的版本,本教程採用2.8.X版本的安裝包。centos

官網地址:http://hadoop.apache.org/releases.html瀏覽器

jdkbash

hadoop自身是用java編寫的,因此須要java環境來運行它。須要下載一個和你選擇的hadoop版本匹配的JDK安裝包。Hadoop版本與java版本的對應關係以下:
    hadoop3.0                    java8
    hadoop2.7及後續版本        java7
    hadoop2.6及之前的版本    java6
爲方便安裝,咱們到java的oracle官網下載一個64位的jdk8的rpm包。

 

安裝jdk

...(省略)

 

安裝hadoop

上傳安裝包

Hadoop用戶操做:

查看上傳的文件

配置hadoop環境變量

爲hadoop配置JAVA_HOME

配置hadoop集羣

集羣配置文件下載地址:

連接:https://pan.baidu.com/s/1R5081Nd82B5u8DLMysnY7A 密碼 :ldsq

 

Hadoop基礎配置

core-site.xml  核心配置文件

它會被全部的hadoop進程使用。需在該配置文件中配置hadoop集羣默認文件系統的訪問uri(必需配置),能夠指定IO緩衝區的大小等。

這個小集羣的的配置以下:

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.0.11:9000</value>
	</property>
</configuration>

 

HDFS集羣配置

hdfs-site.xml  hdfs集羣參數配置文件

在該文件配置hdfs集羣的參數,經常使用的配置參數以下,若是都是使用的默認值,則不需進行配置。

  • NameNode相關的參數:

  • DataNode相關的參數:

小集羣的配置以下:  

hdfs-site.xml

<configuration>
	<property>
		<description>文件的備份數量</description>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<property>
		<description>NameNode文件系統名稱空間存放目錄</description>
		<name>dfs.namenode.name.dir</name>
		<value>/home/hadoop/namespace</value>
	</property>
	<property>
		<description>DataNode上文件數據塊的存放目錄</description>
		<name>dfs.datanode.data.dir</name>
		<value>/home/hadoop/data</value>
	</property>
</configuration>

從節點(DataNode)列表配置:
在NameNode的etc/hadoop/slaves 文件列出全部的DataNode的ip,一個一行。

10.0.2.20
10.0.2.21
10.0.2.22

 

YARN集羣配置

etc/hadoop/mapred-site.xml 配置

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

etc/hadoop/yarn-site.xml 配置

<configuration>

<!-- Site specific YARN configuration properties -->

	<property>
		<description>resourceManager節點的主機地址</description>
		<name>yarn.resourcemanager.hostname</name>
		<value>192.168.0.13</value>
	</property>
	
	<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

</configuration>

 

複製機器

一、複製

二、修改複製機器:
修改主機名:
    hostnamectl set-hostname xxx

修改ip地址:
    vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    修改 IPADDR=指定ip

重啓網絡服務
    systemctl restart network

 

啓動集羣

啓動hdfs集羣

一、格式化文件系統
$ hdfs namenode -format

二、在NameNode上啓動hdfs集羣
$ start-dfs.sh

hadoop進程的日誌將輸出在目錄 $HADOOP_HOME/logs下  

三、經過瀏覽器瀏覽NameNode的web界面,默認的瀏覽地址爲:
http://namenode-ip:50070
    如 http://192.168.0.111:50070 

可用jps命令查看各個節點上運行的java進程

四、在NameNode上關閉hdfs集羣
$ stop-dfs.sh

啓動yarn集羣

一、啓動:在ResourceManager上啓動yarn集羣
$ start-yarn.sh

二、經過瀏覽器瀏覽ResourceManager的web界面,默認的瀏覽地址爲:
http:// ResourceManager-ip:8088
    如 http://192.168.0.111:8088

三、關閉:在ResourceManager上關閉yarn集羣
$ stop-yarn.sh

啓動jobHistoryServer
mr-jobhistory-daemon.sh start historyserver

 

測試

一、在HDFS上建立執行MapReduce做業所需的目錄
$ hdfs dfs -mkdir /user
$ hdfs dfs -mkdir /user/<username>

二、將輸入文件拷貝到分佈式文件系統上:
$ hdfs dfs -mkdir input
$ hdfs dfs -put etc/hadoop/*.xml input

三、運行MapReduce示例做業:
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'

四、查看輸出結果文件:
方式一:將分佈式文件系統的輸出文件拷貝到本地文件系統上,再查看:
$ hdfs dfs -get output output
$ cat output/*

方式二:直接在分佈式文件系統上查看輸出文件:
    $ hdfs dfs -cat output/*

咱們會發現,系統被卡死了,爲何呢?由於機器的內存只有512M,內存被耗盡了。用 ctrl+c強制結束(會等待好長一段時間),再來看一下內存使用狀況:

其實咱們在啓動HDFS、yarn後,內存就用完了。重啓系統後,咱們啓動hdfs、yarn,立刻看一下內存的使用狀況:

再要執行mapreduce任務又須要不少內存(不夠用),根本就執行不了。
解決辦法:
一、調高機器的內存到1G
二、運行做業時加入jvm重用參數,以下所示:

hadoop jar /usr/hadoop/latest/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep -Dmapreduce.job.ubertask.enable=true input output5 'hdf[a-z.]+'

相關文章
相關標籤/搜索