在本機的虛擬機上配置Hadoop真分佈集羣詳細教程

一、準備階段

安裝兩臺centOS 7.0虛擬機:centOS7.0 無圖形界面版

一臺做master,一臺做slave

 

二、配置網絡

注:在本機上配置真分佈模式,虛擬機的網絡適配器不用設置爲橋接模式,NAT模式即可。

1、聯網

啓動centOS

命令:ip addr  # 查看設置IP地址的文件名

命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33  # 編輯ifcfg-ens33配置文件(每臺虛擬機文件名有可能不一樣)

文件修改內容:

ONBOOT=yes  #開啓自動啓用網絡連接

重啓網絡,命令:service network restart (若無效,可以重啓虛擬機)

輸入命令:ip addr  # 查看ip地址

我的master:192.168.98.135

我的slave:192.168.98.134

 

三、虛擬機IP映射

1、將所有虛擬機的IP寫入/etc/hosts文件
命令:vi /etc/hosts
添加內容:(兩臺虛擬機都要修改)

192.168.98.135    master
192.168.98.134    slave

2、修改主機名稱
hostnamectl set-hostname master  # 在mster主機執行
hostnamectl set-hostname slave  # 在slave主機執行

3、重啓兩臺虛擬機,命令:reboot

4、關閉防火牆

查看防火牆狀態,命令:firewall-cmd --state
關閉防火牆,命令:systemctl stop firewalld && systemctl disable firewalld

四、ssh免密登錄

先修改一下配置文件,允許root用戶登錄

命令:vi /etc/ssh/sshd_config

修改內容:

PermitRootLogin yes(把#號去掉)

1、生成公鑰

命令:

cd ~/.ssh                  # 如果沒有該目錄,先執行一次ssh localhost
rm ./id_rsa*               # 刪除之前生成的公匙(如果有)
ssh-keygen -t rsa          # 一直按回車就可以
cat ./id_rsa.pub >> ./authorized_keys    # 讓 master 節點需能無密碼 SSH 本機

2、把生成認證的key,發送給各個slave節點(只需在master主機執行)

命令:scp /root/.ssh/id_rsa.pub root@slave:/root/.ssh/authorized_keys

命令:chmod 644 /root/.ssh/authorized_keys    #  在每個虛擬機設置權限

3、測試ssh免密登錄

命令:ssh slave

退出登錄命令:exit

 

五、下載安裝JDK

下載wget:yum -y install wget

1、下載jdk,命令:

wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz

如果下載不了,可以在windows下載好後傳輸到虛擬機,有很多工具,這裏不做推薦了

2、解壓: tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/local/

3、配置JDK環境變量
命令:vi ~/.bashrc

在文件頂部添加內容:

# Java set
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$PATH


六、下載安裝hadoop3.1.0(版本自己選擇,配置基本相同)

1、下載hadoop:wget http://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0.tar.gz

2、解壓:tar -zxvf hadoop-3.1.0.tar.gz -C /usr/local/

解壓後Hadoop 3.1.0根目錄爲/usr/local/hadoop-3.1.0

3、進入/usr/local目錄,修改文件夾名,命令:mv hadoop-3.1.0 hadoop

4、配置Hadoop環境變量

命令:vi ~/.bashrc

添加內容:

# Hadoop set
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"


七、修改Hadoop配置文件

命令:cd /usr/local/hadoop/etc/hadoop/

1、vi hadoop-env.sh

添加:export JAVA_HOME=/usr/local/jdk1.8.0_201

2、vi workers

刪除localhost

加入slave虛擬機名稱(一行一個)

slave

注:下面的配置均寫入在<configuration></configuration>內

3、vi core-site.xml

    <property>
        <name>fs.checkpoint.period</name>
        <value>3600</value>
    </property>

    <property>
        <name>fs.checkpoint.size</name>
        <value>67108864</value>
    </property>
    <!-- 指定hdfs的nameservice爲master -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 指定hadoop臨時目錄,自行創建 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data/tmp</value>
    </property>

4、vi hdfs-site.xml

<property>
    <name>dfs.relication</name>
    <value>1</value>
</property>

<property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop/data/dfs/name</value>
</property>

<property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/local/hadoop/data/dfs/data</value>
</property>

<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>

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

<property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>file:/usr/local/hadoop/data/dfs/checkpoint</value>
</property>

<property>
    <name>dfs.namenode.checkpoint.edits.dir</name>
    <value>file:/usr/local/hadoop/data/dfs/edits</value>
</property>

5、vi mapred-site.xml

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

 <property>
    <name>mapred.job.tracker</name>
    <value>master:10020</value>
</property>

<property>
        <name>mapreduce.application.classpath</name>
        <value>
            /usr/local/hadoop/etc/hadoop/*,
            /usr/local/hadoop/share/hadoop/common/*,
            /usr/local/hadoop/share/hadoop/common/lib/*,
            /usr/local/hadoop/share/hadoop/hdfs/*,
            /usr/local/hadoop/share/hadoop/hdfs/lib/*,
            /usr/local/hadoop/share/hadoop/mapreduce/*,
            /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
            /usr/local/hadoop/share/hadoop/yarn/*,
            /usr/local/hadoop/share/hadoop/yarn/lib/*
        </value>
</property>

<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
</property>

6、vi yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.98.135</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.ShuffleHandle</value>
</property>

<property>
    <name>yarn.resourcemanager.resource-tarcker.address</name>
    <value>master:8025</value>
</property>

<property>
    <name>yarn,resourcemanager.scheduler.address</name>
    <value>master:8030</value>
</property>

<property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8040</value>
</property>

<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>
</property>
<!-- 指定ResourceManager Http監聽的節點 -->
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>
</property>

7、vi log4j.properties
# 在文件最後面加上以下語句

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

8、先進入該目錄:cd /usr/local/hadoop/hadoop-3.1.0/sbin

注:下面修改內容在四個文件頭部添加

# vi start-dfs.sh
添加內容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
# vi stop-dfs.sh
添加內容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
# vi start-yarn.sh
內容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
# vi stop-yarn.sh
內容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

八、將配置文件、JDK和hadoop傳輸給slave虛擬機並格式化節點

# 利用scp命令將配置文件、JDK及hadoop安裝文件複製到slave虛擬機相應位置

1、JDK(/usr/local/java)

scp -r /usr/local/jdk1.8.0_201/ slave:/usr/local/

2、Hadoop (/usr/local/hadoop)

scp -r /usr/local/hadoop/ slave:/usr/local/hadoop

3、環境配置文件(~/.bashrc),這個也可以不用傳輸,由於內容較少,可以直接在slave節點上配置。

scp ~/.bashrc slave:~/

4、在各子節點刷新環境變量

命令:source ~/.bashrc

注:刷新環境後,如果出現大部分命令不能使用,則說明環境配置錯誤,一般是路徑錯了,使用以下命令可以重新打開環境配置文件進行修改。

export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

5、格式化節點

命令:hdfs namenode -format

九、啓動
1、啓動節點
命令:start-all.sh
2、查看節點情況
命令:jps
3、訪問網頁地址

http://192.168.98.135:50070
http://192.168.98.135:8088
http://192.168.98.134:8042(slave虛擬機)

 

參看資料

Centos7搭建hadoop3.1的完全分佈式環境

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章