完全分佈式搭建
集羣準備
- 準備3臺客戶機(關閉防火牆、靜態ip,主機映射、主機名稱),主機名稱分別hadoop2,hadoop3,hadoop4
- 安裝jdk,配置環境變量
- 配置ssh,免密登陸==【拷貝密鑰的時候需要拷貝9次】==
ssh-keygen
- 配置時間同步
集羣規劃
hadoop2 | hadoop3 | hadoop4 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
修改配置文件(3臺機器都要修改)
hadoop-env.sh
export JAVA_HOME=/opt/install/自己的路徑
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop2:9000</value>
</property>
<!-- 指定hadoop運行時產生文件的存儲目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/install/hadoop/data/tmp</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop4:50090</value>
</property>
yarn-env.sh
export JAVA_HOME=/opt/install/jdk
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>hadoop3</value>
</property>
mapred-site.xml
<!-- 指定mr運行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
集羣分發配置文件
啓動集羣
格式化HDFS
hdfs dfs namenode -format
啓動HDFS(三臺機器)
start-all.sh
jps和web頁面查看【50070 和 8088端口】
時間同步
安裝ntp【hadoop2】
rpm -qa|grep ntp
yum -y install ntp
vi /etc/ntp.conf
-----------------------
#修改1(設置本地網絡上的主機不受限制。)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap爲
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爲
#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
systemctl restart ntpd
修改/etc/sysconfig/ntpd
vim /etc/sysconfig/ntpd
-----------------------
# 增加內容如下(讓硬件時間與系統時間一起同步)
SYNC_HWCLOCK=yes
重新啓動ntpd
service ntpd status
service ntpd start
chkconfig ntpd on
其他兩臺機器配置
crontab -e
----------------
*/10 * * * * /usr/sbin/ntpdate hadoop2
時間同步完成