標籤:
From: http://blog.csdn.net/yinan9/article/details/16805275
環境:CentOS 5.10(虛擬機器下)
- [[email protected] hadoop]# lsb_release -a
- LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
- Distributor ID: CentOS
- Description: CentOS release 5.10 (Final)
- Release: 5.10
- Codename: Final
準備
Jdk安裝與配置
Oracle官網下載jdk,這裡我下載的是jdk-6u45-linux-i586.bin,並上傳到虛擬機器上,使用root使用者,執行以下命令建立檔案夾,移動安裝檔案,執行安裝。
- mkdir /usr/java
mv/home/auxu/Desktop/jdk-6u45-linux-i586.bin /usr/java
cd /usr/java
./jdk-6u45-linux-i586.bin
配置環境變數
- vi /etc/profile
加入
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
儲存完畢之後,執行:
- source /etc/profile
驗證java配置
[[email protected] java]# java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)
可以簡單寫一個java class來進行測試,這裡不多說明
建立Hadoop使用者及相關應用檔案夾
同樣使用root使用者建立一個名為hadoop的新使用者
useradd hadoop
passwd hadoop
建立應用檔案夾,以便進行之後的hadoop配置
mkdir /hadoop
mkdir /hadoop/hdfs
mkdir /hadoop/hdfs/data
mkdir /hadoop/hdfs/name
mkdir /hadoop/mapred
mkdir /hadoop/mapred/local
mkdir /hadoop/mapred/system
mkdir /hadoop/tmp
將檔案夾屬主更改為hadoop使用者
chown -R hadoop /hadoop
設定Hadoop使用者使之可以免密碼ssh到localhost
su - hadoop
ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
cd /home/hadoop/.ssh
chmod 600 authorized_keys
注意這裡的許可權問題,保證.ssh目錄許可權為700,authorized_keys為600
驗證:
- [[email protected] .ssh]$ ssh localhost
- Last login: Sun Nov 17 22:11:55 2013
ssh localhost之後無需輸入密碼就可以串連,配置OK
安裝配置Hadoop
建立目錄並安裝
重新切回root使用者,建立安裝目錄
mkdir /opt/hadoop
將安裝檔案移動到以上建立目錄,確保其執行許可權,然後執行
mv /home/auxu/Desktop/hadoop-1.2.1.tar.gz /opt/hadoop
- cd /opt/hadoop
- tar -xzvf hadoop-1.2.1.tar.gz
將hadoop安裝目錄的屬主更改為hadoop使用者
chown -R hadoop /opt/hadoop
切換到hadoop使用者,修改設定檔,這雷根據前面建立的應用檔案進行相關配置,依照各自情況而定
- su - hadoop
- cd /opt/hadoop/hadoop-1.2.1/conf
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hdfs/data</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
hadoop-env.sh
配置JAVA_HOME 與 HADOOP_HOME_WARN_SUPPRESS。
PS:HADOOP_HOME_WARN_SUPPRESS這個變數可以避免某些情況下出現這樣的提醒 "WARM: HADOOP_HOME is deprecated”
export JAVA_HOME=/usr/java/jdk1.6.0_45
export HADOOP_HOME_WARN_SUPPRESS="TRUE"
source hadoop-env.sh
重新設定 /etc/profile 檔案,最終如:
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/hadoop/hadoop-1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使更新後的設定檔生效
- source /etc/profile
測試hadoop安裝
[[email protected] conf]$ hadoop version
Hadoop 1.2.1
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
From source with checksum 6923c86528809c4e7e6f493b6b413a9a
啟動HADOOP
需要先格式化namenode,再啟動所有服務
- hadoop namenode -format
- start-all.sh
查看進程
[email protected] conf]$ jps
6360 NameNode
6481 DataNode
6956 Jps
6818 TaskTracker
6610 SecondaryNameNode
6698 JobTracker
如果能找到這些服務,說明Hadoop已經成功啟動了。
如果有什麼問題,可以去/opt/hadoop/hadoop-1.2.1/logs查看相應的日誌
最後就可以通過以下連結訪問haddop服務了
localhost:50030/ for the Jobtracker
localhost:50070/ for the Namenode
localhost:50060/ for the Tasktracker
Hadoop JobTracker:
Hadoop Namenode:
Hadoop TaskTracker:
PS:完全分布式的安裝與偽分布式安裝大同小異,注意如下幾點即可
1.叢集內ssh免使用者登入
2.設定檔中指定具體的ip地址(或機器名),而不是localhost
3.配置masters和slaves檔案,加入相關ip地址(或機器名)即可
以上配置需要在各個節點上保持一致。
[轉]CentOS下安裝偽分布式Hadoop-1.2.1