最近要做畢設了,題目嘛應該用的到hadoop,以前上課都是用虛擬機搭建Master+1slave,總感覺用的不爽,於是多方借鑑搭建了僞分佈式。
中間也遇到了很多問題,於是趁現在比較閒,記錄下。
0.環境
本次使用 Ubuntu 16.04 64位 作爲系統環境,安裝的不是虛擬機,效果是一樣的。
前兩天沒事點的時候發現3.0.0不見了,換別的也行,這個不重要
Hadoop使用的版本是3.0.0
Hadoop3.0.0下載(注意是第二個)
然後安裝好Ubuntu系統
1.準備工作
1.1 創建hadoop用戶
01:先打開終端(Ctrl+Alt+T)
鍵入指令:
sudo useradd -m hadoop -s /bin/bash
02:設置用戶hadoop的登錄密碼
sudo passwd hadoop
提示會要求輸入兩次密碼(鍵入密碼不會顯示),這裏我就用的hadoop。
03:爲用戶hadoop增加管理員權限
sudo adduser hadoop sudo
(雖然增加了管理員權限,但後面有些地方還是需要進入root用戶進行操作)
1.2 更新apt
接下來註銷,登錄到hadoop用戶下。
爲了安裝一些軟件,我們需要更新apt。
sudo apt-get update
由於之前實驗室的課,用的是Centos,自帶的好像是vi編輯器,這裏就習慣的安裝了一個vim,不想安裝也沒事,就用gedit也是可以的。
sudo apt-get install vim
1.3 安裝SSH並配置SSH無密碼登錄
之前配置過hadoop的同學們,肯定是知道這個的。
網上是說Ubuntu已經自帶了SSH client,還需要安裝SSH server
sudo apt-get install openssh-server
安裝成功後,使用命令登錄本機
ssh localhost
提示要求輸入yes就輸入
這樣做了,我們每次登錄還是會需要輸入密碼。
接下來配置SSH無密碼登錄。
首先退出登錄的SSH。
想要退出的話,鍵入exit即可。
接下來生成密碼並加入授權:
cd ~/.ssh/
ssh-keygen -t rsa //遇到提示,一路回車即可
cat ./id_rsa.pub >> ./authorized_keys //加入授權
接下來可以再次嘗試ssh localhost,如若無需再次輸入密碼,既成功。
1.4 安裝Java環境
01:下載和安裝jdk
這裏選擇的版本是1.8.0_161
下載好後,找到文件所在位置(以我的爲例,在下載目錄下)
cd ~/下載
mv ~/下載/jdk-8u161-linux-x64.tar.gz /usr/java //若提示權限不夠,則進入root下操作
tar -xvf /usr/java/jdk-8u161-linux-x64.tar.gz
可以在對應的路徑下找到解壓好的jdk文件
02:配置環境變量
vim ~/.bashrc
將如下環境變量寫入文件第一行(i鍵,對文檔開始編輯)
保存,退出。(Esc--:wq)
接下來需要讓環境變量生效:
source ~/.bashrc
檢查是否配置正確:
java -version
2.安裝Hadoop
cd ~/下載
mv ~/下載/hadoop-3.0.0.tar.gz /usr/local/hadoop
tar -xvf /usr/local/hadoop/hadoop-3.0.0.tar.gz
解壓完成後,可進行驗證:
cd /usr/local/hadoop
3.Hadoop僞分佈式配置
01. 配置core-site.xml
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
02. 配置hadoop-env.sh
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到被註釋掉的JAVA_HOME
03. 配置hdfs-site.xml
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置完成後,執行NameNode的格式化
/usr/local/hadoop/bin/hdfs namenode -format
會有提示是否成功。
接着開啓NameNode和DataNode
/usr/local/hadoop/sbin/start-dfs.sh
這時,你可能會發現一個警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
該解決辦法請自行問度娘,加一個環境變量就可以。
至此,完成配置,可通過jps查看是否啓動成功。
ps:如果在最後查看localhost:50070
若發現404問題
1. 手動修改hdfs-site.xml 添加如下:
<property>
<name>dfs.http.address</name>
<value>127.0.0.1:50070</value>
</property>
127.0.0.1是對應的localhost地址
2. 也有可能是你的電腦爲手機開啓了熱點
可以用第一種方式或者關閉熱點解決該問題
參考文章:
1.Hadoop安裝教程_單機/僞分佈式配置_Hadoop2.6.0/Ubuntu14.04
http://www.powerxing.com/install-hadoop/
2.hadoop無法訪問50070端口
http://blog.csdn.net/Neone__u/article/details/53741786