hadoop集羣時注意環境保持一致,目錄結構.
1.1.1 所需工具
Redhat Enterprise Linux 6.3
hadoop 1.2.1
jdk 1.6 +
1.1.2 配置系統IP
這裏推薦靜態ip(static)
這裏略過...
1.1.3 先修改一個主機名
hadoop喜好使用主機名訪問節點
第一步:看機器名:uname-a
Linux Hadoop12.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64GNU/Linux
第二步:修改/etc/sysconfig/network中的hostname
第三步:修改/etc/hosts文件
1.1.4 host配置
vim /etc/hosts
給圖給力:
192.168.121.133 |
Hadoop1 |
Redhat Linux 6.3 |
|
192.168.121.163 |
Hadoop2 |
Redhat Linux 6.3 |
安裝完成後備份下來的系統 |
192.168.121.165 |
Hadoop3 |
Redhat Linux 6.3 |
克隆出來的系統 |
java目錄統一在/home/jdk1.7.0_71
hadoop目錄統一在/home/hadoop1.2.1
節點的hosts完全一樣
1.1.5 配置vsftpd
這裏略過...
1.1.6 配置ssh在集羣互通時無密碼訪問
ssh目錄在用戶目錄下的.ssh目錄中
1. 輸入命令生成鑰:
ssh-keygen -t rsa
一路回車,直接確認.生成結束後可預覽生成的key圖,在.ssh目錄中會多了兩個文件,id_rsa和id_rsa.pub
id_rsa爲密鑰
id_rsa.pub爲公鑰
2. 拷貝公鑰到authorized_keys
cp id_rsa.pub authorized_keys
# 注意authorized_keys目錄名稱是固定的
3. 將本機的key拷貝到另外機器
ssh 主機名 測試 ssh可否通過
拷貝公鑰到Hadoop2機器,hadoop.pub爲新文件名
scp id_rsa.pub Hadoop2:/root/.ssh/hadoop.pub
擴展公鑰到authorized_keys
cat hadoop.pub >> authorized_keys
#注意當前是在Hadoop2機器上
將2機器上的公鑰拷到1
scp authorized_keys hadoop1:/root/.ssh/
注意,如果不能無密碼訪問,可以查看一下authorized_keys 和known_hosts是否包含公鑰.
1.1.7 jdk 環境配置
使用tar解壓壓縮包,注意路徑及名稱在後續配置中會用到,配置文件路徑:/etc/profile,也可以配置.bash_profile這樣不影響其它的用戶
#java export JAVA_HOME=/home/jdk1.7.0_71 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH # hadoop |
測試輸入java發現:
-bash: /home/jdk1.7.0_71/bin/javac:/lib/ld-linux.so.2: bad ELF interpreter: 沒有那個文件或目錄
缺少glibc包和nss包
rpm -qa|grep glib
1.1.8 hadoop環境變量參數配置
使用tar解壓壓縮包,注意路徑及名稱在後續配置中會用到
設置hadoop環境變量
# java /home/jdk1.7.0_71
export JAVA_HOME=/home/jdk1.7.0_71
export JRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# hadoop
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH
2.1 配置hadoop
2.1.1 配置hadoop-env.sh
export JAVA_HOME=/home/jdk1.7.0_71
測試了一,不設置還不行,被註釋掉了,打開就行,其實有環境變量應該可以不用配置,但不設置就報錯
2.1.2 配置conf/masters
[root@Hadoop1 conf]# vim masters
配置管理者,加主機名即可
Hadoop1
2.1.3 conf/slaves
[root@Hadoop1 conf]# more slaves
Hadoop1
Hadoop2
2.1.4 配置conf/core-site.xml
#注意vi粘貼時在插入模式
<configuration>
<!---global properties -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!--file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.121.133:9000</value>
</property>
</configuration>
我這裏使用的Hadoop1做爲namenode;
2.1.5 conf/hdfs-site.xml
#注意vi粘貼時在插入模式
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
replication默認爲3,如果不修改,datanode 少於三臺就會報錯
2.1.6 conf/mapred-site.xml(簡單配置,datanode 的配置相同)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.121.133:9001</value>
</property>
</configuration>
配置完成,Hadoop3配置相同,使用命令拷貝即可
cd /home/hadoop-1.2.1
scp conf/* Hadoop3:/home/hadoop-1.2.1/conf/
2.1.7 啓動測試
cd /home/hadoop-1.2.1/bin
深待閨中20載,終於開始啓動了,上面提步驟不能跳,不能錯,有問題可以慢慢修改,我出現過不能互通,通了又不能拷貝,拷了確沒有文件事.
按順序查看以下:
hadoop
hadoop namenode
格式化 文件系統
hadoop namenode -format
sh start-all.sh 奔跑吧...
查看hadoop啓動進程控制檯信息如下:
[root@Hadoop1 bin]# jps
2718 NameNode
3984 TaskTracker
2895 JobTracker
4063 Jps
3837 SecondaryNameNode
缺少:DataNode
sh stop-all.sh 停止
2.1.8 驗證安裝
查看hdfs的datanode有多少及使用情況:
hadoop dfsadmin -report
查看hadoop(java)線程: jps
通過report 方式可以看到各datanode節點信息,也可以通過ip加50030查看
http://192.168.121.133:50030/jobtracker.jsp
給圖給力:
上面地址看到的jobtracker如下圖
到這裏安裝算告捷,如果有問題可進羣討論: 大數據QQ交流:208881891