CentOS 7 的hadoop-3.0.3集群環境搭建


一、基礎環境

說明:1.本文基於CentOS 7 操作系統,CentOS-7-x86_64-Minimal-1804.iso。

2.hadoop使用的版本是hadoop-3.0.3.tar.gz。

注:附上本人已搭建好的Hadoop集群環境的master主機文件,可下載后克隆另外兩slave從機,即可。

鏈接: https://pan.baidu.com/s/16lXWV4-JtAXC1BFyVTgAFg 提取碼: 3923 復制這段內容后打開百度網盤手機App,操作更方便哦

 

 

在Linux上安裝Hadoop之前,需要准備好如下基礎環境配置:

1. 創建3台虛擬機,分別命名為:master(主節點)、slave1(從節點)、slave2(從節點);

2. 分別配置好3台虛擬機的靜態IP,我的:master(192.168.70.10)、slave1(192.168.70.20)、slave2(192.168.70.30);

3. 分別將3台虛擬機重名主機名,並做好IP與主機名的域名映射;

4. 關閉3台虛擬機的防火牆,配置好3台機器的免密登錄(SSH);

5. 將3台虛擬機進行網絡時間同步;

6. 3台虛擬機都需安裝同版本的JDK,要求安裝路徑絕對一致。

注:jdk配置文件參考

#JAVA
JAVA_HOME=/usr/local/jdk1.8.0_191
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

一、hadoop安裝配置

注:以下操作都是在master主機(namenode)上完成,除非特別申明。

1.使用rz命令上傳hadoop-3.0.3.tar.gz壓縮包至master主機,建議在master主機根目錄下建立目錄/data,用來存放hadoop解壓文件;

建立目錄命令:

mkdir data

解壓壓縮包命令:(/data為指定的目錄)

tar -zxvf hadoop-3.0.3.tar.gz -C /data

2.配置(全局)環境變量:命令:

vi /etc/profile

配置內容:

#HADOOP
HADOOP_HOME=/root/data/hadoop-3.0.3
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME
export PATH
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"

#避免因為缺少用戶定義造成的錯誤
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

注:~/.bashrc(局部)配置文件不要做任何改動

3.然后將這些目錄通過scp命令拷貝到Slave1和Slave2的相同目錄下

命令:

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

然后在3台虛擬機上分別運行命令:

source /etc/profile

4.補全配置文件

進入hadoop-3.0.3的配置目錄:

cd /root/data/hadoop-3.0.3/etc/hadoop

a.在hadoop-env.sh文件上添加:

export JAVA_HOME=/usr/local/jdk1.8.0_191

b.在workers文件上,刪除localhost,加入slave虛擬機的名稱一行一個。例如我的是

slave1
slave2

c、創建文件目錄

為了便於管理,給Master的hdfs的NameNode、DataNode及臨時文件,在用戶目錄下創建目錄:

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

注:一定要按要求創建,因為上述2)、配置文件中使用到該部分的目錄。

然后將這些目錄通過scp命令拷貝到Slave1和Slave2的相同目錄下。

scp -r /data/hdfs root@slave1:/data
scp -r /data/hdfs root@slave2:/data

d.依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml文件.

1)、core-site.xml

<configuration>

<property>
  <name>fs.checkpoint.period</name>
  <value>3600</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
  <value>67108864</value>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>file:/root/data/hdfs/tmp</value>
</property>
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
</property>

</configuration>

2)、hdfs-site.xml

<configuration>

<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>

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

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

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

<property>
  <name>dfs.namenode.http-address</name>
  <value>master: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:/root/data/hdfs/checkpoint</value>
</property>

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

</configuration>

3)、mapred-site.xml

<configuration>

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapred.job.tarcker</name>
  <value>master:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
</property>

</configuration>

4)、yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</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>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>master:8088</value>
</property>


</configuration>

5.將master(主機)上的拷貝hadoop安裝文件到子節點,在主節點(master)上執行:

scp -r /data/hadoop-3.0.3 root@slave1:/data
scp -r /data/hadoop-3.0.3 root@slave2:/data

6.啟動,在master上進入cd /data/hadoop-3.0.3/etc/hadoop目錄,運行:(不報錯並在倒數五六行左右有一句 successfully。。。。即成功)

hdfs namenode -format

注:此命令在初次搭建后,執行一次即可,請勿重復執行!!!若重復(兩次及以上)執行,則需刪除hdfs目錄下的臨時文件(三台機器都要刪除),再重新操作。

7.推薦使用命令:

start-dfs.sh
start-yarn.sh

啟動集群,或者使用命令:(二選一)

start-all.sh

8.運行完后輸入jps可看到master下的節點:

6032 ResourceManager
5793 SecondaryNameNode
5538 NameNode
6355 Jps

在slave1上輸入jps可以看到從節點:

2440 Jps
2316 NodeManager
2206 DataNode

在slave2上輸入jps可以看到從節點:

2342 Jps
2217 NodeManager
2107 DataNode

如此表示成功。

9.測試,打開瀏覽器輸入:http://192.168.70.10:50070

10.打開瀏覽器輸入:http://192.168.70.10:8088

至此,Hadoop集群環境搭建成功!!!

三、注意事項

1.jps實際上是Java進程,若顯示“不是命令”,則原因是jdk地址路徑問題,找到配置文件,檢查更新。

2.三台機器一定要設定ssh登錄。

3.Linux系統一定要關閉selinux。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM