第二次作业 Hadoop演进与Hadoop生态
1.对比Hadoop不同版本的特性:
Apache Hadoop
Apache Hadoop是apache提供的官方版本,以yarn框架的出现为标志分为Hadoop第一代和Hadoop第二代,第一代的Hadoop包含三个大版本:0.20.x 、0.21.x 、0.22.x,其中除了0.20.x(后来演变为了1.0.x版本)是稳定的版本之外,其他的皆为不稳定版本。第二代Hadoop跟第一代相比有了明显的不同,包含了HDFS Federation和 YARN系统。
CDH
Cloudera公司的发行版,市场上称之为CDH(Cloudera Distribution Hadoop),截止目前为止已经到了CDH6,目前较常用的是CDH3以上的版本,CDH3对应于hadoop 1.0,而CDH4和CDH5对应于hadoop2.0.Cloudera,版本层次明确,代码也是完全开源,并且集群部署工具比较完善以及教程等相对较多,社区活跃。
Hortonworks
Hortonworks提供的hadoop发行版称为HDP(Hortonworks Data Platform),也是全开源的系统。HDP除了包含常见的项目外还包含了Ambari,一款开源的安装和管理系统。一个元数据管理系统HCatlog,还包含HBase、Hive、Pig等一整套大数据解决方案技术。
Hortonworks在管理工具和集群部署方面有其独特优势。
IBM
IBM不提供只针对Hadoop的发行版,而是在原生hadoop的基础上进行了增强,例如增强了安全认证、作业调度等,采用Pig,Hive,HBase等技术开发了IBM的InfoSphere BigInsights大数据平台,一般面向IBM企业用户。
华为
华为在国内大数据领域也是走在前列的,其在Apache Hadoop的基础上利用本身的硬件能力进行了一些增强,例如故障自动Failover,增强HA功能等,其发布的版本为FusionInsight Hadoop。
2.Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。
(1),HDFS(hadoop分布式文件系统)
是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。
(2),mapreduce(分布式计算框架)
mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。
(3), hive(基于hadoop的数据仓库)
由Facebook开源,最初用于解决海量结构化的日志数据统计问题。
(4),hbase(分布式列存数据库)
hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。
(5),zookeeper(分布式协作服务)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
(6),sqoop(数据同步工具)
sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。
(7),pig(基于hadoop的数据流系统)
定义了一种数据流语言-pig latin,将脚本转换为mapreduce任务在hadoop上执行。
(8),mahout(数据挖掘算法库)
mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建只能应用程序。
(9),flume(日志收集工具)
cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。
3.官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。
目的
本文档介绍了如何设置和配置单节点Hadoop安装,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单的操作。
先决条件
支持平台
-
支持GNU / Linux作为开发和生产平台。Hadoop在具有2000个节点的GNU / Linux集群上得到了证明。
-
Windows也是受支持的平台,但是以下步骤仅适用于Linux。要在Windows上设置Hadoop,请参见wiki页面。
必备软件
Linux所需的软件包括:
-
必须安装Java™。HadoopJavaVersions中描述了推荐的Java版本。
-
如果要使用可选的启动和停止脚本,则必须安装ssh并且必须运行sshd才能使用管理远程Hadoop守护程序的Hadoop脚本。另外,建议也安装pdsh以便更好地进行ssh资源管理。
下载
要获得Hadoop发行版,请从Apache下载镜像之一下载最新的稳定版本。
准备启动Hadoop集群
解压缩下载的Hadoop发行版。在发行版中,编辑文件etc / hadoop / hadoop-env.sh以定义一些参数,如下所示:
#设置为Java安装的根目录 导出JAVA_HOME = / usr / java / latest
尝试以下命令:
$ bin / hadoop
这将显示hadoop脚本的用法文档。
现在,您可以以三种支持的模式之一启动Hadoop集群:
下面介绍第一种模式
独立运行
默认情况下,Hadoop被配置为在非分布式模式下作为单个Java进程运行。这对于调试很有用。
下面的示例复制解压缩的conf目录以用作输入,然后查找并显示给定正则表达式的每个匹配项。输出被写入给定的输出目录。
$ mkdir输入 $ cp etc / hadoop / *。xml输入 $ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-3.2.1.jar grep输入输出'dfs [az。] +' $ cat输出/ *