我们先来了解下大数据hadoop的优势:
1、高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2、搞扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3、高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4、高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
hadoop的组成
Hadoop HDFS:
一个高可靠、高吞吐量的分布式文件系统。
Hadoop MapReduce:
一个分布式的离线并行计算框架。
Hadoop YARN:
作业调度与集群资源管理的框架。
Hadoop Common:
支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)。
ok,了解后我们来搭建hadoop集群模式
1、首先,我们应该要有一个集群规划部署,下面是我本地的集群规划部署:
看表中,bigdata111,bigdata112,bigdata113是需要我们在虚拟机上搭建的三台机器(注意,要完全配置好IP,JDK以及HADOOP的环境,上一篇文章已经做好),这里可以先搭建一台完整的机器,剩下两台进行克隆就好,但是后面需要更改IP。
bigdata111机器中放Namenode主节点,节点bigdata112是yarn的主节点;
2、接下来进行文件的配置
配置文件在/opt/module/hadoop-2.8.4/etc/hadoop中;
下面是我整理好的配置文件:
(1)配置core-site.xml文件:这里仅配置namenode主节点的机器,我放的是bigdata111
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata111:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
/opt/module/hadoop-2.8.4/data/tmp
</property>
(2)配置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>bigdata112</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>
(3)配置hdfs-site.xml文件;
<!--数据冗余数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata111:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(4)配置mapred-site.xml文件;
<!-- 指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata112:10020</value>
</property>
<!--历史服务器页面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata112:19888</value>
</property>
最后,配置slaves文件,将三个机器的名称写入文件内,在进行配置hadoop-env.sh文件,写入jdk路径,export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)
3、将上面四个文件位置完成后,需要将hadoop进行格式化
为什么要格式化?
NameNode主要被用来管理整个分布式文件系统的命名空间(实际上就是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以,NameNode会持久化这些数据(保存到本地的文件系统中)。对于第一次使用HDFS,在启动NameNode时,需要先执行-format命令,然后才能正常启动NameNode节点的服务。
格式化命令:hadoop namenode -format
4、启动hdfs、yarn
在bigdata111上启动hdfs,start-dfs.sh,启动之后使用jps命令查看进程;
在bigdata112上启动yarn,start-yarn.sh,启动之后使用jps命令查看进程;
5、登录web端,查看(登录web端要关闭防火墙)
hdfs:192.168.1.121:50070(IP自己搭建虚拟机时设置)
yarn:192.168.1.122:8088
这样,我们就完成了hadoop集群的搭建;
最后,谢谢大家!一起成长!