1. 程式人生 > >ubuntu server上安裝Hadoop步驟

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了,有兩種方式:

  1. 分別啟動dfs和yarn:
$ start-dfs.sh
$ start-yarn.sh
  1. 一鍵全部啟動:
$ 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:

  1. http://hadoop.praveendeshmane.co.in/hadoop/hadoop-2-6-4-pseudo-distributed-mode-installation-on-ubuntu-14-04.jsp
  2. https://zhuanlan.zhihu.com/p/25472769
  3. https://blog.csdn.net/boonya/article/details/55194170
  4. 《鳥哥的Linux私房菜》