前提,虛擬機安裝 見http://www.javashuo.com/article/p-slkhirfv-hz.htmlhtml
一.按照https://blog.csdn.net/MastetHuang/article/details/51867115該步驟進行node
其中有如下幾個小問題apache
1.注意上述連接中的hadoop-2.6.4須要修改成本身的hadoop版本,同時,hdfs-site.xml和core-site.xml等配置文件的修改中的hadoop-2.6.4也應一併修改vim
2.配置文件還需做以下修改ssh
vim /hadoop-3.1.2/etc/hadoop/core-site.xml
添加以下:
<configuration> <property> <name>fs.defaultFS</name>
<value>hdfs://localhost:9000 </value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp </value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
</property>
<configuration>
vim /data/hadoop/etc/hadoop/hdfs-site.xml
添加以下:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/hadoop/hdfs/data</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
vim /data/hadoop/etc/hadoop/mapred-site.xml
添加以下:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
vim /data/hadoop/etc/hadoop/yarn-site.xml
添加以下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> ##注意這裏有坑 mapreduce.shuffle 連接符爲.的時候有問題 </property>
</configuration>
3.修改JAVA_HOME 時記得把#去掉
export JAVA_HOME=/usr/local/jdk1.7.0_79
4.拷貝主機文件(hadoop)到虛擬機 在虛擬機中執行oop
scp 192.168.0.119:/home/cxl/Downloads/hadoop-3.1.2.tar.gz /home/cxl/ hadoop-3.1.2
其中 192.168.0.119爲本機IP ,/home/hostname/爲本身的路徑ui
5.編輯profile文件一旦沒有寫正確,致使在命令行下 ls等命令不可以識別spa
在命令行下打入下面這段.net
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
6.主機沒法ssh鏈接虛擬機,也ping不通命令行
見https://blog.csdn.net/chengqiuming/article/details/83239413 設置好後在主機中執行
ssh 127.0.0.1 -p 2022
設置端口轉發後主機監聽本地2022端口,若是ssh -p 2022,就將ssh到虛擬機,因此是ssh 127.0.0.1
二.安裝完後
1.建立文件夾(配置文件core-site.xml中hadoop.tmp.dir 設置的就是tmp)
cd /data/hadoop mkdir tmp cd tmp mkdir name data chmod -R 777 tmp
2.格式化
cd /hadoop-3.1.2/bin
hdfs namenode -format
3.啓動hadoop
cd hadoop-3.1.2/sbin/
./start-all.sh
4.操做hdfs
確保在hadoop的bin目錄下
cd /hadoop3.1.2/bin
hdfs dfs -mkdir /test
或
hadoop fs -mkdir /test
其餘簡單操做見http://www.javashuo.com/article/p-ocpqwrhb-kc.html
詳情見官方文檔http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
後續:
1.datanode啓動後自動關閉
解決方法:https://blog.csdn.net/a469142780/article/details/71312143
問題:Namenode上namespaceID與datanode上namespaceID不一致。 問題產生緣由:每次namenode format會從新建立一個namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的數據,可是沒有清空datanode下的數據,因此形成namenode節點上的namespaceID與datanode節點上的namespaceID不一致。啓動失敗。 解決方法: (1)停掉集羣服務 (2)在出問題的datanode節點上刪除data目錄,data目錄便是在hdfs-site.xml文件中配置的dfs.data.dir目錄,本機器上那個是/hadoop/hadoop-2.7.1/hdfs/dfs/data/ (注:在全部的datanode和namenode節點上均執行了該步驟。以防刪掉後不成功,能夠先把data目錄複製一份)。 (3)格式化namenode. (4)從新啓動集羣。 問題解決。 謹記:這種方法帶來的一個反作用就是會形成hdfs上的全部數據丟失。