Hadoop分佈式集羣平臺搭建

目的


這篇文檔的目的是幫助你快速完成在三臺以上服務器搭建Hadoop應用平臺。


先決條件


    VirtualBox  虛擬機共3臺
      操作系統:Ubuntu 10.4
      內存: 256M以上

機器名 IP   作用 
master 10.9.9.100 NameNode、master、jobTracker
slave01 10.9.9.101 DataNode、slave、taskTracker
slave02 10.9.9.102 DataNode、slave、taskTracker


安裝Hadoop集羣前的準備工作

一、在每臺機子上創建hadoop用戶

$ group hadoop

$ useradd -g hadoop hadoop

$ passwd hadoop

 

  當然也可以用圖形界面中 系統設置-〉用戶和組 添加。添加之後註銷使用hadoop用戶登錄,接下來的配置都用hadoop用戶操作


二、修改hosts,在三臺機子配置如下host


sudo vi  /etc/hosts

 

10.9.9.100 master
10.9.9.101 slave01
10.9.9.102 slave02
 

 

 

 


三、開啓ssh服務

安裝ssh服務 :sudo apt-get install openssh-server


(1)在 master 上實現無密碼登錄本機

$ ssh-keygen  –t  dsa

一路回車,

完成後會在/home/hadoop/.ssh下生成兩個文件:id_dsa和id_dsa.pub。這兩對是成對出現的。再把id_dsa.pub加到authorized_keys文件裏。方法如下:進入/home/hadoop/.ssh目錄:

$ cat id_dsa.pub >> authorized_keys

完成後可以實現無密碼登錄本機:

$ ssh localhost 

若無密碼輸入提示,則配置成功。


(2)實現 master 無密碼登錄其他slave01, slave02

在master機子上把id_dsa.pub文件複製給其它兩臺子

scp /home/hadoop/.ssh hadoop@slave01:/home/hadoop/


scp /home/hadoop/.ssh hadoop@slave02:/home/hadoop/


測試ssh 無密碼登錄

                $ ssh slave01

$ ssh slave02


安裝


一、下載 jdk7     jdk-7-linux-x64.tar.gz

  http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

$ sudo tar -zxvf jdk-7-linux-x64.tar.gz -C /usr/local/java/

$ sudo mv /usr/local/java/jdk1.7.0 /usr/local/java/jdk


二、下載 hadoop  hadoop-0.21.0.tar.gz

http://www.apache.org/dyn/closer.cgi/hadoop/common/

解壓重命名

$ sudo tar -zxvf  hadoop-0.21.0.tar.gz -C /usr/local/

$ sudo mv /usr/local/hadoop-0.21.0 /usr/local/hadoop


(2) 添加環境變量 

$sudo vi /etc/profile

 

export HADOOP_HOME=/usr/local/hadoop
export JAVA_HOME=/usr/local/java/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
 

 

 

注意:上面的路徑要和你解壓的路徑相一致,以上的配置三臺機子都要相同


配置hadoop


    (1)建立目錄
             在master服務器上,建立目錄 /data/hadoop/name、/data/hadoop/tmp
             在slave01,slave02服務器上,建立目錄 /data/hadoop/data01、/data/hadoop/data02、/data/hadoop/tmp
        (2)建立無密碼驗證的ssh密鑰及更改文件權限
             (mster)                  
              # chown hadoop:hadoop -R /usr/local/hadoop
             
 # chown hadoop:hadoop -R /data/hadoop/name /data/hadoop/tmp 

slave01、slave02

      # chown hadoop:hadoop -R /usr/local/hadoop

              # chown hadoop:hadoop -R /data/hadoop/data01 /data/hadoop/data02  /data/hadoop/tmp 


(3) 在master上修改配置文件修改完成後,拷貝到slave01和slave02保證配置文件保持一致

要修改的文件有  {hadoop-install-dir}/conf/目錄下的,

hadoop_env.sh  core-site.xml hdfs-site.xml mapred-site.xml masters slaves 六個文件

=======   hadoop_env.sh==========

           配置Hadoop需要的環境變量,其中JAVA_HOME是必須設定的變量
           export  JAVA_HOME=/usr/java/jdk1.6.0

 

======= core-site.xml==========



<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
  	<property>
		<name>hadoop.tmp.dir</name>
		<value>/data/hadoop/tmp</value>
		<description>A base for other temporary directories.</description>
  	</property>
                        <!-- file system properties -->
	<property>
		<name>fs.default.name</name>
		<value>hdfs://master:9000</value>         
	</property>
</configuration>


 

=======hdfs-site.xml=======



<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
	<property>
		<name>dfs.name.dir</name>
		<value>/data/hadoop/name</value>
	</property>
	<property>
		<name>dfs.data.dir</name>
		<value>/data/hadoop/data01,/data/hadoop/data02</value>
	</property>
</configuration>


 

================ mapred-site.xml ======================

             


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property> 
  <name>mapred.job.tracker</name> 
  <value>master:9001</value> 
</property> 
</configuration>

 

===============masters=====================

 

master
 

 


=============== slaves=========================

 

slave01
slave02
 

 


運行hadoop


  (1)格式化namenode

            $  hadoop namenode -format
            注意查看相關log是否報錯,
將/data/hadoop/name文件夾整個刪除或者給文件加上777權限 然後再格,一定要成功才能繼續

  (2)啓動hdfs服務
           $ start-all.sh


  (3)啓動hdfs服務
           $ stop-all.sh


    (4)   查看結果

http://10.9.9.100:50070/

   (5)其它

           查看進程情況:  jps可以用來查看當前hadoop運行的進程情況。

         hadoop dfsadmin –report可以用來查看當前hadoop的運行情況。


           




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章