第二次作业
1、了解对比Hadoop不同版本的特性,可以用图表的形式呈现
DKhadoop发行版: |
DKhadoop将复杂的大数据集群配置简化至三种节点(主节点、管理节点、计算节点),极大的简化了集群的管理运维,增强了集群的高可用性、高可维护性、高稳定性。
|
Cloudera发行版: |
CDH是Cloudera的hadoop发行版,完全开源,比Apache hadoop在兼容性,安全性,稳定性上有增强。 |
Hortonworks发行版: |
HDP包括稳定版本的Apache Hadoop的所有关键组件;安装方便,HDP包括一个现代化的,直观的用户界面的安装和配置工具 |
Apache hadoop 2.0 版本 |
1) hadoop 通用模块,支持其他 hadoop 模块的通用工具集; (2) Hadoop 分布式文件系统,支持对应数据高吞吐量访问的分布式文件系统; (3) 用于作业调度和集群资源管理的 Hadoop YANRN 框架; (4) Hadoop MapReduce ,基于 YARN 的大数据并行处理系统 。 |
2.Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。
1,HDFS(hadoop分布式文件系统)
是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。
client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。
namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。
DataNode:slave节点,存储实际的数据,汇报存储信息给namenode。
secondary namenode:辅助namenode,分担其工作量:定期合并fsimage和fsedits,推送给namenode;紧急情况下和辅助恢复namenode,但其并非namenode的热备。
2,mapreduce(分布式计算框架)
mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。
jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker。
tacktracker:slave节点,运行 map task和reducetask;并与jobtracker交互,汇报任务状态。
map task:解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。
reduce task:从map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的reduce函数执行。
3, hive(基于hadoop的数据仓库)
由Facebook开源,最初用于解决海量结构化的日志数据统计问题。
hive定于了一种类似sql的查询语言(hql)将sql转化为mapreduce任务在hadoop上执行。
4,hbase(分布式列存数据库)
hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。
5,zookeeper(分布式协作服务)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
6,sqoop(数据同步工具)
sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。
数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。
7,pig(基于hadoop的数据流系统)
定义了一种数据流语言-pig latin,将脚本转换为mapreduce任务在hadoop上执行。
通常用于离线分析。
8,mahout(数据挖掘算法库)
mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建只能应用程序。mahout现在已经包含了聚类,分类,推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法是,mahout还包含了数据的输入/输出工具,与其他存储系统(如数据库,mongoDB或Cassandra)集成等数据挖掘支持架构。
9,flume(日志收集工具)
cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。他将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在flume中定制数据发送方,从而支持收集各种不同协议数据。
10,资源管理器的简单介绍(YARN和mesos)
随着互联网的高速发展,基于数据 密集型应用 的计算框架不断出现,从支持离线处理的mapreduce,到支持在线处理的storm,从迭代式计算框架到 流式处理框架s4,...,在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方法如下:网页建索引采用mapreduce框架,自然语言处理/数据挖掘采用spark,对性能要求到的数据挖掘算法用mpi等。公司一般将所有的这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样便诞生了资源统一管理与调度平台,典型的代表是mesos和yarn。
3.官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项。
准备启动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-2.10.0.jar grep输入输出'dfs [az。] +'
$ cat输出/ *
4.评估华为hadoop发行版本的特点与可用性。
华为FusionInsight大数据平台是集 Hadoop 生态发行版、大规模并行处理数据库、大数据云服务于一体的融合数据处理与服务平台,拥有端到端全生命周期的解决方案能力。除了提供包括批处理、内存计算、流计算和MPPDB在内的全方位数据处理能力外,还提供数据分析挖掘平台、数据服务平台,帮助用户实现从数据到知识,从知识到智慧的转换,进而帮助用户从海量数据中挖掘数据价值。
此外华为FusionInsight大数据平台是根据行业客户需求进行优化的解决方案。为解决用户在具体场景下的问题,提供许多创新的技术能力,举几个例子:
1.是统一SQL。大数据技术中有很多能够利用SQL语言进行数据处理的组件,比如Hive、SparkSQL、Elk、MPPDB等,当用户对于这些组件进行业务开发时,需要对不同组件分别进行,造成很大的不便。FusionInsight提供统一SQL,对外业务界面只出现一个SQL开发管理界面,通过统一SQL的业务分发层进行业务分发,这样就简化了业务开发。同时,华为还提供了SQL on Hadoop引擎Elk,这个引擎完全兼容SQL 2003标准,无需修改测试脚本就可以通过TPC-DS测试,性能超过开源产品3倍。通过使用统一SQL技术,某大型保险公司实现了用大数据平台替代传统数仓,在复杂计算业务场景下,其性能提升了10-100倍。
2.是实时搜索。华为FusionInsight率先实现了对Hadoop平台与MPPDB数仓平台的统一全文检索,率先支持SQL on Solr接口,提升业务开发效率5倍以上,独创标签索引方案,提升搜索性能3-10倍。目前,实时搜索技术在平安城市和金融行业已经实现商用。在国内某省的平安城市项目中,百亿级规模数据集中查询,实时搜索响应时间<3秒。
3.实时决策。与日常生活息息相关的很多业务是需要实时决策的,比如使用银行卡交易过程中的风险控制。由于传统技术处理速度的原因,往往只能实现事后风控。也就是说用户在刷卡完成后,银行才能够检查出来,刚才的交易是否有风险。这样对于银行和客户而言,都会有很大的风险存在。而华为FusionInsight实时决策平台,可以实现毫秒级复杂规则的风险检查,提供百万TIPS的业务处理能力,从而让风险控制从事后变为事中,并确保端到端的交易可在500毫秒内完成,不影响交易用户的体验。
4.分析技术。在生活中有很多时候是需要进行用户的关系分析来进行风险控制和业务处理的。如果我们的客户中有一个是VIP客户,那么他的朋友符合VIP客户条件的可能性就会很大。因此如果我们能够通过关系分析技术找到他的朋友圈,在针对他的朋友进行针对性营销,那么业务成功的可能性也就会大大增加。但是,传统的数据库技术在处理客户关系发现时很困难,某公司曾经做过一个测试,想在2000万客户中发现客户间的关系信息,但是一直无法算出来。但是用图分析技术就可以很好解决这一类问题。因为在图数据库中,用户就是点,用户关系就是边,发现用户关系就变成了发现点与点间需要几条边的问题。华为的分布式图数据库,能够实现万亿顶点百亿边的实时查询,从而很快发现用户关系。在某项目中,华为帮助客户实现了13.7亿条关系图谱数据,3层关系查询秒级响应,从而大大提高了业务响应的速度。