Hadoop3.1.2三節點環境搭建


搭建hadoop3.1.2 三節點完全分佈式環境。

安裝步驟

安裝過程總體分爲下面幾個部分:

(1)準備需要的主機

(2)安裝JDK 和hadoop

(3)配置Hadoop。

(4)配置SSH無密碼連接。

(5)格式化HDFS。

(6)啓動Hadoop並驗證安裝。

  • (1)準備需要的主機

    本教程搭建三節點hadoop集羣,需要三臺主機。可以是虛擬機或者雲主機。虛擬機需要配置好靜態IP,並設置好主機名。(可以採用默認主機名,這裏爲配置管理方便使用下面主機名)

    IP 主機名稱 作用
    192.168.111.200 master namenode
    192.168.111.201 slaver01 datanode1
    192.168.111.202 slaver02 datanode2
    #查看主機名命令
    cat /etc/hosts
    #修改主機名命令
    hostnamectl set-hostname master
    

    配置Hosts如下:

    192.168.111.200 master
    192.168.111.201 slaver01
    192.168.111.202 slaver02
    

    準備好主機後,開始下一步。

  • (2)安裝JDK和Hadoop (三臺機器都操作一遍)

    安裝jdk,下載比較穩定的jdk1.8安裝包後解壓到/opt下

    tar -zxf jdk-8u201-linux-x64.tar.gz -C /opt/
    cd /opt/
    mv jdk1.8.0_201 java
    

    安裝hadoop3.1.2,下載hadoop3.1.2安裝包後解壓:

    tar -zxf hadoop-3.1.2.tar.gz -C /opt/
    

    配置環境變量

    vim /etc/profile
    

    添加如下內容:

    #java環境變量
    export JAVA_HOME=/opt/java
    export PATH=$JAVA_HOME/bin:$PATH 
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
    #hadoop環境變量
    export HADOOP_HOME=/opt/hadoop-3.1.2
    export PATH=.:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    
    

    使環境變量生效

    source /etc/profile
    

    測試jdk和hadoop:安裝成功會輸出相關版本信息

    java -version
    hadoop version
    
  • (3)配置hadoop(只在master操作,後邊通過複製配置文件到另兩臺)

    • 修改hadoop的java環境變量
    vi  /opt/hadoop-3.1.2/etc/hadoop/hadoop-env.sh
    

在這裏插入圖片描述

  • core-site.xml

    vim /opt/hadoop-3.1.2/etc/hadoop/core-site.xml
    

    配置下面信息:

        <configuration>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
            </property>
             <property>
                <name>hadoop.tmp.dir</name>
                <value>/root/zx/bigdata</value>
             </property>
             <property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
             </property>
             <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
             </property>
        </configuration>
    
  • hdfs-site.xml

    vim /opt/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
    

    配置如下:

    <configuration>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/hadoop-3.1.2/dfs/data</value>
        </property>
    
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/opt/hadoop-3.2.1/dfs/name</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
    </configuration>
    
  • mapred-site.xml

    vim /opt/hadoop-3.1.2/etc/hadoop/mapred-site.xml
    

    配置如下:

    <configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.map.memory.mb</name>
            <value>4096</value>
        </property>
    	<property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>8192</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        </property>
    </configuration>
    
  • yarn-site.xml

    vim /opt/hadoop-3.1.2/etc/hadoop/yarn-site.xml
    

    配置如下:

    <configuration>
    	<property>
                  <name>yarn.resourcemanager.hostname</name>
                  <value>master</value>
         </property>
    	 <property>
                  <name>yarn.resourcemanager.webapp.address</name>
                  <value>master:8088</value>
          </property>
    	  <property>
                  <name>yarn.nodemanager.aux-services</name>
                  <value>mapreduce_shuffle</value>
           </property>
           <property>
                  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
           </property>
           <property>
                  <name>yarn.resourcemanager.resource-tracker.address</name>
                  <value>master:8035</value>
           </property>  
    
    </configuration>
    
  • workers

    vim /opt/hadoop-3.1.2/etc/hadoop/workers
    

    配置worker

    slaver01	192.168.111.201
    slaver02	192.168.111.202
    
  • 配置命令腳本的用戶權限

    cd /opt/hadoop-3.1.2/sbin

    start-dfs.sh 和stop-dfs.sh添加如下:

    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    

    star-yarn.sh和stop-yarn.sh添加:

    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root
    
  • 複製配置文件到另外兩個從節點

    for node in slaver01 slaver02; do
        scp /opt/hadoop-3.1.2/etc/hadoop/* $node:/opt/hadoop-3.1.2/etc/hadoop/;
        scp /opt/hadoop-3.1.2/sbin/* $node:/opt/hadoop-3.1.2/sbin/;
    done
    
  • (4)配置SSH無密碼連接。

    三節點上分別執行:(如果都已經有生成過公鑰,可跳過)

    ssh-keygen -t rsa
    

    master節點執行:

    master to slaver01

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@slaver01
    ssh slaver01
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    master to slaver02

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@slaver02
    ssh slaver02
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    master to master

    shh master
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    exit
    

    slaver01節點執行:

    slaver01 to master

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@master
    ssh master
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    slaver01 to slaver02

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@slaver02
    ssh slaver02
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    slaver01 to slaver01

    shh slaver01
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    exit
    

    slaver02節點執行:

    slaver02 to master

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@master
    ssh master
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    slaver02 to slaver01

    ssh-copy-id -i ~/.ssh/id_rsa.pub  root@slaver01
    ssh slaver01
    chmod 600 ~/.ssh/authorized_keys
    exit
    

    slaver02 to slaver02

    shh slaver02
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    exit
    
  • (4)格式化HDFS

    hdfs namenode -format
    
  • (5)啓動Hadoop並驗證安裝。

    start-all.sh
    

    通過jps命令可以查看java進程:

    root@master:~# jps
    16836 ResourceManager
    17383 Jps
    16328 NameNode
    

    訪問HDFS管理界面:

    http://192.168.111.200:9870
    

在這裏插入圖片描述

訪問hadoop管理界面:

http://192.168.111.200:8088

在這裏插入圖片描述

問題總結

jps命令失效
jps名令是查看系統java檢查的命令。需要配置jdk的環境變量到 /root/.bash_profile中

vim /root/.bash_profile
//增加jdk的環境變量,可以通過 which java查看路徑
source /root/.bash_profile

幾種配置文件的區別

在CentOs中:

/etc/profile
/etc/bashrc
 
~/.bashrc
~/.bash_profile
在Ubuntu,Debian中:

/etc/profile
/etc/bash.bashrc
 
~/.bashrc
~/.profile

1./etc/profile
用來設置系統環境參數,比如$PATH. 這裏面的環境變量是對系統內所有用戶生效的。

2./etc/bashrc
這個文件設置系統bash shell相關的東西,對系統內所有用戶生效。只要用戶運行bash命令,那麼這裏面的東西就在起作用。

3.~/.bash_profile
用來設置一些環境變量,功能和/etc/profile 類似,但是這個是針對用戶來設定的,也就是說,你在/home/user1/.bash_profile 中設定了環境變量,那麼這個環境變量只針對 user1 這個用戶生效.

4.~/.bashrc
作用類似於/etc/bashrc, 只是針對用戶自己而言,不對其他用戶生效。

一些命令

防火牆

centos:
systemctl status firewalld
1、直接關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啓動

ubuantu查看:
ufw status
ufw disable

端口進程相關

查看某端口占用情況
netstat  -anp  |grep 8787
查看某進程名或者進程id的應用
ps axu|grep 進程名稱 或者id

查看某個端口進程的命令:lsof -i:端口號
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章