作业二:Hadoop演进与Hadoop生态

1.了解对比Hadoop不同版本的特性,可以用图表的形式呈现。
当前主要的Hadoop版本有以下几种:
1、Apache Hadoop 的2.0版本,它的模块主要有以下几个:
(1)Hadoop通用模块,支持其他Hadoop模块的通用工具集;
(2)Hadoop分布式文件系统,支持对应数据高吞吐量访问的分布式文件系统;
(3)用于作业调度和集群资源管理的Hadoop YANRN框架;
(4)Hadoop MapReduce,基于YARN的大数据并行处理系统。
2、Cloudera Hadoop:Cloudera版本层次更加清晰,且它提供了适用于各种操作系统的Hadoop安装包,可直接使用apt-get或者yum命令进行安装,更加省事。
3、Hortonworks:Hortonworks 的主打产品是Hortonworks Data Platform (HDP),也同样是100%开源的产品,HDP除了常见的项目外还包含了Ambari,一款开源的安装和管理系统。HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook 开源的Hive中。Hortonworks的Stinger开创性地极大地优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Windows Server和Windows Azure在内的Microsoft Windows平台上本地运行。
 
2. Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。

 

 
Hadoop生态圈中包含很多组件,比如HDFS、Mapreduce、Hive、Hbase等等
HDFS 分布式文件系统。存储是大数据技术的基础
Mapreduce 计算模型
Yarn 改善MapReduce的缺陷
Hive 数据仓库
Hbase 数据仓库
Pig 数据分析平台,侧重数据查询和分析,而不是对数据进行修改和删除等。需要把真正的查询转换成相应的MapReduce作业
Zookeeper 协调服务
Avro 基于二进制数据传输高性能的中间件。数据序列化系统,可以将数据结构或对象转化成便于存储或传输的格式,以节约数据存储空间和网络传输贷款。适用于远程或本地大批量数据交互。
Chukwa 数据收集系统,帮助hadoop用户清晰了解系统运行的状态,分析作业运行的状态及HDFS的文件存储状态
组件的相互关系:
HDFS:hadoop文件系统包含local(支持有客户端校验和的本地文件系统)、har(构建在其他文件系统上进行归档文件的文件系统,在hadoop主要被用来减少namenode的内存使用)、kfs(cloudstroe前身是Kosmos文件系统,是类似于HDFS和Google的GFS的文件系统)、ftp(由FTP服务器支持的文件系统)
Mapreduce:可用hive简化操作,完成简单任务
Hbase:查询简单、不涉及复杂关联的场景,如海量流水数据、交易记录、数据库历史数据
Pig:可看做简化mapreduce的高级语言
Avro:Hadoop的RPC
Chukwa:Scribe存储在中央存储系统(NFS)、Kafka、Flume。看到一篇对于日志系统讲的比较清晰的,也做了分类比较,再次引用给大家。
 
3.官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。
步骤一:环境准备
在Hadoop安装与配置之前,需要准备的环境:虚拟机、Linux系统、配置JDK环境变量。
若以上还没准备,请参考以下文章:
1.VMware下载安装及CentOS7下载安装
2.Linux安装jdk1.8和配置环境变量
步骤二:下载
1.首先打开官网http://www.apache.org/,再在Downloads菜单栏在选择Distribution,跳转到https://downloads.apache.org/页面,
如下图所示,我们可以看到有很多种产品,点击我们需要的是Hadoop

 

点击hadoop–》core–》然后选择要下载的版本
我是下载的最新的稳定版本–》stable
然后点击hadoop-3.3.0.tar.gz进行下载

 

步骤三:上传并解压
1.在/usr/local/src/目录下为Hadoop创建个目录:mkdir hadoop
2.rz上传:linux与windows 通过SecureCRT进行文件传输方式
3.解压:tar -zxvf hadoop-3.3.0.tar.gz
 
步骤四:分析解压的hadoop目录
如下图所示:
bin文件夹中存放的是一些可执行的脚本(我们用到的比较多的是hadoop、hdfs、yarn);
etc存放的是hadoop的配置文件,这个etc跟linux根目录下的etc是不一样的;
include存放的是本地库的一些头文件;
lib存放的是本地库的文件其所依赖的jar包在share目录下;
sbin里面存放的是关于启动和停止相关的内容(如 start-all.sh、start-dfs.sh、stop-all.sh、stop-dfs.sh等);
 
步骤五:修改5个配置文件(以解压:tar -zxvf hadoop-2.9.1.tar.gz为例)

