Linux 分散式部署
分散式Hadoop部署:
第一步:為每一臺機器生成一個公鑰。
命令: $ ssh-keygen -t rsa
第二步:將自己的公鑰發給其他機器
ssh-copy-id bigdata-hpsk03.huadian.com
NTP時間同步:通過ntp服務實現每臺機器的時間一致
方法一:通過Linux crontab實現
根據時間規則去執行某個命令
Contab -e
* * * * *
Command
分 時 日 月 周
00-59 00-23 1-31 1-12 0-7
比如:
每天凌晨兩點執行shell.sh
00 2 * * * sh/opt/datas/shell.sh
方法二:直接使用ntp服務同步外網時間伺服器
選擇一臺機器作為中間同步服務A,A與外網同步,B,C同步A。
配置A sudo vim /etc/ntp.conf
刪除預設配置:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
新增
配置A允許哪些機器與我同步
restrict 192.168.134.0 mask 255.255.255.0 nomodify notrap
配置A跟誰同步
server 202.112.10.36
配置本地同步
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
啟動ntp服務
sudo service ntpd start
配置B,C同步A
sudo vim /etc/ntp.conf
server 192.168.134.221
手動同步
sudo ntpdate 192.168.134.221
開啟ntp服務
sudo service ntpd start
方法三:偷懶:sudo date -s "2018-04-27 15:56:00"
將三臺機器的時間設定為一樣的。
部署Hadoop 需注意的是所有的主機目錄結構要相同
安裝jdk:參考:https://blog.csdn.net/zt13258579889/article/details/80057669
安裝完成之後 分發給其他機器:
scp -r jdk1.8.0_91 [email protected] :/opt/modules/
或者其他主機下載從你安裝了jdk的主機下載。
scp -r jdk1.8.0_91 [email protected] :/opt/modules/jdk1.8.0_91 /opt/modules/
然後配置環境變數。
##JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
安裝hadoop
第一步:下載解壓安裝
a、給壓縮包賦予可執行條件 $ sudo chmod u+x hadoop-2.7.3.tar.gz
b、解壓到指定位置中: tar -zxf hadoop-2.7.3.tar.gz -C/opt/modules/
解壓成功之後cd 到你解壓的檔案目錄下進行下一步
修改配置檔案
env.sh:配置環境變數hadoop-env mapred-env yarn-env
site.xml:配置使用者自定義需求
core-site:配hadoop全域性的一些屬性
fs.defaultFS:hdfs的入口
hadoop.tmp.dir hadoop臨時儲存目錄
hdfs-site:配置hdfs的屬性
dfs.replication:檔案副本數
dfs.permission.enabled
mapred-site:用於配置MapReduce的屬性
MapReduce執行在yarn上
yarn-site:用於配置yarn的屬性
Slaves 配置各個從節點。
將配置好的檔案分發到各個機器上。
從機器上下載檔案
執行測試:
第一步:格式化主節點的機器namenode
第二步:分別給各個機器開啟從節點 sbin/hadoop-daemo.sh start namenode
第三步:開啟Resoutcemanager和Node manager
主機開啟namenode
開啟從節點
其他機器同樣也開啟了
開啟Resource manager和nodemanager