搭建全分佈式Hadoop

title: 搭建全分佈式Hadoopnode

date:2017-12-25 22:12:54shell

環境準備

  • 想要搭建全分佈式hadoop, 咱們至少要有兩臺機器, 一臺作主節點, 一臺作從節點. 本人是選擇開啓虛擬機來實現
  • hadoop資源下載 密碼: c2vw

虛擬機配置

  1. 虛擬機選擇,本人使用的是Virtual Box, Vmvare也能夠, 這個無所謂,
  2. 其餘都沒什麼講的, 建立虛擬機的時候一路回車就行了, 可是網絡模式記得改成橋接, 不要使用NAT網絡地址轉換

文件傳輸

  1. 將文件傳輸到服務器上, 由於我用的是Ubuntu Server因此用ssh傳輸 scp local_file remote_user@remote_ip:/home/user_namebash

    • local_file: 本地文件名(使用絕對地址)
    • remote_user: 遠程主機用戶名, 用戶名相同時可省略
    • remote_ip: 遠程主機ip, 不知道的話使用ifconfig命令查看便可
    • /home/user_name: 你想傳輸文件到遠程主機的地址

其餘配置

  1. 找到上傳文件的地址, 執行install.sh
  2. 執行完shell腳本後, 使用hadoop version查看hadoop是否成功安裝
  3. 修改/etc/hostname, 給兩個結點更名, 我這裏主節點更名爲master, 從結點更名爲slaver0
  4. 修改/etc/hosts, 將第二行127.0.1.1所有註釋掉, 在下面添加IP地址和對應的主機名服務器

    • MAIN_IP master
    • SLAVER_IP slaver0
  5. 在hadoop安裝目錄建立logs目錄並更改擁有者和所屬組sudo mkdir /opt/hadoop/logs chown -R mapred logs chgrp -R hadoop logs sudo chmod 775 logs

xml配置

  • 修改/opt/hadoop/etc/hadoop/core-site.xml 指明在集羣中誰承擔主節點的角色
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://MAIN_IP:9000</value>
    </property>
</configuration>
#9000是端口, 不容許改動 這裏的MAIN_IP是指當作主節點的虛擬機的IP,下同
  • 修改/opt/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<!-- 指定MapReduce程序運行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 修改/opt/hadoop/etc/hadoop/yarn-site.xml
<configuration>
    <!--指定ResourceManager的地址-->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>MAIN_IP</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yran.nodemanager.local-dirs</name>
            <value>/data/hadoop/yarn/logs</value>
        </property>
    </configuration>
  • 修改/opt/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster1</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:/data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:/data/hadoop/dfhs/snn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/hadoop/hdfs/dn</value>
    /property>
</configuration>

創建yarn和hdfs執行所需目錄

  1. 創建data目錄網絡

    • sudo mkdir /data
  2. 在/data目錄下新建hadoop目錄ssh

    • sudo mkdir /data/hadoop
  3. 在hadoop目錄下新建hdfs和yarn目錄分佈式

    • sudo mkdir /data/hadoop/hdfs
    • sudo mkdir /data/hadoop/yarn
  4. 在hdfs目錄下新建dn, nn, snn目錄oop

    • sudo mkdir /data/hadoop/hdfs/dn
    • sudo mkdir /data/hadoop/hdfs/nn
    • sudo mkdir /data/hadoop/hdfs/snn
  5. 在yarn目錄下新建logs, nm目錄code

    • sudo mkdir /data/hadoop/yarn/logs
    • sudo mkdir /data/hadoop/yarn/nm
  6. 更改hdfs和yarn所屬用戶和用戶組orm

    • sudo chown -R hdfs hdfs/
    • sudo chgrp -R hadoop hdfs/
    • sudo chgrp -R hadoop yarn/

格式化

  • hdfs namenode -format 記住這個主節點和從節點都須要格式化, 不能只格式化一個

其餘服務器配置

  • 在其餘服務器上, 也是一樣的操做, 能夠不從新配置, 將咱們改過的配置文件, 用tar打包scp發送至其餘服務器, 覆蓋安裝便可

服務器集羣及關閉

使用 su - hdfs, 進入hdfs帳戶 默認密碼hadoop

在主節點上啓動

  • hadoop-daemon.sh start/stop namenode
  • yarn-daemon.sh start/stop resourcemanager

在從節點上啓動

  • hadoop-daemon.sh start/stop datenode
  • yarn-daemon.sh start/stop nodemanager
  • 若是想偷懶的話,能夠在主節點上使用start/stop-all.sh

監控平臺

可能會遇到的錯誤

  • install.sh沒法執行, 注意看是否有執行權限, 若是沒有的話使用chmod命令添加執行權限,
  • hadoop version顯示沒有這個命令, 看看本身~/.bashrc文件裏有沒有以下代碼export JAVA_HOME=/opt/jdk export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 沒有的話加進去
  • 東西搭起來後, 發現DataNode在master上, 更改/opt/hadoop/etc/hadoop/slaves, 默認是localhost, 改成SLAVER_IP
相關文章
相關標籤/搜索