一、系統環境
四臺虛擬機器一些配置如下
修改主機名 |
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 |