[轉] Hadoop 2.0 詳細安裝過程

1. 準備

建立用戶

useradd hadoop
passwd hadoop

建立相關的目錄

定義代碼及工具存放的路徑html

mkdir -p /home/hadoop/source
mkdir -p /home/hadoop/tools

定義數據節點存放的路徑到跟目錄下的hadoop文件夾, 這裏是數據節點存放目錄須要有足夠的空間存放java

mkdir -p /hadoop/hdfs
mkdir -p /hadoop/tmp
mkdir -p /hadoop/log

設置可寫權限node

chmod -R 777 /hadoop

定義java安裝程序路徑linux

mkdir -p /usr/java

2.安裝

安裝JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html
在以上連接下載 linux64 下的jdk的安裝文件: jdk-6u32-linux-x64.bin
1. 將下載好的 jdk-6u32-linux-x64.bin 通 過 SSH 上傳到 /usr/java 下web

scp -r ./jdk-6u32-linux-x64.bin root@hadoop1:/usr/java

2. 進入 JDK 安裝目錄 cd /usr/java 而且執行 chmod +x jdk-6u32-linux-x64.bin
3. 執行 ./jdk-6u32-linux-x64.bin
4. 配置環境變量,執行 cd /etc 命令後執行 vi profile , 在行末尾添加apache

export JAVA_HOME=/usr/java/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

5. 執行 chmod +x profile 將其變成可執行文件
6. 執行 source profile 使其配置當即生效vim

source /etc/profile

7. 執行 java -version 查看是否安裝成功restful

這個步驟全部機器都必須安裝併發

[root@hadoop1 bin]# java -version
java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)

修改主機名

修改主機名,全部節點均同樣配置
1. 鏈接到主節點 192.168.1.201 ,修改 network ,執行 vim /etc/sysconfig/network ,修改 HOSTNAME=hadoop1
2. 修改 hosts 文件, 執行 cd /etc 命令後執行 vi hosts ,在行末尾添加:oracle

192.168.1.201   hadoop1
192.168.1.202   hadoop2
192.168.1.203   hadoop3
192.168.1.204   hadoop4

3. 執行 hostname hadoop1
4. 執行 exit 後從新鏈接可看到主機名以修改 OK

其餘節點也修改主機名後添加 Host , 或者 host 文件能夠在後面執行 scp 覆蓋操做

配置SSH無密碼登錄

SSH 無密 碼原理簡介 :
首先在 hadoop1 上生成一個密鑰對,包括一個公鑰和一個私鑰,並將公鑰複製到全部的 slave(hadoop2-hadoop4) 上。
而後當 master 經過 SSH 鏈接 slave 時, slave 就會生成一個隨機數並用 master 的公鑰對隨機數進行加密,併發送給 master 。
最後 master 收到加密數以後再用私 鑰解密,並將解密數回傳給 slave ,slave 確 認解密數無誤以後就容許 master 不輸入密碼進行鏈接了

具體步驟(在root用戶和hadoop用戶登錄狀況下執行)

1 、執行命令 ssh-keygen -t rsa 以後一路回車,查看剛生成的無密碼鑰對: cd .ssh 後執行 ll
2 、把 id_rsa.pub 追加到受權的 key 裏面去。 執行命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3 、修改權限: 執行 chmod 600 ~/.ssh/authorized_keys
4 、確保 cat /etc/ssh/sshd_config 中存在以下內容

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如需修改, 則在修改後執行重啓 SSH 服 務命令使其生效 :service sshd restart

5 、將公鑰複製到全部的 slave 機器上 :scp ~/.ssh/id_rsa.pub 192.168.1.203 : ~/    而後 輸入 yes ,最後輸入 slave 機器的密碼
6 、在 slave 機器上建立 .ssh 文件夾 :mkdir ~/.ssh 而後執行 chmod 700 ~/.ssh (若文件夾以存在則不須要建立)
7 、追加到受權文件 authorized_keys 執行命令 :cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 而後執行 chmod 600 ~/.ssh/authorized_keys
8 、重複第 4 步
9 、驗證命令 : 在 master 機器上 執行 ssh 192.168.1.203 發現主機名由 hadoop1 變成 hadoop3 即成功,最後刪除 id_rsa.pub 文件 :rm -r id_rsa.pub
按照以上步驟分別配置 hadoop1,hadoop2,hadoop3,hadoop4 ,要求每一個均可以無密碼登陸

源碼下載

HADOOP 版本
最新版本 hadoop-2.0.5-alpha  安裝包 爲 hadoop-2.0.5-alpha.tar.gz
下載官網地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
下載到 /home/hadoop/source 目錄下

wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.0.5-alpha/hadoop-2.0.5-alpha.tar.gz

解壓目錄

tar zxvf hadoop-2.0.5-alpha.tar.gz

