1. 程式人生 > >ubantu 16.4 Hadoop 完全分布式搭建

ubantu 16.4 Hadoop 完全分布式搭建

whoami none chm ssh rip args 查看進程 exit dst

一個虛擬機

  •   1.以 NAT網卡模式 裝載虛擬機
  •   2.最好將幾個用到的虛擬機修改主機名,靜態IP /etc/network/interface,這裏 是 s101 s102 s103 三臺主機 ubantu,改/etc/hostname文件
  •   3.安裝ssh
    •   在第一臺主機那裏s101 創建公私密匙
      •   ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
      • >cd .ssh
      • >cp id_rsa.pub >authorized_keys  創建密匙庫
      • 將id_rsa.pub傳到其他主機上,到.ssh目錄下
        1. 通過 服務端 nc -l 8888 >~/.ssh/authorized_keys
        2. 客戶端 nc s102 8888 <id_rsa.pub

開始安裝Hadoop/jdk

  1. 安裝VM-tools 方便從win 10 拖拉文件到ubantu
  2. 創建目錄 /soft
  3. 改變組 chown ubantu:ubantu /soft 方便傳輸文件有權限
  4. 將文件放入到/soft (可以從桌面cp/mv src dst)
    • tar -zxvf jdk或hadoop 自動創建解壓目錄
    • 配置安裝環境 (/etc/environment)
      1. 添加  JAVA_HOME=/soft/jdk-...jdk目錄
      2. 添加   HADOOP_HOME=/soft/hadoop(Hadoop目錄)
      3. 在path裏面加/soft/jdk-...jdk/bin:/soft/hadoop/bin/:/soft/hadoop/sbin
      4. 通過 java -version 查看有版本號 成功
      5. hadoop version 有版本號 成功

  開始配置HDFS四大文件 core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml

  1. core-site.xml
<configuration>
  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://s101:9000</value>
  </property
> </configuration>

2.hdfs-site.xml

<configuration>
<!-- Configurations for NameNode: -->
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/data/hdfs/name</value>
</property>

<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/data/hdfs/data</value>
</property>

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>s101:50090</value>
</property>

<property>
  <name>dfs.namenode.http-address</name>
  <value>s101:50070</value>
  <description>
    The address and the base port where the dfs namenode web ui will listen on.
    If the port is 0 then the server will start on a free port.
  </description>
</property> 

<property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>file:/data/hdfs/checkpoint</value>
</property>

<property>
  <name>dfs.namenode.checkpoint.edits.dir</name>
  <value>file:/data/hdfs/edits</value>
</property>
</configuration>

3. mapred-site.xml

<configuration>
  <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
</configuration>

4.yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
  <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
  </property>
  <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>s101</value>
  </property>
</configuration>

到此成功一半。。。。。。。。。。。。。。

創建文件夾

mkdir /data/hdfs/tmp
mkdir /data/hdfs/var
mkdir /data/hdfs/logs
mkdir /data/hdfs/dfs
mkdir /data/hdfs/data
mkdir /data/hdfs/name
mkdir /data/hdfs/checkpoint
mkdir /data/hdfs/edits

記得將目錄權限修改

  • sudo chown ubantu:ubantu /data

接下來傳輸 /soft文件夾到其他主機

創建 xsync可執行文件

  1. sudo touch xsync
  2. sudo chmod 777 xsync 權限變成可執行文件
  3. sudo nano xsync
  4. #!/bin/bash
    pcount=$#
    if((pcount<1));then
        echo no args;
        exit;
    fi
    
    p1=$1;
    fname=`basename $p1`
    pdir=`cd -P $(dirname $p1);pwd`
    
    cuser=`whoami`
    for((host=102 ; host<105 ;host=host+1));do
        echo --------s$host--------
        rsync -rvl $pdir/$fname $cuser@s$host:$pdir
    done

  5. xsync /soft-------->就會傳文件夾到其他主機
  6. xsync /data

創建 xcall 向其他主機傳命令

#!/bin/bash
pcount=$#
if((pcount<1));then
    echo no args;
    exit;
fi
echo --------localhost--------

$@
for ((host=102;host<105;host=host+1));do
    echo --------$shost--------
    ssh s$host $@
done

別著急 快結束了 哈

還得配置 workers問價

  • 將需要配置成數據節點(DataNode)的主機名放入其中,一行一個

註意重點來了

  • 先格式化 hadoop -namenode -format
  • 再 啟動 start-all.sh
  • 查看進程 xcall jps
  • 技術分享圖片
  • 進入網頁

  • 技術分享圖片

    是不是很想牛淚,成功了耶!!!

中間出現了很多問題

  1, rsync 權限不夠 :刪除文件夾 更改文件夾權限chown

  2.學會看日誌 log

ubantu 16.4 Hadoop 完全分布式搭建