hadoop平臺搭建(2.6.0)

最近閒來無事搭建了一個hadoop環境,將搭建步驟記錄一下。
一.環境準備

  • 環境:VMware,xshell

  • OS: Ubuntu server(選擇最簡安裝,只安裝OpenSSH-Server)

  • 版本:hadoop-2.6.0

  • 三個節點:

 192.168.16.131      master
 192.168.16.132      node1
 192.168.16.133      node2
  • 編輯/etc/hosts文件
將節點信息添加進去(如上)
  • 建立hadoop運行賬號:
groupadd hadoop               //設置hadoop用戶組
useradd –s /bin/bash –d /home/wh –m wh –g hadoop –G admin //添加一個wh用戶,此用戶屬於hadoop用戶組,且具有admin權限。
passwd wh                    //設置用戶zhm登錄密碼
su wh                        //切換到wh用戶中
  • 設置權限修改sudoers
chmod u+w /etc/sudoers

vim  /etc/sudoers (添加如下東西)
   wh ALL=(ALL:ALL) ALL

chmod u-w /etc/sudoers

`二.安裝jdk(選擇7)
1.安裝

apt-get install openjdk-7-jdk

2.環境配置

  • 編輯 .bashrc
vim .bashrc

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64(默認安裝位置)
  • 添加/etc/profile
chmod u+w /etc/profile(給予修改權限)

vim /etc/profile
#末尾添加以下配置:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

chmod u-w /etc/profile(權限回收)
  • 查看是否安裝成功
java -version

三.SSH無密碼登錄
1.生成master公匙

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

2.讓 節點需能無密碼 SSH 本機,在 節點上執行:

cat id_rsa.pub >> authorized_keys

3.使用ssh localhost檢查是否能登錄自身(三個都用)

4.使用master節點ssh另外兩個節點
在node1,node2節點執行:

scp wh@master:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys

5.測試是否成功

  • 在master節點
ssh  node1(node2)

注意:第一次需要輸入node1(node2)節點密碼,第二次不用。

四.配置hadoop-2.6.0

  • 下載hadoop-2.6.0:http://pan.baidu.com/s/1c24XcEs

  • 通過Xftp將文件從windows傳入Ubuntu 解壓到/home/wh下

  • 修改core-site.xml(都在/home/wh/hadoop/etc/hadoop/下):

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
   </property>
   <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/home/wh/hadoop/tmp</value>
      <description>Abase for other temporary directories.</description>
   </property>
</configuration>
  • 修改hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/wh/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/wh/hadoop/tmp/dfs/data</value>
    </property>
</configuration>
  • 修改mapred-site.xml(cp mapred-site.xml.template mapred-site.xml)
<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
   <property>
      <name>mapreduce.jobhistory.address</name>
      <value>master:10020</value>
   </property>
   <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>master:19888</value>
   </property>
</configuration>
  • 修改yarn-site.xml
<configuration>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
</configuration>
  • 修改slaves(刪除localhost)
node1
node2
  • 修改hadoop-env.sh
 JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
  • 將hadoop文件複製到各個節點,並在slaves節點執行解壓操作:
tar -zcf ~/hadoop.master.tar.gz ./hadoop 
scp ./hadoop.master.tar.gz node1:/home/wh
sudo tar -zxf ~/hadoop.master.tar.gz -C /home/wh
  • 啓動hadoop(首次啓動需要master執行namenode的格式化):
bin/hdfs namenode -format
  • 啓動hadoop:
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
  • 通過命令 jps 可以查看各個節點所啓動的進程。正確的話,在 Master 節點上可以看到
    NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進程在 Slave
    節點可以看到 DataNode 和 NodeManager 進程.

五.運行hadoop實例

  • 首先創建 HDFS 上的用戶目錄:
 bin/hdfs dfs -mkdir -p /user/wh
  • 將 /usr/local/hadoop/etc/hadoop 中的配置文件作爲輸入文件複製到分佈式文件系統中:
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put /home/wh/hadoop/etc/hadoop/*.xml input
  • 運行mapreduce作業:
hadoop jar /home/wh/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

六.關閉hadoop

sbin/stop-yarn.sh
sbin/stop-hdfs.sh
sbin/mr-jobhistory-daemon.sh stop historyserver
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章