-
新建虛擬機
-
修改虛擬機的靜態IP
-
修改主機名,添加主機和ip的映射關系
-
關閉防火墻 (1-4 通過腳本完成)
-
創建普通用戶
useradd jinghang
passwd jinghang -
配置普通用戶具有root權限
vim /etc/sudoers
在91行下添加如下內容:
jinghang ALL=(ALL) NOPASSWD:ALL
完成后:wq!
7.在/opt目錄下創建檔案夾(software存放壓縮軟體包,modul存放解壓后的軟體包)
-
在/opt目錄下創建module、software檔案夾
mkdir /opt/module /opt/software -
修改module、software檔案夾所有者和所屬組
chown jinghang:jinghang /opt/module /opt/software
8、關機拍攝快照
9、從拍照位置克隆三臺虛擬機
10、克隆虛擬機有兩個網卡(三臺都需要改):
-
進入這個檔案 vim /etc/udev/rules.d/70-persistent-net.rules
1.洗掉 NAME="eth0"這一行 2.修改NAME="eth1" -> NAME="eth0" (:wq!) 3.復制ADDR地址(虛擬mac地址) 4.進入到 vim /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=賦值ADDR地址(虛擬mac地址) :wq! 5.service network restart (如果失敗,reboot)
11、修改克隆后虛擬機的ip和主機名、ip主機的映射關系(使用腳本完成)
12、確定任務
-
簡介
HDFS: namenode datanode secondarynamenode YARN:resourcemanager nodemanager history: historyserver -
master(主節點) slaves(從節點)
-
hadoop集群默認3個副本,這里集群搭建3臺服務器,對應服務器上存放的服務
Hadoop03 Hadoop04 Hadoop05 datanode datanode datanode namenode resourcemanager secondarynamenode nodemanager nodemanager nodemanager historyserver
13、編輯 /etc/profile來配置環境
[jinghang@Hadoop02 hadoop-2.7.2]$ sudo vim /etc/profile
#配置JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$ PATH:$ JAVA_HOME/bin
#配置HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$ PATH:$ HADOOP_HOME/bin
export PATH=$ PATH:$ HADOOP_HOME/sbin
添加完環境source一下:
[jinghang@Hadoop02 hadoop-2.7.2]$ source /etc/profile
14、查看環境是否配置成功
[jinghang@Hadoop02 hadoop-2.7.2]$ hadoop version
[jinghang@Hadoop02 hadoop-2.7.2]$ java -version
如果java不是1.8.0_144版本
卸載之前的版本
rpm -qa | grep java (查看java安裝包)
sudo rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 (卸載jdk安裝包)
sudo rpm -e java-1.7.0-openjdk-1.7.0.181-2.6.14.10.el6.x86_64 --nodeps (忽略依賴卸載jdk安裝包)
15、配置集群
-
在hadoop-2.7.2目錄下:
vim etc/hadoop/hadoop-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144 vim etc/hadoop/yarn-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144 vim etc/hadoop/mapred-env.sh 修改JAVA_HOME路徑 export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置HDFS,在hadoop-2.7.2目錄下:
vim etc/hadoop/core-site.xml
添加設定
<! -- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop03:9000</value>
</property>
<! -- 指定Hadoop運行時產生檔案的存盤目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
vim etc/hadoop/hdfs-site.xml
添加配置
< !-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
< !-- 指定Hadoop輔助名稱節點主機配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Hadoop05:50090</value>
</property>
- 配置YARN,在hadoop-2.7.2目錄下:
vim etc/hadoop/yarn-site.xml
添加配置
<!-- Reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Hadoop04</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留時間設定7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
- 在hadoop-2.7.2目錄下,重命名mapred-site.xml.template:mv
etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
然后編輯: vim etc/hadoop/mapred-site.xml
添加配置:
<!-- 指定MapReduce運行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 歷史服務器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>Hadoop03:10020</value>
</property>
<!-- 歷史服務器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Hadoop03:19888</value>
</property>
16、分發
這時一臺服務器已經配置完成,將配置分發到其他的服務器上,
1、將Hadoop03服務器的hadoop-2.7.2分發給Hadoop04服務器
rsync -av /opt/module/hadoop-2.7.2 jinghang@Hadoop04:/opt/module/
2、將Hadoop03服務器的hadoop-2.7.2分發給Hadoop05服務器
rsync -av /opt/module/hadoop-2.7.2 jinghang@Hadoop05:/opt/module/
3、將Hadoop03服務器的 jdk1.8.0_144 分發給Hadoop04服務器
rsync -av /opt/module/ jdk1.8.0_144 jinghang@Hadoop04:/opt/module/
4、將Hadoop03服務器的 jdk1.8.0_144 分發給Hadoop05服務器
rsync -av /opt/module/ jdk1.8.0_144 jinghang@Hadoop05:/opt/module/
5、將Hadoop03服務器的 /etc/profile 分發給Hadoop04服務器的root用戶
rsync -av /etc/profile root@Hadoop04:/etc/profile
在Hadoop04服務器上 source /etc/profile
6、將Hadoop03服務器的/etc/hosts分發給Hadoop04服務器的root用戶
rsync -av /etc/hosts root@Hadoop04:/etc/hosts
7、分發完畢,檢查三臺服務器的java版本和hadoop版本
17、啟動集群(在集群的各臺服務器上啟動對應的服務行程)
1、啟動集群之前一定要格式化(/opt/module/hadoop-2.7.2)
bin/hdfs namenode -format ( has been successfully formatted)
如果格式化失敗了:
1.洗掉/opt/module/hadoop-2.7.2目錄下的data logs
2.bin/hdfs namenode --format
注意:格式化NameNode,會產生新的集群id,導致NameNode和DataNode的集群id不一致,
集群找不到已往資料,所以,格式NameNode時,一定要先洗掉data資料和log日志,
然后再格式化NameNode,
2 啟動HDFS服務
啟動namenode
sbin/hadoop-daemon.sh start/stop namenode
啟動datanode
sbin/hadoop-daemon.sh start/stop datanode
啟動secondarynamenode
檢查namenode的web頁面是否可以訪問
http://192.168.232.202:50070
3 啟動YARN服務
啟動resourcemanager
sbin/yarn-daemon.sh start/stop resourcemanager
啟動nodemanager
sbin/yarn-daemon.sh start/stop nodemanager
檢查yarn的web頁面:http://192.168.232.201:8088
4 開啟歷史服務
sbin/mr-jobhistory-daemon.sh start/stop historyserver
18、配置免密登錄,實作群起群停
1、生成公鑰和私鑰
ssh-keygen -t rsa
2、分發公鑰秘鑰
rsync -av /home/jinghang/.ssh jinghang@Hadoop04:/home/jinghang/
rsync -av /home/jinghang/.ssh jinghang@Hadoop05:/home/jinghang/
3、在namenode所在的服務器的hadoop-2.7.2目錄下
編輯 etc/hadoop/slaves
刪掉其他,添加
Hadoop03
Hadoop04
Hadoop05
4、將slaves檔案分發給 運行resourcemanager的服務器
rsync -av slaves jinghang@Hadoop04:/opt/module/hadoop-2.7.2/etc/hadoop/
5、現在可以群起群停了
1、在配置namenode的服務器(03)
start-dfs.sh stop-dfs.sh
2、在配置resourcemanager的服務器(04)
start-yarn.sh stop-yarn.sh
start-all.sh stop-all.sh
19、配置集群時間同步
檢查ntp是否安裝
rpm -qa|grep ntp
查看ntp的狀態:切記正在運行的狀態是不可以的,需要先停止,不然埠會被占用
[jinghang@Hadoop03 ~]$ service ntpd status
如果ntp服務開著,要先關閉ntpd服務
關閉
[jinghang@Hadoop03 ~]$ service ntpd stop
關閉開機自啟
[jinghang@Hadoop03 ~]$ sudo chkconfig ntpd off
修改 /etc/ntp.conf 組態檔
進入編輯:
[jinghang@Hadoop03 ~]$ sudo vim /etc/ntp.conf
修改1(授權192.168.1.0-192.168.1.255網段上的所有機器可以從這臺機器上查詢和同步時間)
解開注釋 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
修改2(集群在局域網中,不使用其他互聯網上的時間)
加上注釋
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加3(當該節點丟失網路連接,依然可以采用本地時間作為時間服務器為集群中的其他節點提供時間同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
修改/etc/sysconfig/ntpd 檔案
進入編輯:
[jinghang@Hadoop03 ~]$ sudo vim /etc/sysconfig/ntpd
增加內容如下(讓硬體時間與系統時間一起同步)
SYNC_HWCLOCK=yes
重新啟動ntpd服務
[jinghang@Hadoop03 ~]$ sudo service ntpd start
設定ntpd服務開機啟動
[jinghang@Hadoop03 ~]$ sudo chkconfig ntpd on
其他服務器配置
在其他機器配置10分鐘與時間服務器同步一次
root用戶登錄,撰寫定時任務:
[root@Hadoop04 jinghang]# crontab -e
*/10 * * * * /usr/sbin/ntpdate Hadoop03
現在修改任意的服務器時間,三臺服務器10分鐘后都可以實作同步時間
如果沒同步成功,開啟一下另外兩臺服務器的ntpd服務
service ntpd start
chkconfig ntpd on
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/168932.html
標籤:其他
上一篇:jenkins如何構建github上的代碼(ci cd)
下一篇:從歷史資料看阿里云和華為云?
