1. Java安裝:
Because everything work with java.
$ sudo apt-get install openjdk-7-jdk
安裝之后,可以查看java的版本信息:
wu@ubuntu:~$ java -version
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
2. 創建Group
我們將會創建一個group,並配置這個group的權限,之后將user加到這個group之中。在下列程序中hadoop是group name,hduser是該group中的user。
將兩個命令在ubuntu server的terminal里輸入。
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
3. 配置hduser的權限
打開visudo,配置hduser的權限:
$ sudo visudo
在nano編輯器里增加下面這句話,即給予hduser和root一樣的權限
hduser ALL=(ALL) ALL
4. 創建hadoop目錄並修改權限
$ sudo mkdir /usr/local/hadoop
$ sudo chown -R hduser /usr/local/hadoop
$ sudo chmod -R 755 /usr/local/hadoop

5. 切換用戶(Switch User)
su hduser
6. 下載解壓hadoop
這里采用鏡像下載:
$ wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.9.1.tar.gz
下載完之后解壓:
$ tar xzf hadoop-2.9.1.tar.gz
將解壓后的目錄/hadoop-2.9.1中的所有內容移動到/usr/local/hadoop
mv hadoop-2.9.1/* /usr/local/hadoop
7. 配置環境變量
編輯$HOME/.bashrc 文件,添加java和hadoop路徑
$ vim $HOME/.bashrc
在 .bashrc 中添加如下變量:
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/native"
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
重新加載 .bashrc 文件
$ source $HOME/.bashrc
8. 生成ssh
生成一個新的ssh public/private key pair在你的本機上,我們需要本機訪問ubuntu server無需密碼。這一步具體操作可見:Mac OS利用ssh訪問ubuntu虛擬機及雲端操作的第5節內容。
9. 添加localhost
$ ssh localhost
10. 配置文件
1.將當前目錄移動到/usr/local/hadoop/etc/hadoop
$ cd $HADOOP_HOME/etc/hadoop
配置hadoop-env.sh文件,將以下內容添加到文件中。
# remove comment and change java_HOME
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
2.配置core-site.xml文件,該文件用於定義系統級別的參數,如HDFS,URL,Hadoop的臨時目錄等。所以,添加以下內容到configure中:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
3.配置hdfs-site.xml文件,該文件主要有hdfs參數,如名稱節點和數據節點的存放位置,文件副本的個數,文件讀取權限等。所以,添加以下內容到configure中:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/app/hadoop/tmp/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/app/hadoop/tmp/datanode</value>
</property>
4.配置yarn-site.xml文件,該文件主要包含集群資源管理系統參數,如配置ResourceManager, NodeManger的通信端口,web監控端口等。所以,添加以下內容到configure中:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
5.復制文件mapred-site.xml.template,並粘貼為 mapred-site.xml。
$ cp mapred-site.xml.template mapred-site.xml
配置mapred-site.xml文件,它里面主要是Mapreduce參數,包含JobHistory Server和應用程序兩部分,如reduce任務的默認個數、任務所能夠使用內存的默認上限等。所以,將以下內容加入到文件中:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6.編輯slaves文件,添加如下一句話到文件中:
localhost
11. 添加/app/hadoop/tmp目錄,並改變權限:
$ sudo mkdir /app/hadoop/tmp
$ sudo chown -R hduser /app/hadoop/tmp
$ sudo chmod -R 755 /app/hadoop/tmp
12. 格式化
我們現在完成所有的配置,所以在啟動集群之前,我們需要格式化namenode。
將工作目錄移動到/usr/local/hadoop/sbin,並進行格式化:
$ cd /usr/local/hadoop/sbin
$ hadoop namenode -format
13. 啟動
是時候啟動hadoop了,有兩種方式:
- 分別啟動dfs和yarn:
$ start-dfs.sh
$ start-yarn.sh
- 一鍵全部啟動:
$ start-all.sh
14. JPS
一旦dfs啟動沒有任何錯誤,我們可以使用命令JPS(java virtual machine process status tool)檢查一切是否正常工作,我們應該看到至少一個Namenode和Datanode
$ jps

15. 網頁查看
由於我們是在ubuntu server中配置的,沒有ui界面,所以我們只能通過主機來訪問。用http://your IP address:50070上的Namenode的Web界面檢查Apache Hadoop的狀態。

16.關閉
$ stop-all.sh
Reference:
