Hadoop叢集搭建(三臺電腦)
電腦的作業系統是Ubuntu12.04 32位,ubuntu-12.04.4-desktop-i386.iso。
叢集介紹:
三臺電腦的使用者名稱都為hadoop
主機名:master 10.10.6.176
服務機:slaver1 10.10.6.242;slaver2 10.10.6.131
一、配置
以下是三臺機器都要安裝和相同配置
在/etc/hostname下修改自己的機器名
在/etc/hosts下將所有機器名和對應的IP新增
二、安裝JDK
三臺機器都需要,我用的是jdk-7u71-linux-i586.tar.gz。
2.1在usr/local目錄下新建java目錄,將解壓後的jdk1.7.0_71放到java目錄下
2.2在/etc/profile裡最後新增JAVA環境(sudo gedit /etc/profile)
# for java
export JAVA_HOME=/usr/local/java/jdk1.7.0_71
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
2.3儲存設定生效 ($ source /etc/profile)
2.4測試($ java -version)
三、安裝SSH並實現無密碼訪問
3.1 安裝SSH(sudo apt-get install ssh),包括openssh-server和openssh-client。
安裝過程一直預設就可以。三臺機器都需要安裝。
3.2建立ssh無密碼登入,採用rsa方式生成(ssh-keygen -t rsa)
一直預設回車就可以,安裝完cd .ssh 可以發現 id_rsa(金鑰)和id_rsa.pub(公鑰)兩個檔案。
3.3無密碼訪問master本機
將id_rsa.pub新增到authorized_keys(存放所有公鑰)(cp id_rsa.pub authorized_keys), 這時就可以無密碼訪問localhost (ssh localhost)。
3.4無密碼訪問slaver1和slaver2
將master_key 追加到slaver1和slaver2的authorized_keys檔案裡 cat master_key >> authorized_keys(可以通過cat authorized_keys檢視是否新增成功)
四、安裝Hadoop(三臺相同)
我用的是hadoop-1.2.1.tar.gz
4.1 將檔案解壓要目錄
sudo tar -zxf *.tag.gz,得到hadoop-1.2.1
4.2 修改conf/hadoop-env.sh
JAVA_HOME=/usr/local/java/jdk1.7.0_71(對應自己的jdk)
4.3 修改conf目錄下的配置檔案masters,slaves,core-site.xml,mapred-site.xml,hdfs-site.xml
masters檔案 master
slaves檔案 slaver1
slaver2
修改core-site.xml檔案
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
修改mapred-site.xml檔案
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
修改hdfs-site.xml檔案
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4.4測試
格式化HDFS以做好資料儲存 bin/hadoop namenode -format
啟動 bin/start-all.sh
在master下[[email protected]]$ jps後有4的程序 Jps、NameNode、JobTracker、SecondaryNameNode
在slaves下[[email protected]]$ jps 後有3個程序 Jps、DataNode、TaskTracker
停止 bin/stop-all.sh