一、系統環境
os : Ubuntu 16.04 LTS 64bit
jdk : 1.8.0_161
hadoop : 2.6.4
部署時使用的用戶名為hadoop,下文中需要使用用戶名的地方請更改為自己的用戶名。
二、安裝步驟
1、安裝並配置ssh
1.1 安裝ssh
輸入命令: $ sudo apt-get install openssh-server ,安裝完成后使用命令 $ ssh localhost 登錄本機。首次登錄會有提示,輸入yes,接着輸入當前用戶登錄電腦的密碼即可。
1.2 配置ssh無密碼登錄
首先使用命令 $ exit 退出上一步的ssh,然后使用ssh-keygen生成密鑰,最后將密鑰加入授權即可,命令如下:
$ exit # 退出剛才的 ssh localhost
$ cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
$ ssh-keygen -t rsa # 會有提示,都按回車就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 加入授權
配置完成之后再使用 $ ssh localhost 登錄就不需要密碼了。
2、安裝並配置java
2.1 安裝java
去官方網站下載jdk-8u161-linux-x64.tar.gz ,使用如下命令解壓並安裝到/usr/local/目錄下:
$ cd ~/下載
$ sudo tar -xzf jdk-8u161-linux-x64.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv jdk1.8.0_161/ java
2.2 配置環境變量
使用命令 $ vim ~/.bashrc 編輯文件~/.bashrc,在該文件開頭添加以下內容:
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
最后使用命令 $ source ~/.bashrc 讓環境變量生效。使用java -version檢查是否配置正確,正確配置如下圖:
3、hadoop的安裝與配置
3.1 hadoop下載與安裝
去hadoop官網下載hadoop-2.6.4.tar.gz ,使用以下命令安裝到/usr/local/目錄下:
$ sudo tar -xzf hadoop-2.6.4.tar.gz -C /usr/local $ cd /usr/local $ sudo mv hadoop-2.6.4/ hadoop $ sudo chown -R hadoop ./hadoop #前一個hadoop為用戶名,更改為自己的用戶名即可
將以下代碼添加到~/.bashrc中:
export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin
然后使用命令 source ~/.bashrc 讓環境變量生效,使用命令 hadoop version 檢查環境變量是否添加成功,成功如下:
3.2 hadoop單機配置
安裝后的hadoop默認為單機配置,無需其他配置即可運行。使用hadoop自帶的單詞統計的例子體驗以下:
$ cd /usr/local/hadoop $ mkdir ./input $ cp ./etc/hadoop/*.xml ./input # 將配置文件作為輸入文件 $ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+' $ cat ./output/* # 查看運行結果
結果為:
1 dfsadmin
3.3 hadoop偽分布式配置
hadoop的配置文件存放在/usr/local/hadoop/etc/hadoop下,要修改該目錄下的文件core-site.xml和hdfs-site.xml來達到實現偽分布式配置。
修改core-site.xml,將<configure></configure>修改為:
<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,將<configure></configure>修改為:
<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>
配置完成后在/usr/local/hadoop下使用命令 $ ./bin/hdfs namenode -format 實現namenode的格式化,成功后會有“successfully formatted”及“Exiting with status 0”的提示,如下圖:
接着使用sbin/start-dfs.sh來開啟namenode和datanode,開啟后使用命令jps查看是否開啟成功,如下圖:
namenode和datanode都要出現才算成功。
4、配置yarn(非必須)
在/usr/local/hadoop下操作
$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
然后修改etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
啟動資源管理器
$ ./sbin/start-yarn.sh
$ ./sbin/mr-jobhistory-daemon.sh start historyserver #查看歷史任務
啟動成功后可以在http://localhost:8088/cluster訪問集群資源管理器。
此時使用jps可以看到:
關閉資源管理器
$ ./sbin/stop-yarn.sh
$ ./sbin/mr-jobhistory-daemon.sh stop historyserver
三、參考