ScarShow

< IS >

Hadoop 安裝與設定

前言

Hadoop這套工具主要用做於平行運算,它其中包含兩個部份MapReduce以及HDFS

MapReduce的部份主要是用做於平行運算、而HDFS則是一套分散分散式檔案系統,用來儲存於平行運算時所需的大量資料。

由於某些原因必須使用到Hadoop中的HDFS來測試一些項目所以這邊就粗略紀錄一下Hadoop的安裝過程。

JDK安裝

由於Hadoop本身是使用Java來實作,所以在執行Hadoop之前我們必須先行安裝Java Development Kit(JDK)

下載JDK

JDK Download

根據你所使用的作業系統去選擇版本,在這邊我是用的是Ubuntu Linux 64bit的版本。

將JDK下載下來後,將JDK解壓縮到你想放置的位置,一般來說都會放在/opt目錄底下。

tar zxvf jdk-7u25-linux-x64.tar.gz
sudo mv jdk-7u25-linux-x64 /opt/jdk

修改環境變數

# 修改
sudo vim /etc/environment

# 填入以下內容
PATH=$PATH:"/opt/jdk/bin"
CLASS_PATH="/opt/jdk/lib"
JAVA_HOME="/opt/jdk"

只要上面的指令能顯示出正確版號,就已經完成JDK的設定了。

Hadoop安裝與設定

在實際的環境中我使用到了3台虛擬機器當作節點,所以以下是多節點的設定。

下載Hadoop

Hadoop Download

Hadoop目前分為幾個版次,如下:

  • 1.1.X - current stable version, 1.1 release
  • 1.2.X - current beta version, 1.2 release
  • 2.X.X - current alpha version
  • 0.23.X - simmilar to 2.X.X but missing NN HA.
  • 0.22.X - does not include security
  • 0.20.203.X - old legacy stable version
  • 0.20.X - old legacy version

一般來說我們選擇Stable Version就可以了,Hadoop下載完成後一樣可以解壓縮放置在/opt下。

tar zxvf hadoop-1.1.2.tar.gz
sudo mv hadoop-1.1.2 /opt/hadoop

修改環境變數

# 修改
sudo vim /etc/environment

# 填入以下內容
PATH=$PATH:"/opt/hadoop/bin"
HADOOP_HOME="/opt/hadoop"

修改Hadoop設定檔

/opt/hadoop/conf/hadoop-env.sh

設定Hadoop的啟動環境,在檔案中修改這一行加入JAVA_HOME的路徑。

export JAVA_HOME=/opt/jdk

如果執行後會出現$HADOOP_HOME is deprecated可以加入下面這一行。

export HADOOP_HOME_WARN_SUPPRESS="TRUE"

/etc/hosts

設定Host NameIP的對應,另外SSH的Authorized Keys就自行設定吧。

192.168.1.1 node01
192.168.1.2 node02
192.168.1.3 node03

/opt/hadoop/conf/core-site.xml

設定HDFS的Name Node設定給node01以及Hadoop的暫存路徑。

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://node01:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/tmp/hadoop/hadoop-${user.name}</value>
    <description>A base for other temporary directories.</description>
  </property>
</configuration>

/opt/hadoop/conf/hdfs-site.xml

設定HDFS的檔案複製數量。

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

/opt/hadoop/conf/mapred-site.xml

指定Job Tracker的位置,設定node01當作master。

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>node01:9001</value>
  </property>
</configuration>

master

node01

slave

node02
node03

啟動

當上面的設定都結束之後,就可以用rsync/opt/hadoop的檔案同步到各個節點上了。

接著可以使用以下指令檢查Hadoop的版本。

hadoop version

在第一次啟動Hadoop之前必須先格式化HDFS。

hadoop namenode -format

接著啟動Hadoop。

start-all.sh

打完收工

在這篇就單純紀錄安裝Hadoop的一些過程,但實際上我使用到的部份就只有HDFS,MapReduce的話目前沒有能夠拿來算的數據。

另外最近有點忙網誌已經很久沒動了,而且最近光打這篇紀錄就拖了半個月以上。