Hadoop僞分佈式模式搭建

Hadoop僞分佈式模式搭建

1、準備工做

一、關閉防火牆

service iptables start

    當即開啓防火牆,可是重啓後失效。java

service iptables stop

    當即關閉防火牆,可是重啓後失效。node

    以下命令是永久性操做,重啓後生效。linux

chkconfig iptables on

    開啓防火牆,重啓後生效。shell

chkconfig iptables off

    關閉防火牆,重啓後生效。vim

二、配置主機名

    注意安裝hadoop的集羣主機名不能有下劃線。否則會出現找不到主機的問題,致使集羣沒法啓動。瀏覽器

    配置主機名:bash

vim /etc/sysconfig/network
source /etc/sysconfig/network

    例如:服務器

NETWORKING=yes
HOSTNAME=hadoop01

    配置完成,命令操做界面不會立刻修改,須要重啓機器才能更改。app

    也可使用以下命令,臨時修改主機名。ssh

hostname hadoop01

三、配置Hosts

    配置此功能,是爲了解耦,若是每一個服務中都寫具體的ip地址,若是某臺服務器的ip地址發生了改變,再次修改ip會是一個很大的工做量;若是在服務配置中使用ip的地方都改爲主機名稱的方法,那麼當某臺服務器的ip發生改變,只須要在/etc/hosts文件中更改對應的映射關係便可。

vim /etc/hosts

    填入內容格式以下:

127.0.0.1 localhost
::1 localhost
192.168.75.150 hadoop01
其餘主機和ip 主機名
……

    此配置和Windows下配置hosts文件是同樣的操做。

四、配置免密碼互通

    生成本身的公鑰和私鑰,生成的公私鑰將自動存放在/root/.ssh目錄下。

    命令以下:

ssh-keygen

    把生成的公鑰copy到須要互相通訊的遠程機器上。

    命令以下:

ssh-copy-id root@hadoop01

    此時在遠程主機的/root/.ssh/authorized_keys文件中保存了公鑰,在known_hosts中保存了已知主機信息,當再次訪問的時候就不須要輸入密碼了。

    這裏須要給本機發一個免密登陸,hadoop在啓動的時候,就不須要輸入密碼了,不然在啓動的時候不論是HDFS仍是yarn啓動的時候都的輸入密碼。

ssh hadoop01

    經過上述命令遠程鏈接,檢驗是否能夠不需密碼鏈接。

五、安裝JDK

1.下載解壓

    經過fz將jdk安裝包上傳到本身的管理目錄。

    解壓安裝包

tar -zxvf [jdk安裝包位置]

2.配置環境變量

    修改/etc/profile

    這個文件是每一個用戶登陸時都會運行的環境變量設置,當用戶第一次登陸時,該文件被執行。並從/etc/profile.d目錄的配置文件中搜集shell的設置。

vim /etc/profile

    在文件行尾加入以下配置後保存退出。

export JAVA_HOME=/home/app/jdk1.7.0_45/
export PATH=$PATH:$JAVA_HOME/bin

    注意:JAVA_HOME配置的jdk的目錄,切記不要盲目照抄。

3.從新加載配置文件

    從新加載profile使配置生效,命令以下:

source /etc/profile

    環境變量配置完成,測試環境變量是否生效,使用以下命令,正常顯示變量路徑和java信息則配置正確。

echo $JAVA_HOME
java -version

2、僞分佈式配置

一、下載安裝hadoop

    經過fz將hadoop安裝包上傳到linux本身的管理目錄,解壓安裝包。

tar -zxvf [hadoop安裝包位置]

二、配置hadoop

    如下配置文件,均在hadoop-2.7.1/etc/hodoop/目錄下。

1.修改hadoop-env.sh

    經過vim打開hadoop-env.sh。

vim [hadoop]/etc/hadoop/hadoop-env.sh

    主要是修改java_home的路徑。

    在hadoop-env.sh的第27行,把export JAVA_HOME=${JAVA_HOME}修改爲和環境變量中JAVA_HOME的路徑相同便可。

    從新加載使修改生效。命令以下:

source hadoop-env.sh

2.修改core-site.xml

    此文件爲核心配置文件,主要管理namenode的配置和文件存儲位置的配置。

    經過vim打開core-site.xml文件。

vim [hadoop]/etc/hadoop/core-site.xml

    初次配置此文件中配置信息爲空,須要在<configuration>標籤中增長namenode配置、文件存儲位置配置。配置信息以下:

<configuration>
<property>
<!--用來指定hdfs的master,namenode的地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!--用來指定hadoop運行時產生文件的存放目錄-->
<name>hadoop.tmp.dir</name>
<value>/home/park/work/hadoop-2.7.1/tmp</value>
</property>
</configuration>

    第一個<value>標籤中,須要注意主機名稱,填寫本身規劃好的主機名稱。

    第二個<value>標籤中,須要規劃本身的tmp目錄的存放位置,按照本身的規劃填寫便可,千萬不要使用Linux系統/tmp目錄,由於這個目錄Linux有本身的清除機制,會形成數據丟失。

3.修改hdfs-site.xml

    此文件爲HDFS的配置文件,主要配置HDFS的存儲副本數量。

    經過vim打開hdfs-site.xml:

vim [hadoop]/etc/hadoop/hdfs-site.xml

    此文件初次次配置配置信息也是空的,須要在<configuration>標籤中增長要配置的內容,配置模版內容以下:

