完全分布式搭建
集群准备
- 准备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
时间同步完成