Date:20180827 Monday 目前市場hadoop主流版本是2.7.x系列,下麵我們就以hadoop-2.7.3為例進行安裝 安裝前準備: 1.操作系統:cetos(6和7) 2.java版本:1.8 3.需要插件:wget, vim, openssh, ntpd 一.示列演示: 現在有 ...
Date:20180827 Monday
目前市場hadoop主流版本是2.7.x系列,下麵我們就以hadoop-2.7.3為例進行安裝
安裝前準備:
1.操作系統:cetos(6和7)
2.java版本:1.8
3.需要插件:wget, vim, openssh, ntpd
一.示列演示:
現在有3台機器,這裡以centos6.8-64位為例,以minimal方式安裝
192.168.1.101
192.168.1.102
192.168.1.103
在3台節點上都先關閉防火牆
iptables –F
chkconfig iptables off
setenforce 0
vi /etc/selinux/config
SELINUX=disable
1,分別為3台節點更改主機名
hostname c1(臨時修改)
的命令更改每一臺主機的主機名,並更改配置文件
vi /etc/sysconfig/network (永久修改)
HOSTNAME=c1
2. 這裡我們把ip映射成主機名,執行如下命令
vi /etc/hosts
在hosts文件中,如以下內容(主機和功能變數名稱一役對應)
192.168.1.101 c1
192.168.1.102 c2
192.168.1.103 c3
保存退出
3. 然後用root身份將hosts文件發送到其它節點上 (先在3個節點上安裝openssh)
(scp安裝命令)
yum install –y openssh-clients
scp /etc/hosts c2:/etc/
scp /etc/hosts c3:/etc/
在發送的過程中需要輸入root用戶的密碼
二、配置免密碼登錄
然後在家目錄下執行ssh-keygen -t rsa命令,不用管提示,一路回車,直到命令執行完成
再去其他節點執行相同的操作
例如: ssh node2 (跳轉到node2節點)
1. 生成本機的密鑰對
ssh-keygen -t rsa -P ''
2. 複製秘鑰去其他機器要免密登錄的機器,如:
ssh-copy-id c1
ssh-copy-id c2
ssh-copy-id c3
ssh-copy-id localhost
3. 驗證免密登錄
ssh c2
ssh c3
ssh c1
三、安裝JDK
下麵這個地址下載JAVA8---jdk1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
8u131及其他版本地址,推薦下載8u131的Oracle官方地址:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
yum install –y wget
JAVA環境的安裝和設置在3台節點都要進行配置
1. rpm -ivh jdk-8u131-linux-x64.rpm
2. vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131
3. 執行剛纔設置過的腳本
source /etc/profile
4. 驗證環境變數是否設置成功
env | grep JAVA
四、安裝Hadoop和啟動
下麵這個地址下載hadoop2.7.3版本的64位官方鏡像:
http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.3/
在c1下載後,輸入以下命令解壓
tar -zxvf hadoop-2.7.3.tar.gz
解壓完後刪除壓縮包,並修改文件夾名稱
mvhadoop-2.7.3 hadoop
mvhadoop /opt
在3台節點
/etc/profile.d/hadoop.sh中加上hadoop的環境變數設置,即
vi /etc/profile.d/hadoop.sh
export HADOOP_PREFIX=/opt/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
source /etc/profile
env | grep HADOOP
進入c1 的hadoop的配置文件目錄/opt/hadoop/etc/hadoop,鍵入命令及修改以下配置文件
1. hdfs的基礎配置,hdfs-site.xml文件
mkdir –p /opt/hadoop/data/nd
mkdir –p /opt/hadoop/data/dd
vi /opt/hadoo/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name> ##備份數
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name> ##namemode 要先創建
<value>/opt/hadoop/data/nd</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/dd</value> ##datanode 要先創建
</property>
</configuration>
2. 配置core-site.xml文件
mkdir -p /opt/hadoop/tmp/hadoop
vi /opt/hadoop/etc/hadoop/core-site.xml
<configuration>
<!--指定hdfs的nameservice為namenode -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://c1</value>
</property>
<!--指定hadoop臨時目錄,如果沒有請手動創建-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp/hadoop</value>
</property>
</configuration>
3. 配置datanode所在的節點:c1 c2 c3
vi /opt/hadoop/etc/hadoop/slaves
c1
c2
c3
4. 配置secondarynamenode到c2上
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>c2:50090</value>
</property>
</configuration>
5. 更改mapreduce配置文件,(在/opt/hadoop/etc/hadoop目錄下)
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6. 配置Yarn
vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>c1</value>
</property>
</configuration>
把配置完成的hadoop目錄複製到所有節點
scp –r /opt/hadoop c2:/opt
scp –r /opt/hadoop c3:/opt
若只修改配置文件,則只需複製etc目錄到所有節點,命令如下:
scp –r /opt/hadoop/etc c2:/opt/hadoop
scp –r /opt/hadoop/etc c3:/opt/hadoop
hdfs格式化和啟動
格式化命令如下:
/opt/hadoop/bin/hdfs namenode –format
啟動hdfs:
/opt/hadoop/sbin/start-dfs.sh
關閉hdfs:
/opt/hadoop/sbin/stop-dfs.sh
啟動yarn:
/opt/hadoop/sbin/start-yarn.sh
關閉yarn:
/opt/hadoop/sbin/stop-yarn.sh
啟動任務歷史伺服器:
/opt/hadoop/sbin/mr-jobhistory-daemon.sh starthistoryserver
關閉歷史伺服器:
/opt/hadoop/sbin/mr-jobhistory-daemon.sh stophistoryserver
hadoop訪問
在瀏覽器中訪問—如:
http://192.168.106.148:50070
yarn訪問:
http://192.168.106.148:8088
查錯
1. jps命令來查詢是否啟動了namenode 和datanode等進程
查看相應進程的配置文件
2. 看/opt/hadoop/sbin/start-dfs.sh啟動時的報錯信息
3. 用/opt/hadoop/sbin/stop-dfs.sh停止所有節點服務,再嘗試重啟進程
4. netstat –tan查看各個埠,是否有監聽,如50070等
5. 更改主節點配置後要copy配置去其他節點
6. 更改數據文件夾等內容的相關配置,要重新格式化hdfs,再啟動進程
7. 查看/opt/hadoop/data/dd目錄下的clusterid是否與namenode一致
註:可用jps查詢程式啟動情況