標籤:

hadoop偽分散式

0.關閉防火牆

service iptables start;#立即開啟防火牆,但是重啟後失效。

service iptables stop;#立即關閉防火牆,但是重啟後失效。

重啟後生效

chkconfig iptables on;#開啟防火牆,重啟後生效

chkconfig iptables off;#關閉防火牆,重啟後生效

1.配置主機名

!!!!!注意安裝hadoop的集群主機名不能有下劃線!!不然會找不到主機!無法啟動!

配置主機名

$vi /etc/sysconfig/network

$source /etc/sysconfig/network

例如:

NETWORKING=yes

HOSTNAME=hadoop01

2.配置Hosts

vi /etc/hosts

填入以下內容

127.0.0.1 hadoop01

其他主機和ip對應信息。。。

3.配置面密碼互通

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

$ ssh-keygen

把生成的公鑰copy到遠程機器上

$ ssh-copy-id [user]@[host]

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

$ ssh [host]

通過此命令遠程連接,檢驗是否可以不需密碼連接

4.安裝JDK

通過fz將jdk安裝包上傳

解壓安裝包

tar -zxvf [jdk安裝包位置]

配置環境變數

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

vim /etc/profile

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

export JAVA_HOME=/home/app/jdk1.7.0_45/

export PATH=$PATH:$JAVA_HOME/bin

重新載入profile使配置生效

source /etc/profile

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

echo $JAVA_HOME

java -version

5.安裝hadoop

通過fz將hadoop安裝包上傳到linux

解壓安裝包

tar -zxvf [hadoop安裝包位置]

6.配置hadoop

(1)修改 hadoop-env.sh

通過vim打開

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

主要是修改java_home的路徑

在hadoop-env.sh的第27行,把export JAVA_HOME=${JAVA_HOME}修改成具體的路徑

重新載入使修改生效

source hadoop-env.sh

(2)修改 core-site.xml

通過vim打開

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

增加namenode配置、文件存儲位置配置

<configuration>

<property>

<!--用來指定hdfs的老大,namenode的地址-->

<name>fs.defaultFS</name>

<value>hdfs://hadoop01:9000</value>

</property>

<property>

<!--用來指定hadoop運行時產生文件的存放目錄-->

<name>hadoop.tmp.dir</name>

<value>/home/park/work/hadoop-2.5.2/tmp</value>

</property>

</configuration>

(3)修改 hdfs-site.xml

通過vim打開

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

配置包括自身在內的備份副本數量。

<configuration>

<property>

<!--指定hdfs保存數據副本的數量,包括自己,默認為3-->

<!--偽分散式模式,此值必須為1-->

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

(4)修改 mapred-site.xml

說明:在/etc/hadoop的目錄下,只有一個mapred-site.xml.template文件,複製一個

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

通過vim打開

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

通過vim打開

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

配置

<configuration>

<property>

<!--指定yarn的老大resourcemanager的地址-->

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

<property>

<!--NodeManager獲取數據的方式-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

(6)修改 slaves

(7)配置hadoop的環境變數

vim /etc/profile

export HADOOP_HOME=/home/park/work/hadoop-2.5.2/

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

重新載入profile使配置生效

source /etc/profile

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

echo $HADOOP_HOME

(8)重啟linux

$reboot

????為什麼需要重啟配置文件才起作用?原因不明????

(8)格式化namenode

進入 hadoop/bin 輸入命令格式化namenode

hadoop namenode -format(hdfs namenode -format 以前的方式)

在格式化的時候,會有這樣的輸出:

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

7.啟動hadoop

在/home/app/hadoop-2.6.0/sbin目錄下

$start-all.sh

8.關閉hadoop

在/home/app/hadoop-2.6.0/sbin目錄下

$stop-all.sh

9.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命令的幫助文檔)

10.通過瀏覽器訪問hadoop管理頁面

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、spark、SaaS、PaaS、IaaS、雲計算
Azkaban入門篇
Spark可以完全替代hadoop嗎?
eclipse中,如何導入hadoop2.6.0的源碼?請大神給出詳細步驟?
hadoop的源代碼寫的怎麼樣?

TAG:Hadoop |