ubuntu server上安裝Hadoop步驟
1. Java安裝:
Because everything work with java.
$ sudo apt-get install openjdk-7-jdk
安裝之後,可以檢視java的版本資訊:
[email protected]:~$ 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:
- http://hadoop.praveendeshmane.co.in/hadoop/hadoop-2-6-4-pseudo-distributed-mode-installation-on-ubuntu-14-04.jsp
- https://zhuanlan.zhihu.com/p/25472769
- https://blog.csdn.net/boonya/article/details/55194170
- 《鳥哥的Linux私房菜》