天天看點

centos6.4安裝hadoop-2.5.1(完全分布式)

環境介紹:

在兩台裝有centos6.4(32位)的伺服器上安裝Hadoop-2.5.1分布式叢集(2台機器,主要試驗用,哈哈)。

1.修改主機名和/etc/hosts檔案

1)修改主機名(非必要)

vi /etc/sysconfig/network
HOSTNAME=XXX
           

重新開機後生效。

2)/etc/hosts是ip位址和其對應主機名檔案,使機器知道ip和主機名對應關系,格式如下:

#IPAddress HostName
192.168.1.67 MasterServer
192.168.1.241 SlaveServer
           

2.配置免密碼登陸SSH

1)生成密鑰:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
           

以上是兩個單引号。

2)将id_dsa.pub(公鑰)追加到授權的key中:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
           

3)将認證檔案複制到其它節點上:

scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
           

4)測試:

ssh SlaveServer
           

第一次要确認連接配接,輸入yes即可。

但我的仍要求輸入密碼,原因是.ssh和authorized_keys權限不對,具體見:http://blog.csdn.net/hwwn2009/article/details/39852457

3.各節點上安裝jdk

1)選擇的版本是jdk-6u27-linux-i586.bin,下載下傳位址:http://pan.baidu.com/s/1mgICcFA

2)上傳到hadooper使用者目錄下,添加執行權限

chmod 777 jdk-6u27-linux-i586.bin
           

3 )安裝

./jdk-6u27-linux-i586.bin
           

4 )配置環境變量:vi /etc/profile加入以下三行

#JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/jdk1.6/jdk1.6.0_27
export PATH=$JAVA_HOME/bin:$PATH
           

5 )執行source /etc/profile使環境變量的配置生效

6 )執行java –version檢視jdk版本,驗證是否成功。

4. Hadoop安裝

每台節點都要安裝hadoop。上傳hadoop-2.5.1.tar.gz到使用者hadooper目錄下。

1)解壓

tar -zvxf hadoop-2.5.1.tar.gz
           

2)添加環境變量:vi  /etc/profile,尾部添加如下

export HADOOP_HOME=/home/hadooper/hadoop/hadoop-2.5.1
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
           

設定立即生效:

source /etc/profile
           

3)修改Hadoop配置檔案

(1)core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://MasterServer:9000</value>
</property>
           

(2)hdfs-site.xml 

<property>
    <name>dfs.replication</name>  #值不應大于datanode數量
    <value>1</value>
 </property>
           
<property>
   <name>dfs.namenode.name.dir</name>         #設定分布式檔案系統存放于/home/hadooper/hadoop/dfs 的本地目錄
   <value>/home/hadooper/hadoop/dfs/name</value>
   <description>  </description>
 </property>

 <property>
   <name>dfs.datanode.data.dir</name>
   <value>/home/hadooper/hadoop/dfs/data</value>
   <description> </description>
 </property>
   
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>  
           

注:通路namenode的hdfs使用50070端口,通路datanode的webhdfs使用50075端口。要想不區分端口,直接使用namenode的IP和端口進行所有的webhdfs操作,就需要在所有的datanode上都設定hdfs-site.xml中的dfs.webhdfs.enabled為true。

(3)mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>
 <property>
    <name>mapreduce.jobhistory.address</name>
    <value>MasterServer:10020</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>MasterServer:19888</value>
 </property><span style="font-family: Arial, Helvetica, sans-serif;">         </span>
           

jobhistory是Hadoop自帶了一個曆史伺服器,記錄Mapreduce曆史作業。預設情況下,jobhistory沒有啟動,可用以下指令啟動:

sbin/mr-jobhistory-daemon.sh start historyserver
           

(4)yarn-site.xml

<property>  
    <name>yarn.nodemanager.aux-services</name>  
    <value>mapreduce_shuffle</value>  
 </property>  
 <property>  
    <name>yarn.resourcemanager.address</name>  
    <value>MasterServer:8032</value>  
 </property>  
 <property>  
    <name>yarn.resourcemanager.scheduler.address</name>  
    <value>MasterServer:8030</value>  
 </property>  
 <property>  
    <name>yarn.resourcemanager.resource-tracker.address</name>  
    <value>MasterServer:8031</value>  
 </property>  
 <property>  
    <name>yarn.resourcemanager.admin.address</name>  
    <value>MasterServer:8033</value>  
 </property>  
 <property>  
    <name>yarn.resourcemanager.webapp.address</name>  
    <value>MasterServer:8088</value>  
 </property>  
           

(5)slaves

SlaveServer
           

(6)分别在hadoop-env.sh和yarn-env.sh中添加JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jdk1.6/jdk1.6.0_27
           

5.運作Hadoop

1)格式化

hdfs namenode –format
           

2)啟動Hadoop

start-dfs.sh 
start-yarn.sh
           

也可以用一條指令:

start-all.sh
           

3)停止Hadoop

stop-all.sh
           

4)jps檢視程序

7692 ResourceManager
8428 JobHistoryServer
7348 NameNode
14874 Jps
7539 SecondaryNameNode
           

5)通過浏覽器檢視叢集運作狀态

(1)http://192.168.1.67:50070

centos6.4安裝hadoop-2.5.1(完全分布式)

(2)http://192.168.1.67:8088/

centos6.4安裝hadoop-2.5.1(完全分布式)

(3)http://192.168.1.67:19888

centos6.4安裝hadoop-2.5.1(完全分布式)

6. 運作Hadoop自帶的wordcount示例

1)建立輸入檔案:

echo "My first hadoop example. Hello Hadoop in input. " > input
           

2)建立目錄

hadoop fs -mkdir /user/hadooper
           

3)上傳檔案

hadoop fs -put input /user/hadooper
           

4)執行wordcount程式

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /user/hadooper/input /user/hadooper/output
           

5)檢視結果

hadoop fs -cat /user/hadooper/output/part-r-00000
           
Hadoop	1
My	1
example.Hello	1
first	1
hadoop	1
in	1
input.	1
           

轉載請注明: http://blog.csdn.net/hwwn2009/article/details/39889465

繼續閱讀