前言
Hadoop這套工具主要用做於平行運算,它其中包含兩個部份MapReduce
以及HDFS
。
MapReduce
的部份主要是用做於平行運算、而HDFS
則是一套分散分散式檔案系統,用來儲存於平行運算時所需的大量資料。
由於某些原因必須使用到Hadoop
中的HDFS
來測試一些項目所以這邊就粗略紀錄一下Hadoop
的安裝過程。
JDK安裝
由於Hadoop本身是使用Java
來實作,所以在執行Hadoop之前我們必須先行安裝Java Development Kit(JDK)
。
下載JDK
根據你所使用的作業系統去選擇版本,在這邊我是用的是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目前分為幾個版次,如下:
- 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 Name
與IP
的對應,另外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的話目前沒有能夠拿來算的數據。
另外最近有點忙網誌已經很久沒動了,而且最近光打這篇紀錄就拖了半個月以上。