本文旨在介紹經過兩臺物理節點,實現徹底分佈式hadoop程序的部署java
writen by Bob Pan@20140609node
環境介紹:linux
主機名windows |
機器IPssh |
用途分佈式 |
描述oop |
Hadoop0spa |
192.168.80.101code |
Namenodeorm secondaryNamenode jobTracker |
CentOS6.4 jdk-6u24-linux-i586 hadoop-1.1.2 |
Hadoop1 |
192.168.80.102 |
Datanode taskTracker |
CentOS6.4 jdk-6u24-linux-i586 hadoop-1.1.2 |
一、 安裝JDK
a) 把 jdk 移動到/usr/local 目錄下。進入到/usr/local 目錄下,經過「.」解壓文件
i. ./jdk-6u24-linux-i586.bin
b) 將解壓後的目錄jdk1.6.0_24重命名爲jdk
i. mv jdk1.6.0_24/ jdk
c) 將jdk配置到環境變量中,設置全局環境變量,文件「/etc/profile」後添加:
i. export JAVA_HOME=/usr/local/jdk
ii. export PATH=.:$PATH:$JAVA_HOME/bin
d) 執行Source命令
i. #source /etc/profile
e) 「export」是關鍵字,用於設置環境變量。咱們設置了兩個環境變量,一個是 JAVA_HOME,一個是 PATH。對於環境變量的引用,使用「$」,多個環境變量之間的鏈接,使用「:」。你們在設置環境變量的時候,必定與 windows 下的操做區分開,不要混淆。命令「source」是爲了讓文件中的設置馬上生效。
f) 執行java –version命令
二、 關閉防火牆
a) 執行Setup命令
b) 選擇「Firewall configuration」,而後按回車;
c) 關閉防火牆,只須要按一下空格鍵,符號「*」就會消失。最後使用「tab」鍵移動到「OK」,回車,一步步退出就好了。
d) 檢查防火牆是否關閉命令「service iptables status」
三、 設置DNS解析
a) 打開etc/sysconfig/network
b) 修改成「HOSTNAME=hadoop0」(hadoop1)
c) reboot
四、 Hadoop0設置SSH免密碼登陸
a) ssh-keygen –t rsa
b) 三次回車
c) cd .ssh/
d) ls –l
e) cp id_rsa.pub authorized_keys
f) ssh localhost驗證
五、 Hadoop1設置SSH免密碼登陸
a) 同上
六、 配置hadoop0和hadoop1的/etc/hosts
a) 每一個節點均添加了全部節點的 ip 與主機名映射
b) 192.168.80.101 hadoop0
c) 192.168.80.102 hadoop1
七、 集羣間SSH免密碼登陸
a) 在hadoop0執行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
b) 在hadoop1執行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop0
八、 Hadoop壓縮包上傳至hadoop0節點的/usr/local目錄下
九、 Hadoop0節點解壓縮hadoop
a) tar -xzvf hadoop-1.1.2.tar.gz
十、Hadoop0節點解壓縮後的文件夾重命名
a) #mv hadoop-1.1.2 hadoop
十一、 設置Hadoop0節點的環境變量
alias cdha=’cd /usr/local/hadoop’
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
十二、修改hadoop0節點的Hadoop配置文件
a) 修改hadoop-env.sh
第9行改成:export JAVA_HOME=/usr/local/jdk(去掉前面的#)
b) 修改hadoop核心配置文件core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop0:9000</value> <description>change your own hostname</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
c) 修改hdfs配置文件hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
d) 修改MapReduce 配置文件 mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>hadoop0:9001</value> <description>change your own hostname</description> </property> </configuration>
1三、在hadoop0節點執行命令,將hadoop0節點的hadoop文件夾複製到hadoop1節點
a) scp -rq /usr/local/hadoop hadoop1:/usr/local
b) scp -rq /etc/profile hadoop1:/etc
c) ssh hadoop1
d) exit
1四、配置hadoop0節點的集羣核心文件slaves
a) 打開/conf/slaves文件後,修改成hadoop1.
b) 修改後,意味着在節點 hadoop1運行datanode和tasktracker節點.
1五、格式化文件系統
a) hadoop namenode –format
1六、啓動集羣
a) 在節點 hadoop0 中執行命令:start-all.sh
1七、Hadoop0節點jps驗證,SecondaryNameNode、NameNode、JobTracker,處於運行狀態。
1八、Hadoop1節點jps驗證,DataNode、TaskTracker,處於運行狀態。