Hadoop叢集配置安裝,詳細步驟及講解
阿新 • • 發佈:2018-11-09
**涉及linux命令一定要注意大小寫和空格,linux系統對此敏感**
**hadoop叢集的安裝一定要靜下心一步一步來**
1、關閉防火牆(防火牆最好關閉,不然以後linux操作會有很多麻煩)
1)輸入命令: vi etc/selinux/config
其中改為 SELINUX=disable
2)關閉iptables服務分別執行以下命令:
service iptables status
chkconfig iptables off
reboot(重啟伺服器)
service iptables status
2、安裝jdk
1)先解除安裝Linux系統自帶的低版本的jdk a.檢視Linux系統自帶的低版本的jdk rpm -qa|grep jdk 查到的jdkjava-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64 b.解除安裝jdk:rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64 2).安裝rz檔案傳輸工具(版本號可能不一樣,無礙) a.yum list lrzsz b.yum install lrzsz.x86_64 3).使用rz命令上傳jdk的tar包 jdk-8u101-linux-x64.tar.gz 4).解壓jdk tar -zxvf jdk-8u101-linux-x64.tar.gz 5).新增環境變數 a.輸入命令:vi /etc/profile b.新增下面三段: export JAVA_HOME=/usr/etc/jdk1.8.0_101(路徑一定要注意,是你解壓後的jdk的報的路徑) export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar c.檢視是否安裝成功 輸入命令:java -version
3、新增固定IP(既設定DNS,新增固定IP是為了防止ip變更,設定成靜態IP一勞永逸)
1).輸入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 2).新增: ONBOOT=yes BOOTPROTO=none IPADDR=192.168.15.128 GATEWAY=192.168.15.2 DNS1=8.8.4.4 DNS2=222.85.85.85 (ONBOOT和BOOTPROTO原始檔中已存在修改成yes和none就行,IPADDR是 你要修改的靜態IP一般和現在的IP一樣。GATEWAY是閘道器IP,只需要將IPADDR最後面的幾個字改成2。例如:將192.168.15.128改為192.168.15.2) 3).儲存之後重啟network 輸入命令:service network restart
4、配置主節點名(192.168.15.128)
1).輸入命令:vi /etc/sysconfig/network
2).新增內容:(已經有的話改一下就行)
NETWORKING=yes
HOSTNAME=master
3).配置兩臺子節點名(192.168.15.129)和(192.168.15.130)
NETWORKING=yes
HOSTNAME=slave1(或HOSTNAME=slave2)
5、配置hosts
1).開啟主節點的hosts檔案,要將檔案的前兩行註釋掉 (註釋當前主機的資訊)並在檔案中新增所有hadoop叢集的主機資訊。
輸入命令:vi /etc/hosts
2).新增
192.168.15.128 master
192.168.15.129 slave1
192.168.15.130 slave2
3).儲存之後,將主節點的hosts分別拷貝到其他兩個子節點
scp /etc/hosts [email protected]:/etc/
scp /etc/hosts [email protected]:/etc/
4).重啟伺服器使之生效
輸入命令:reboot
5、去VMware 克隆linux虛擬機器,你也可以再配兩個,克隆便捷而且可以減少錯誤。
1).先關閉要克隆的虛擬機器,雙擊後,右鍵-->管理-->克隆
根據提示下一步,注意:**中間一定要選擇完全克隆,再下一步**
最後點選完成就ok,此步驟進行兩遍。
6、配置ssh無密碼訪問(不懂無密碼訪問,自己百度或查資料,再此不過多介紹)
1).在每個節點上分別執行:
ssh-keygen -t rsa
一直按回車直到生成結束執行結束之後每個節點上的/root/.ssh/目錄下生成了兩
檔案 id_rsa 和 id_rsa.pub。其中前者為私鑰,後者為公鑰
2).在主節點上執行:
cp id_rsa.pub authorized_keys
3).將子節點的公鑰拷貝到主節點並新增進authorized_keys
將兩個子節點的公鑰拷貝到主節點上,分別在兩個子節點上執行:
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_slave1.pub
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_slave2.pub
4)然後在主節點上,將拷貝過來的兩個公鑰合併到authorized_keys檔案中去
主節點上執行:
cat id_rsa_slave1.pub>> authorized_keys
cat id_rsa_slave2.pub>> authorized_keys
5).最後測試是否配置成功在master上分別執行
ssh slave1
ssh slave2
6).將主節點的authorized_keys檔案分別替換子節點的authorized_keys檔案
主節點上用scp命令將authorized_keys檔案拷貝到子節點的相應位置
scp authorized_keys [email protected]:/root/.ssh/
scp authorized_keys [email protected]:/root/.ssh/
7).先 cd /root/.ssh
然後輸入命令:ssh 主機名 可以自由切換即成功(例如:在主節點上輸入ssh
slave1),第一次需要輸入密碼.
7、安裝hadoop
1).在master主機上安裝hadoop,下載hadoop包,放在/usr目錄下,(也可以放在其他目錄下)
使用rz命令上傳hadoop的tar包
cd /user -->rz上傳
2). 解壓hadoop
tar -zxvf /usr/hadoop-2.6.4.tar.gz(版本號自己自行修改,要和自己的檔名對應)
3).
配置環境變數:vi /etc/profile
在末尾新增:
export HADOOP_HOME=/usr/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4).儲存後使新編輯的profile生效:
source /etc/profile
8、配置hadoop
1).配置hadoop配置檔案
需要配置的檔案的位置為/hadoop-2.6.4/etc/hadoop,需要修改的有以下幾個
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
其中:hadoop-env.sh和yarn-env.sh裡面都要新增jdk的環境變數:
hadoop-env.sh中
# The java implementation to use.
export JAVA_HOME=/root/jdk1.7.0_72
(只需該路徑即可,其他不用該。這是jdk的安裝路徑,請務必注意對應好自己
的角度看路徑,不要寫錯。)
# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol. Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}
yarn-env.sh中
# User for YARN daemons
export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
# resolve links - $0 may be a softlink
export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
# some Java parameters
export JAVA_HOME=/opt/java/jdk1.7.0_72 (和上面配置一樣)
core-site.xml中
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>(master為主機名,對應好)
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/temp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
hdfs-site.xml中
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value> supergroup</value>
</property>
</configuration>
mapred-site.xml中
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml中
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
slaves中
master
slave1
slave2
2).拷貝hadoop安裝檔案到子節點主節點上執行:
scp -r /usr/hadoop-2.6.4 [email protected]:/usr
scp -r /usr/hadoop-2.6.4 [email protected]:/usr
3).拷貝profile到子節點主節點上執行:
scp /etc/profile [email protected]:/etc/
scp /etc/profile [email protected]:/etc/
4).在兩個子節點上分別使新的profile生效:
source /etc/profile
5).格式化主節點的namenode
主節點上進入hadoop-2.6.4(hadoop的安裝目錄,即解壓後的hadoop目錄)目錄
然後執行:
hadoop namenode –format
新版本用下面的語句不用hadoop命令了
hdfs namenode –format
提示:successfully formatted表示格式化成功,不太好早,仔細一點,在靠下的位置
6).啟動hadoop
主節點上在hadoop-2.6.4目錄下執行:
./sbin/start-all.sh
9、驗證是否成功
主節點上輸入:jps
NameNode
SecondaryNameNode
ResourceManager
只要有以上三個程序即成功
每個子節點上輸入:jps
DataNode
NodeManager
只要有以上兩個程序即成功
這樣hadoop叢集配置成功
然後開啟瀏覽器,位址列中輸入 主機名:50070 (例如:192.168.15.128:50070)進入
http://192.168.79.133:50070/dfshealth.html#tab-overview網站即成功。