centos7配置hadoop3.1.2


本以為照着網上的教程不會出錯,還是弄了2天才搞好。

 

根據上一篇 vmware10配置jkd ssh免密 ,現在直接配置hadoop,我選擇的是hadoop3.1.2

1.下載地址 

2.通過ssh命令工具,上傳到master主機,我上傳到root/目錄下

3.host配置,讓可以通過主機名稱來訪問。

vim /etc/hosts
#修改完后 立即生效(如果出現command not found 忽略)
. /etc/hosts

如圖是我增加的2台機器。 192.168.10.128 作為master主機,192.168.10.129作為slave機器。當前配置的機器為mater

 

4.復制這個配置到slave1機器(當前由於slave1機器還沒有上一步的操作,只能用ip名復制)

scp -r  /etc/hosts root@192.168.10.129:/etc/hosts/

  經過了這一步,就可以在master機器上以slave1來訪問192.168.10.129的機器了

5.解壓hadoop並配置

cd /root
tar -xvf hadoop-3.1.2
#生成軟鏈接
ln -sf hadoop-3.1.2 hadooop
#配置環境
vim /etc/profile

 

 划紅線內的不用管

 

還有一個地方要配置:

vim /root/hadooop/etc/hadoop/hadoop-env.sh

結尾處如圖,加:export JAVA_HOME=/usr/lib/jvm/java

 

 

6.hadoop配置文件

  先創建文件目錄

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

cd /root/hadoop-3.1.2/etc/hadoop 
依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及workers文件。 

a.core-site.xml

<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:/data/hdfs/tmp</value>
</property>
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
</property>

b.hdfs-site.xml

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

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

<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/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>/data/hdfs/checkpoint</value>
</property>

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

c.mapred-site.xml

<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>
 

d.yarn-site.xml

<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>

7.把master上配置好的hadoop復制到slave1機器 (每台機器上都要配置hadoop哦)

scp -r /root/hadoop-3.1.2 root@slave1:/root/
#還有環境變量
scp -r /etc/profile  root@slave1:etc/profile/

 

8.關掉防火牆 

由於hadoop中的程序都是網絡服務,需要監聽端口,這些端口默認會被linux防火牆擋住。因此要把hadoop中的端口一個個打開,或者把防火牆關掉。由於都是內網,所以關掉就好了。

sudo firewall-cmd –state 查看防火牆狀態  如果是running表示是開啟的 
sudo systemctl stop firewalld.service 關閉防火牆  再查看應該是not running 就是 已經關閉了。但在下一次開機時還會自啟動,因此 sudo systemctl disable firewalld.service 禁止開機時防火牆自啟。 

9.啟動hadoop

#先格式化(每台機器都做)
hdfs namenode –format

#如果環境變量沒有配置好,則
cd /root/hadoop/sbin/
./start-all.sh

我的機子出現了錯誤:

分別編輯開始和關閉腳本
vim sbin/start-yarn.sh
vim sbin/stop-yarn.sh
在頂部空白處添加內容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

還有一個hdfs的錯誤,同理修改

vim sbin/start-yarn.sh 
vim sbin/stop-yarn.sh 

都加入如下:

這里編輯好了之后,也要拷貝到slave1機器

cd  /root/hadoop/sbin/
scp -r start-dfs.sh root@slave1:/root/hadoop/sbin/
scp -r stop-dfs.sh root@slave1:/root/hadoop/sbin/
scp -r start-yarn.sh root@slave1:/root/hadoop/sbin/
scp -r stop-yarn.sh root@slave1:/root/hadoop/sbin/

 

#重新啟動
./stop-all.sh
./start-all.sh
jps

master:

slave1:

 

如此就大功告成了。

 

測試:http://192.168.10.128:50070

 

 

 

 

注意:我之前在網上看到hdfs-site.xml的配置,里面有這樣的配置:<value>file:/data/hdfs/data</value>,結果發現namenode一直啟動不了

后面去查看日志:

cd /root/hadoop/logs
tail -f 100 hadoop-root-namenode-master.log

 

 namenode格式化不成功。

修改后:<value>/data/hdfs/data</value>

重新格式化:hdfs namenode –format

重啟就可以了

 


免責聲明!

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



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