Hadoop集羣搭建手冊

1 環境準備

A 機器/ip準備 4臺虛擬機,Centos6.4系統

   vim /etc/sysconfig/network,修改對應的hostname分別爲namenode,datanode1,datanode2,datanode3

   並將下面的內容寫入每臺機器的/etc/hosts

   192.168.247.129 namenode

   192.168.249.130 datanode1

   192.168.249.131 datanode2

   192.168.249.132 datanode3


B 建立用戶(組)及數據目錄

建立用戶及用戶組

   groupadd hadoop

   useradd -g hadoop hadoop

修改權限

   chmod u+w /etc/sudoers

   vim /etc/sudoers  找到root  ALL=(ALL:ALL) ALL,在其下面加入 hadoop  ALL=(ALL:ALL) ALL

   chmod u-w /etc/sudoers

建立相應目錄

   namenode

       mkdir /data/hadoop

       mkdir /data/hadoop/name

       mkdir /data/hadoop/tmp

       chown -R hadoop:hadoop /data/hadoop

   datanode

       mkdir /data/hadoop

       mkdir /data/hadoop/data

       mkdir /data/hadoop/tmp

       chown -R hadoop:hadoop /data/hadoop


C 配置ssh免密鑰

讓各機器之間能ssh免密鑰登錄,注意是針對hadoop用戶。

---------以下操作,每臺機器都進行-----------------—-

su hadoop

cd        #切到用戶目錄

ssh-keygen -t rsa  #一路回車即可

------------------------------------------------

上面的操作將會在~/.ssh目錄下生成id_rsa私鑰和id_rsa.pub公鑰文件

將所有機器的id_rsa.pub文件裏面的公鑰串拷貝到~/.ssh/authorized_keys文件中

然後將authorized_keys分發到各臺機器的~/.ssh/目錄中。

測試驗證……


D 安裝jdk

cd /usr/java    #沒有java文件夾 新建一個

下載jdk-8u5-linux-x64.rpm jdk文件到此目錄下,注意jdk版本需要1.6及以上。

rpm -ivh jdk-8u5-linux-x64.rpm


將下面加入到/etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_45

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


執行source /etc/profile

java -version 測試


2 hadoop配置及安裝

A下載安裝

    官網放出的安裝版本都針對32位系統的,所以要注意如果你的系統是64位,需要在64位系統下重新編譯安裝包。

    http://down.51cto.com/data/1078830 這裏有編譯好的64位的版本。


    解壓安裝包,並將其移到/usr/local中

    tar zxvf hadoop-2.2.0.gz

    mv hadoop_xx /usr/local/

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


B 在namenode上修改配置文件

  su hadoop

  cd /usr/local/hadoop/etc/hadoop


  vim hadoop-env.sh 修改JAVA_HOME

  export JAVA_HOME=/usr/java/jdk1.8.0_45


  core-site.xml

  <configuration>

    <property>

        <name>fs.default.name</name> //namenode的配置,機器名加端口;

        <value>hdfs://192.168.247.129:11111</value>

    </property>

  </configuration>

  

  mapred-site.xml

  <configuration>

    <property>

       <name>mapred.job.tracker</name> //JobTracker的配置,機器名加端口;

       <value>namenode:11112</value>

    </property>

  </configuration>


  hdfs-site.xml 

  <configuration>

<property>

   <name>dfs.replication</name> 

   <value>3</value> 

</property>

<property>

   <name>dfs.name.dir</name> //Namenode持久存儲名字空間及事務日誌的本地文件系統路徑;

   <value>/data/hadoop/name</value>

</property>

<property>

   <name>hadoop.tmp.dir</name> //Hadoop的默認臨時路徑是在/tmp下,最好進行配置,如果不配

   <value>/data/hadoop/tmp/</value>//置,機器重啓後需要執行NameNode格式化的命令;

</property>

  </configuration>


  vim masters  

  192.168.247.129


  vim slaves

  192.168.249.130

  192.168.249.131

  192.168.249.132

  注:masters文件用於指定secondary的主機而不是namenode,slaves用於指定datanode和tasktracker,


C 將程序文件拷入到各個datanode中

  su root

  cd /usr/local

  scp -rp hadoop-xx [email protected]:/usr/local

  

  root登錄到datanode,修改程序文件用戶

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


  su hadoop

  cd /usr/local/hadoop-2.2.0/etc/hadoop

  修改hdfs-site.xml

  <property>

    <name>dfs.data.dir</name> //DataNode存放塊數據的本地文件系統路徑,逗號分隔的列表

    <value>/data/hadoop/data</value> //注意不同之處在此

  </property>


3 hadoop運行

  cd /usr/loca/hadoop-2.2.0/bin

  ./hadoop namenode -format  #如果有報錯,請處理

  cd /usr/local/hadoop-2.2.0/sbin

  ./start_all.sh 


  開始運行後通過網頁的可以查看相關信息

  http://192.168.247.129:50070

  http://192.168.247.129:50030


  jps  #java自帶查看進程的命令

       #此版本與以往版本不一樣,namenode是看不到jobtracker進程,datanode看不到tasktracker進程

4 hdoop執行測試任務

su hadoop

cd /home/hadoop/

mkdir input

echo ‘hello world’ > input/test1.txt #準備數據

echo ‘hello hadoop’ > input/test2.txt


/usr/local/hadoop-2.2.0/bin/hdfs dfs -put input/ /in #導入數據


/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /

/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /in/

/usr/local/hadoop-2.2.0/bin/hadoop jar /usr/local/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /in /out #執行job


/usr/local/hadoop-2.2.0/bin/hdfs dfs -ls /out/

/usr/local/hadoop-2.2.0/bin/hdfs dfs -cat /out/*

hadoop1

hello2

world1


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