<configuration>
<property>
<!--指定hdfs保存數據副本的數量,包括本身,默認爲3-->
<!--僞分佈式模式,此值必須爲1-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

    此文件主要修改的也是<value>標籤的內容,安裝僞集羣的話,將值配置爲1便可。由於僞分佈式只有一臺服務器,沒法實現分佈式存儲。

4.修改mapred-site.xml

    此目錄主要配置的是maperd的運行平臺。

    在/etc/hadoop的目錄下,只有一個mapred-site.xml.template文件,此文件爲配置模版文件,將其複製一個改名,將後綴.template去掉便可。操做命令以下:

cp mapred-site.xml.template mapred-site.xml

經過vim打開mapred-site.xml文件。命令以下:

vim [hadoop]/etc/hadoop/mapred-site.xml

此文件初次配置,配置內容也爲空,將以下的模版信息填入便可,此配置是讓mapreduce運行在yarn上。

<configuration>
<property>
<!--指定mapreduce運行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

5.修改yarn-site.xml

    此文件是yarn的核心配置文件,主要管理yarn的配置以及NodeMannager獲取數據的方式。

    經過vim打開yarn-site.xml 文件。命令以下:

vim [hadoop]/etc/hadoop/yarn-site.xml

    此文件第一次初次配置,配置內容也爲空,配置模版以下:

<configuration>
<property>
<!--指定yarn的master,resourcemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<!--NodeManager獲取數據的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

    第一個<value>標籤的值須要改成本身規劃的主機名稱,其餘的不用作修改。

6.修改slaves

    此文件是配置本身的下屬成員的。

    vim打開此文件,命令以下:

vim slaves

    打開文件發現,這是一個空文件,只須要在這個文件中添加本身下屬的服務器主機名稱便可,由於是僞集羣,只有一臺主機,因此這裏只需輸入本身的規劃的主機名稱便可,例如:

hadoop01

    輸入完成,退出保存便可。

三、配置環境變量

    使用Hadoop和java同樣,也許要配置環境變量,在/etc/profile文件中添加Hadoop的環境變量信息便可。

1.編輯/etc/profile

    使用以下命令打開/etc/profile文件:

vim /etc/profile
export HADOOP_HOME=/home/park/work/hadoop-2.5.2/
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

    注意:HADOOP_HOME的值爲Hadoop的安裝目錄,不要盲目照抄。

    PATH的值須要配置兩個,一個bin的路徑,一個sbin的路徑,由於Hadoop中有兩個命令目錄,這兩個命令目錄都須要添加到環境變量中。

2.從新加載配置文件

    使用以下命令,從新加載配置文件:

source /etc/profile

    環境變量配置完成,測試環境變量是否生效。

echo $HADOOP_HOME

    出現Hadoop的安裝路徑信息,即爲配置正確。

四、重啓linux

    正常狀況,配置完成的Hadoop不須要重啓。若是Hadoop中一些配置文件不生效,能夠重啓Linux服務來解決此問題。爲何須要重啓配置文件才起做用?緣由暫時不明。

    重啓命令以下,使用其中那個均可以:

reboot
init 6

3、啓動Hadoop

一、格式化namenode

    在啓動Hadoop以前須要進行一個格式化的操做,這個操做保證namenode可以正常的存儲數據。

    進入hadoop/bin輸入命令格式化namenode,命令以下:

hadoop namenode -format

    之前格式化的命令是下面這樣的:

hdfs namenode -format

在格式化的時候,看到以下輸出信息,則證實格式化成功。

Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted

 

二、啓動hadoop

    在hadoop-2.7.1/sbin目錄下有不少命令文件,進入此目錄能夠看到,在此目錄下執行以下命令,能夠啓動整個Hadoop集羣組件:

./start-all.sh

    在啓動以後,輸入以下命令:

jps

    能夠看到5個Hadoop相關的進程,則證實啓動成功。

三、關閉Hadoop

    在/home/app/hadoop-2.6.0/sbin目錄下也一樣存在關閉服務的命令,在此目錄下輸入以下命令,則關閉整個集羣組件,中止服務。

./stop-all.sh

 

4、hdfs命令

hadoop fs -mkdir /user/trunk

hadoop fs -ls /user

hadoop fs -lsr /user   (遞歸的)

hadoop fs -put test.txt /user/trunk

hadoop fs -put test.txt .  (複製到hdfs當前目錄下,首先要建立當前目錄)

hadoop fs -get /user/trunk/test.txt . (複製到本地當前目錄下)

hadoop fs -cat /user/trunk/test.txt

hadoop fs -tail /user/trunk/test.txt  (查看最後1000字節)

hadoop fs -rm /user/trunk/test.txt

hadoop fs -rmdir /user/trunk

hadoop fs -help ls (查看ls命令的幫助文檔)

 

5、經過HadoopWeb管理頁面

    當Hadoop服務配置完成,正常重啓,能夠在別的pc上經過瀏覽器輸入以下格式的地址,即可以訪問Hadoop的Web管理頁面。

    http://[server_ip]:50070

    若是訪問不了有多是服務器50070端口被關閉了。經過以下方式打開50070端口:

service iptables status #查詢防火牆狀態

service iptables start #開啓防火牆

iptables -I INPUT -p tcp --dport 80 -j ACCEPT #開通特定端口

iptables -I INPUT -p tcp --dport 80 -j DROP #關閉特定端口

service iptables save #保存配置

service iptables restart #重啓防火牆

 

上一篇:Hadoop簡介

下一篇:Hadoop徹底分佈式集羣搭建

相關文章
相關標籤/搜索