Haddop徹底分佈式集羣搭建

hadoop徹底分佈式搭建

建議(遇到的坑):

  1. 若是本身用的操做系統就是linux,我自己是deepin系統,裝了兩臺虛擬機,結果,用戶名沒有配置,致使啓動不了,由於hadoop的master節點啓動的時候,默認slave的用戶名爲master機器的用戶名。因此,要保證三臺機器,用戶名是一致的!!html

  2. windows下的調試MapReduce程序會有點不方面,須要裝winutils。node

  3. 建議在一臺上搭建完整(包括環境、配置),再克隆,或者scp複製。linux

  4. 若是想連zookeeper和kafka都一塊兒的話,能夠也直接配置了。不裝的話,以後用scp傳,也挺方面的。shell

  5. 克隆完修改hostname!vim

  6. 總體過程還有點粗糙,有些遇到的細節,也忘記記錄了。歡迎指教,若是有問題,請通知,我會及時改正。windows

虛擬機安裝

  1. VMware中安裝多臺CentOS-7虛擬機(這裏安裝了2臺slave,由於我本身用的操做系統就是deepin)瀏覽器

  2. 傳文件到虛擬機:我使用scp傳的,很快。windows下的用戶建議xshell,sftp。安全

  3. 虛擬機的網絡配置就默認的NAT,CentOS最小安裝網絡

配置:

  1. 關閉防火牆ssh

    $ systemctl status firewalld            # 查看防火牆狀態
    $ systemctl stop firewalld              # 臨時中止firewall
    $ systemctl disable firewalld           # 禁止firewall開機啓動
  2. 關閉SELinux

    安全加強型 Linux(Security-Enhanced Linux)簡稱 SELinux,它是一個 Linux 內核模塊,也是 Linux 的一個安全子系統。

    $ vim /etc/selinux/config
    # 將SELINUX=enforcing改成SELINUX=disabled
  3. 安裝ntp時間同步服務

    yum install -y ntp
    # 設置開機自啓
    systemctl enable ntpd.service   # 啓動
    systemctl enable ntpd
    systemctl status ntpd   # 查看是否啓動

    有可能沒法啓動,緣由是:與chronyd衝突:

     systemctl disable chronyd :關掉,在啓動ntp,便可

  4. 修改主機名、配置靜態ip

    (克隆以後,這些要稍做修改,主機名要改,ip要改一下便可)

    第一步:修改 /etc/sysconfig/network-scripts/ifcfg-xxx文件

    主要修改下面幾個參數:

    BOOTPROTO="static"
    ONBOOT="yes"
    IPADDR="172.16.125.128"
    NETMASK="255.255.255.0"
    GATEWAY="172.16.125.2"

    第二部:修改文件 /etc/sysconfig/network的內容

    內容同上

    # Created by anaconda
    GATEWAY=172.16.125.2
    DNS=172.16.125.2

    第三步:重啓網絡

    service network restart
  5. 配置ssh

    master可以免密登陸到slave節點

    $ ssh-keygen -t rsa

    打開~/.ssh 下面有三個文件

    -rw-r--r--. 1 root root  392 9月  26 21:05 authorized_keys   # 已認證的keys
    -rw-------. 1 root root 1679 9月  26 20:57 id_rsa            # 私鑰
    -rw-r--r--. 1 root root  393 9月  26 20:57 id_rsa.pub        # 公鑰
    在master上將三臺機器的公鑰放到authorized_keys裏。命令:
    $ sudo cat id_rsa.pub >> authorized_keys

    將master上的authorized_keys放到其餘linux的~/.ssh目錄下

    $ sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh

      修改authorized_keys權限,命令:

    $ chmod 644 authorized_keys
    測試是否成功

    ssh host2 輸入用戶名密碼,而後退出,再次ssh host2不用密碼,直接進入系統。這就表示成功了。

    若是在登陸ssh的時候出現:

     The authenticity of host 'hadoop2 (192.168.238.130)' can't be established 

    則須要修改/etc/ssh/ssh_config文件中的配置,添加以下兩行配置:

    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
  6. 最後:安裝配置jdk、hadoop

    core-stie.xml

    <configuration>
        <property>
            <name>fs.defaultFS</name><!--默認文件系統位置-->
            <value>hdfs://master:9000/</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name><!--hadoop的工做目錄,namenode、datanode的數據-->
            <value>/home/whr/workbench/hadoop/data/</value>
        </property>
    </configuration>

    hdfs.site.xml

    <configuration>
        <property>
            <name>dfs.replication</name><!--副本數量-->
            <value>2</value>
        </property>
        <property><!--secondary的位置,子節點的其中一個配置-->
            <name>dfs.namenode.secondary.http-address</name>
            <value>slave1:50090</value>
        </property>
    </configuration>   

    mapreduce.site.xml

    <configuration>
        <property><!--指定mapreduce程序用yarn集羣運行,才能實現分佈式-->
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>

    yarn.site.xml

    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop1</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>

    配置slaves文件

    slave1
    slave2

    配置masters文件(若是有的話,我用的CDH版本,沒有此文件)

    master

克隆

  1. vmware克隆沒什麼說的

  2. 克隆完成,先修改 /etc/hostname文件下的主機名!

  3. 添加三臺機器的ip地址映射:/etc/hosts

啓動集羣

  1. 先格式化節點(我是一臺格式化以後,克隆的)
 $ hadoop namenode -format
 # 最後出現,即成功,也能夠看最後狀態碼爲0
 Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
  1. 啓動:到sbin目錄下(能夠先把sbin目錄配置到環境變量中;就不須要切換目錄了)

start-dfs.sh
start-yarn.sh
  1. jps命令

    所有啓動完成以後,查看結果:(在master上ssh登陸slave)

    能夠看到master的NameNode、兩個DataNode、一個SecondaryNameNode都已經啓動完畢

    yarn下的ResourceManager、兩個slave中的NodeManager也都啓動完成

  

  4. 這樣就能夠經過瀏覽器訪問了50070端口了

能夠跑一下mapreduce樣例程序:

$ hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 5 5

Hadoop配置文件

參考配置文件

http://www.javashuo.com/article/p-buuozvpz-bz.html

相關文章
相關標籤/搜索