安裝步驟:
1、新建虛擬機(網絡選橋接模式、內存盡量大)
2、安裝Ubuntu 18.04
3、安裝JDK JRE
4、創建hadoop用戶
# 1、創建用戶 sudo useradd -m hadoop -s /bin/bash # 2、設置密碼(按提示輸入兩次密碼) sudo passwd hadoop # 3、設置權限 sudo adduser hadoop sudo # 4、用hadoop登錄后更新一下 apt sudo apt-get update
5、配置SSH無密碼登錄
ssh localhost
此時會有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 hadoop,這樣就登陸到本機了。
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。
首先退出剛才的 ssh,就回到了我們原先的終端窗口,然后利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中:
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按回車就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授權
此時再用 ssh localhost
命令,無需輸入密碼就可以直接登陸了
6、安裝Hadoop 2.10
我們選擇將 Hadoop 安裝至 /usr/local/ 中
$ sudo tar -zxf /usr/local/hadoop-2.10.0.tar.gz -C /usr/local # 解壓到/usr/local中 $ cd /usr/local/ $ sudo mv ./hadoop-2.10.0/ ./hadoop # 將文件夾名改為hadoop $ sudo chown -R hadoop ./hadoop # 修改文件權限
Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:
cd /usr/local/hadoop
./bin/hadoop version
7、Hadoop偽分布式配置
Hadoop 可以在單節點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件。
Hadoop 的配置文件位於 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。
修改配置文件 core-site.xml (通過 gedit 編輯會比較方便: gedit ./etc/hadoop/core-site.xml
),將當中的
<configuration> </configuration>
修改為下面配置:
<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>
同樣的,修改配置文件 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 的格式化:
./bin/hdfs namenode -format
成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。
如果在這一步時提示 Error: JAVA_HOME is not set and could not be found. 的錯誤,則說明之前設置 JAVA_HOME 環境變量那邊就沒設置好,請按教程先設置好 JAVA_HOME 變量,否則后面的過程都是進行不下去的。如果已經按照前面教程在.bashrc文件中設置了JAVA_HOME,還是出現 Error: JAVA_HOME is not set and could not be found. 的錯誤,那么,請到hadoop的安裝目錄修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”這行,然后,把它修改成JAVA安裝路徑的具體地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次啟動Hadoop。
接着開啟 NameNode 和 DataNode 守護進程。
./sbin/start-dfs.sh #start-dfs.sh是個完整的可執行文件,中間沒有空格
若出現如下SSH提示,輸入yes即可。
啟動時可能會出現如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN 提示可以忽略,並不會影響正常使用。
啟動完成后,可以通過命令 jps
來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 沒有啟動,請運行 sbin/stop-dfs.sh 關閉進程,然后再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode ,那就是配置不成功,請仔細檢查之前步驟,或通過查看啟動日志排查原因。
成功啟動后,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。