建立軟鏈接

cd /home/hadoop
ln -s /home/hadoop/source/hadoop-2.0.5-alpha/ ./hadoop

源碼配置修改

配置環境變量: vim /etc/profile
添加:

export HADOOP_DEV_HOME=/home/hadoop/hadoop
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

建立並配置hadoop-env.sh

vim /usr/hadoop/hadoop-2.0.5-alpha/etc/hadoop/hadoop-env.sh

在末尾添加 export JAVA_HOME=/usr/java/jdk1.6.0_27

core-site.xml

在 configuration 節點裏面添加屬性

<property>
    <name>hadoop.tmp.dir</name>
    <value>/hadoop/tmp</value>
    <description>A base for other temporary directories</description>
</property>
<property>
    <name>fs.default.name</name>
    <value>hdfs://192.168.1.201:9000</value>
</property>

添加 httpfs 的選項

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>192.168.1.201</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

slave配置

vim /home/hadoop/hadoop/etc/hadoop/slaves 
添加 slave 的 IP
192.168.1.202
192.168.1.203
192.168.1.204

配置hdfs-site.xml

vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
添加節點

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

<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hadoop/hdfs/name</value>
    <final>true</final>
</property>

<property>
    <name>dfs.federation.nameservice.id</name>
    <value>ns1</value>
</property>

<property>
    <name>dfs.namenode.backup.address.ns1</name>
    <value>192.168.1.201:50100</value>
</property>

<property>
    <name>dfs.namenode.backup.http-address.ns1</name>
    <value>192.168.1.201:50105</value>
</property>

<property>
    <name>dfs.federation.nameservices</name>
    <value>ns1</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.ns1</name>
    <value>192.168.1.201:9000</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.ns2</name>
    <value>192.168.1.201:9000</value>
</property>

<property>
    <name>dfs.namenode.http-address.ns1</name>
    <value>192.168.1.201:23001</value>
</property>

<property>
    <name>dfs.namenode.http-address.ns2</name>
    <value>192.168.1.201:13001</value>
</property>

<property>
    <name>dfs.dataname.data.dir</name>
    <value>file:/hadoop/hdfs/data</value>
    <final>true</final>
</property>

<property>
    <name>dfs.namenode.secondary.http-address.ns1</name>
    <value>192.168.1.201:23002</value>
</property>

<property>
    <name>dfs.namenode.secondary.http-address.ns2</name>
    <value>192.168.1.201:23002</value>
</property>

<property>
    <name>dfs.namenode.secondary.http-address.ns1</name>
    <value>192.168.1.201:23003</value>
</property>

<property>
    <name>dfs.namenode.secondary.http-address.ns2</name>
    <value>192.168.1.201:23003</value>
</property>

配置yarn-site.xml

添加節點

<property>
    <name>yarn.resourcemanager.address</name>
    <value>192.168.1.201:18040</value>
</property>

<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>192.168.1.201:18030</value>
</property>

<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>192.168.1.201:18088</value>
</property>

<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>192.168.1.201:18025</value>
</property>

<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>192.168.1.201:18141</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce.shuffle</value>
</property>

配置httpfs-site.xml

同步代碼到其餘機器

1.同步配置代 碼
先在 slaves 的機器上也 創 建

mkdir -p /home/hadoop/source

部署hadoop代 碼 , 創 建 軟鏈接 ,而後只要同步修改 過 的etc/hadoop下的配置文件便可
2.同步 /etc/profile
3.同步 /etc/hosts 

scp -r /etc/profile root@hadoop2:/etc/profile
scp -r /etc/hosts root@hadoop2:/etc/hosts

其餘機器以此操做

3. Hadoop啓動

格式化集羣

hadoop namenode -format -clusterid clustername

啓動hdfs

start-dfs.sh

開啓 hadoop dfs服務     

啓動Yarn

start-yarn.sh

啓動httpfs

httpfs.sh start
使得對外能夠提升 http 的 restful 接口服務

 4. 測試

安裝結果驗證

驗證hdfs

在各臺機器執行 jps 看進程是否都已經啓動 了

[root@hadoop1 hadoop]# jps
7396 NameNode
24834 Bootstrap
7594 SecondaryNameNode
7681 ResourceManager
32261 Jps
[root@hadoop2 ~]# jps
8966 Jps
31822 DataNode
31935 NodeManager
進程啓動正常

驗證是否能夠登錄

hadoop fs -ls hdfs://192.168.1.201:9000/ 
hadoop fs -mkdir hdfs://192.168.1.201:9000/testfolder 
hadoop fs -copyFromLocal ./xxxx hdfs://192.168.1.201:9000/testfolder 
hadoop fs -ls hdfs://192.168.1.201:9000/ testfolder
相關文章
相關標籤/搜索