Linux下Hadoop環境配置


一、系統環境

四臺虛擬機器一些配置如下

修改主機名

hostnamectl set-hostname node01

修改IP地址

terminal寫的太麻煩,可以直接用交會時桌面進行配置

想用terminal, https://jingyan.baidu.com/article/e4d08ffdd417660fd3f60d70.html

二、準備操作

1、安裝Xshell並熟悉幾個xshell中命令

https://jingyan.baidu.com/article/e75057f210c6dcebc91a89dd.html

登錄主機

ssh  主機用戶@主機名

例子  ssh root@xu

輸入主機密碼

2、安裝xftp---便於向centos系統傳輸文件

三、具體步驟

1、centos上安裝jdk----------hadoop需要jdk的支持,因此jdk正確安裝至關重要

(1)jdk

通過xshell中xftp將jdk傳到centos上面(只要傳過去就ok,什麼方式隨意)

(2)解壓jdk---根據包的類型進行解壓

解壓

jdk的安裝路徑

 

(3)配置環境變量(類比window 上面的配置環境變量這裏只是在terminal下工作本質不變)

vi /etc/profile

(4)測試jdk是否正確安裝,出現類似下圖在表面jdk安裝成功

2、安裝hadoop

(1)

(2)配置環境變量

環境變量

(3)配置Hadoop文件

            

  首先進入Hadoop配置文件夾

關於java路徑的配置

vi hadoop-env.sh

 

vi mapred-env.sh

vi yarn-env.sh

配置core-site.xml

namenode

vi core-site.xml

 

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node01:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/var/sxt/hadoop/local</value>

    </property>

配置hdfs-site.xml

Secondarynode

 

 

 <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>node01:50090</value>

    </property>

配置slaves文件

datanode

vi slaves node01

(4)格式化+啓動

格式化hdfs

hdfs namenode -format  (只能格式化一次,再次啓動集羣不要執行)

 

啓動集羣

start-dfs.sh

 

 

如果出現

說明-------本質原因:namenode的id 與datanode id 不一致,導致datanode自殺(這裏的id用於標識namenode和datanode是否一致)

表象原因:core-site.xml中的,hadoop.tem.dir下的目錄不乾淨,將其刪除並重啓格式化啓動就可以了具體見: https://blog.csdn.net/love666666shen/article/details/74350358

   

四、優化處理--------免密鑰登錄

1、在四臺centos和主機上的hosts文件中互相配置各子的別名(用別名替代主機名,便於訪問各個主機)

在主機上進行配置

在centos上配置

 

centos本機

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

傳播

scp ~/.ssh/id_dsa.pub root@node02:`pwd`/node01.pub           這裏的'pwd'是一個參數

到目標主機將發送過去的公鑰發送到該主機的

cat node01.pub >> ~/.ssh/authorized_keys

 

方便的方法

for i in `seq 4`; do

cat k | sed "s/\(node0\)1\(,192\.168\.9\.1\)1\(.*\)/\1$i\2$i\3/gi"

>> known_hosts;

done

 

 

 

 

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