接下来我们开始修改5个配置文件了,首先我们进入/usr/local/src/hadoop/hadoop-2.9.1/etc/hadoop的配置文件目录(如下图所示),我们可以看到有很多配置文件。

1.修改配置文件 hadoop-env. sh

输入命令vim hadoop-env. sh,按回车,我们可以看到该文件的内容,如下图所示,其中有一行是配置JAVA环境变量的,初始值默认是${JAVA_HOME},我们需要把它改成具体的jdk所在的目录。

[root@localhost hadoop]# find / -name jdk

/usr/local/src/jdk

[root@localhost hadoop]# cd /usr/local/src/jdk

[root@localhost jdk]# ll

total 181192

drwxr-xr-x. 8   10  143       255 Mar 15  2017 jdk1.8

-rw-r--r--. 1 root root 185540433 Mar 16  2017 jdk-8u131-linux-x64.tar.gz

[root@localhost jdk]# cd jdk1.8/

[root@localhost jdk1.8]# pwd

/usr/local/src/jdk/jdk1.8

[root@localhost jdk1.8]#

#查看JDK安装目录

[root@localhost ~]# echo $JAVA_HOME

/usr/local/src/jdk/jdk1.8

[root@localhost ~]#我的JDK路径:/usr/local/src/jdk/jdk1.8
修改如下:

2.修改配置文件core-site.xml

添加的内容在当中,需要说明的是,第一个property配置的是HDFS的NameNode的地址(主机名:端口号),第二个property配置的内容用来指定Hadoop运行时产生的文件的存放目录(初始化的tmp目录,后面格式化时会自动生成tmp文件)。添加完后按ESC键退出编辑模式,输入:wq保存并退出当前配置页面。

<configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://MrZhang:9090</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/local/src/hadoop/tmp</value>
        </property>
</configuration>
3.修改配置文件hdfs-site.xml

该文件是Hadoop的底层存储配置文件。
第一个key|value键值对表示:key表示namenode存储hdfs名字的空间的元数据文件;value表示自己指定的目录(不创建也会自动生成)。
第二个key|value键值对表示:key表示datanode上的一个数据块的物理的存储位置文件;value表示自己指定的目录(不创建也会自动生成)。
第三个key|value键值对表示:用来指定HDFS保存数据副本的数量(现在是伪分布式,所以数量是1,将来的集群副本数量默认是3)

<configuration>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/src/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/src/hadoop/hdfs/data</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
</configuration>
4.修改配置文件mapred-site.xml

我们在hadoop目录下发现文件列表中只有mapred-site.xml.template而没有mapred-site.xml,因此我们需要先把mapred-site.xml.template的后缀.template去掉(即重命名)

该配置告诉Hadoop以后mapreduce(MR)运行在YARN上。(表示MapReduce使用yarn框架)

<configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
</configuration>
5.修改配置文件yarn-site.xml

需要说明的是,第一个property配置的内容是NodeManager获取数据的方式shuffle,第二个property配置的内容是指定YARN的ResourceManager的地址。

<configuration>

        <property>

            <name>yarn.nodemanager.aux-services</name>

            <value>mapreduce_shuffle</value>

        </property>

        <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>MrZhang</value>

        </property>

</configuration>

至此,修改完了五个配置文件!

另外,若搭建Hadoop集群的话,只需要把这台安装配置好的Hadoop复制到另外Linux指定目录即可:

scp -r /usr/local/src/hadoop/hadoop-2.9.1/ 其他Linux系统:指定路径

 #比如

 scp -r /usr/local/src/hadoop/hadoop-2.9.1/ Hadoop-note2:/usr/local/src/hadoop/hadoop-2.9.1

 #输入密码

并修改第六个配置文件:slaves文件,里面写上从节点所在的主机名字

6.修改配置文件slaves

vi slaves

MrZhang

MrZhang2

MrZhang3

 

4.评估华为hadoop发行版本的特点与可用性。

华为在硬件上具有天然的优势,在网络,虚拟化,PC机等都有很强的硬件实力。华为的FusionInsight Hadoop版本基于Apache Hadoop,构建NameNode、JobTracker、HiveServer的HA功能,进程故障后系统自动Failover,无需人工干预,这个也是对Hadoop的小修补,远不如MapR解决的彻底。华为在Hadoop社区中的Contributor和Committer也是国内最多的,算是国内技术实力较强的公司。

技术特点:

华为FusionInsight HD发行版紧随开源社区的最新技术,快速集成最新组件,并在可靠性、安全性、管理性等方面做企业级的增强,持续改进,持续保持技术领先。

 

posted @ 2020-09-18 15:41  颜伟发  阅读(167)  评论(0)    收藏  举报