大数据软件之搭建完全分布式Hadoop

集群准备

  1. 准备三台客户机(关闭防火墙、静态ip、主机映射、主机名称),主机名分别为Hadoop2,Hadoop3,Hadoop4(具体虚拟机安装步骤在我之前的博客有写到)
  2. 安装jdk,配置环境变量(具体步骤在我之前的博客里也有写到)
  3. 配置虚拟机免密以及互联免密(具体步骤在我之前的博客里也有写到)
  4. 配置时间同步

集群规划

hadoop2 hadoop3 hadoop4
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
YARN NodeManager ResourceManager、NodeManager NodeManager

具体步骤

提示:我们可以先在一台虚拟机上安装hadoop和修改hadoop配置文件,然后再远程复制到其他两台虚拟机上,可以节省很多时间。
(具体hadoop安装步骤在我之前的博客里有写过)
搭建真分布式主要就是修改配置文件
(以下的配置文件在hadoop软件文件夹中的etc文件夹下的hadoop文件夹中)

  1. hadoop-env.sh
    找到配置JAVA_HOME的位置,把后面改成自己jdk安装的路径位置
  2. core-site.xml
    在configuration标签中添加如下配置:
	<!-- 指定HDFS中NameNode的地址 -->
	
		fs.defaultFS</name>
        hdfs://hadoop2:9000</value>
	</property>

	<!-- 指定hadoop运行时产生文件的存储目录 -->
	
		hadoop.tmp.dir</name>
		/opt/install/hadoop/data/tmp</value>
	</property>
  1. hdfs-site.xml
    在configuration标签中添加如下配置:
	
		dfs.replication</name>
		3</value>
	</property>

	
        dfs.namenode.secondary.http-address</name>
        hadoop4:50090</value>
    </property>
  1. yarn-env.sh
    随便找个位置添加自己JAVA_HOME的路径地址
export JAVA_HOME=自己jdk的安装路径
  1. yarn-site.xml
    在configuration标签中添加如下配置:
	<!-- reducer获取数据的方式 -->
	
		 yarn.nodemanager.aux-services</name>
		 mapreduce_shuffle</value>
	</property>

	<!-- 指定YARN的ResourceManager的地址 -->
	
		yarn.resourcemanager.hostname</name>
		hadoop3</value>
	</property>
  1. mapred-site.xml
    在configuration标签中添加如下配置:
	<!-- 指定mr运行在yarn上 -->
	
		mapreduce.framework.name</name>
		yarn</value>
	</property>
  1. slaves
    进入slaves中,删除原文件中的localhost,添加你三台虚拟机的主机名,如下:
hadoop2
hadoop3
hadoop4

至此就全部安装配置完毕,然后远程拷贝到其他两台虚拟机
首先进入到安装hadoop文件的上一层目录文件夹

#远程拷贝到其他两台虚拟机
scp -r hadoop/ root@hadoop3:$PWD
scp -r hadoop/ root@hadoop4:$PWD
#PWD代表拷贝到与Hadoop2相同的目录下,如果不需要可以自己定义路径

启动集群

在启动之前首先格式化HDFS

hadoop namenode -format

启动HDFS【hadoop2】

start-dfs.sh

启动Yarn【hadoop3】

start-yarn.sh

然后jps和web页面查看【50070和8088端口】

三台机器的进程结果如下即可表示成功
大数据软件之搭建完全分布式Hadoop_第1张图片

时间同步

三台机器全部都要安装ntp,然后修改主机的配置文件,其他两台机器不要改

#首先检查自己虚拟机有没有安装过ntp
rpm -qa|grep ntp
#安装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
#更改完成保存退出


vi /etc/sysconfig/ntpd
#增加以下配置(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes

重新启动ntpd

service ntpd status
service ntpd start
chkconfig ntpd on

其他机器配置

#在其他两台机器输入:
crontab -e
#然后添加如下配置(每十秒和主机校对一次时间)
*/10 * * * * /usr/sbin/ntpdate hadoop2

修改完成后在两个窗口都输入:

ntpdate hadoop2
#表示其他两台机器都和主机时间同步

最后可以在shell窗口输入date验证一下有没有同步

完全分布式环境搭建完毕!!!

你可能感兴趣的:(Hadoop)