第二次作业---Hadoop演进与Hadoop生态

1.了解对比Hadoop不同版本的特性,可以用图表的形式呈现。

Hadoop版本 特性
1.0  安全
HBase(append / hsynch / hflush和安全性)
webhdfs(全面支持安全性)
性能增强了对HBase对本地文件的访问
其他性能增强,错误修复和功能
2.0  HDFS HA for NameNode (manual failover)
YARN aka NextGen MapReduce
HDFS Federation
Performance
Wire-compatibility for both HDFS and YARN/MapReduce (using protobufs)
3.0  

最低要求的Java版本从Java 7增加到Java 8
现在已针对Java 8的运行时版本编译了所有Hadoop JAR。仍在使用Java 7或更低版​​本的用户必须升级到Java 8。

支持HDFS中的擦除编码
与复制相比,擦除编码是一种持久存储数据的方法,可节省大量空间。与标准HDFS复制的3倍开销相比,像Reed-Solomon(10,4)这样的标准编码的空间开销为1.4倍。

由于擦除编码在重建期间会带来额外的开销,并且大部分执行远程读取,因此传统上已将其用于存储较冷,访问频率较低的数据。用户在部署此功能时应考虑擦除编码的网络和CPU开销。

YARN时间轴服务v.2
我们正在介绍YARN时间轴服务主要版本:v.2的早期预览(alpha 2)。YARN Timeline Service v.2解决了两个主要挑战:提高Timeline Service的可伸缩性和可靠性,以及通过引入流和聚合来增强可用性。

提供了YARN Timeline Service v.2 alpha 2,以便用户和开发人员可以对其进行测试并提供反馈和建议,以使其可以替代Timeline Servicev.1.x。仅应以测试能力使用。

Shell脚本重写
Hadoop Shell脚本已被重写,以修复许多长期存在的错误并包括一些新功能。尽管一直在寻求兼容性,但是某些更改可能会破坏现有的安装。

带阴影的客户罐
2.x版本中提供的hadoop-client Maven工件将Hadoop的可传递依赖项拉到Hadoop应用程序的类路径中。如果这些传递依赖项的版本与应用程序使用的版本冲突,则可能会出现问题

HADOOP-11804添加了新的hadoop-client-api和hadoop-client-runtime工件,将Hadoop的依赖项隐藏在一个jar中。这样可以避免将Hadoop的依赖项泄漏到应用程序的类路径中。

支持机会容器和分布式计划。
引入了ExecutionType的概念,应用程序现在可以请求执行类型为Opportunistic的容器。即使调度时没有可用资源,也可以在NM上调度这种类型的容器以执行。在这种情况下,这些容器将在NM处排队,等待资源可用以启动它。机会容器的优先级比默认的“ 保证”容器低,因此如果需要,可以抢占机会以为“保证”容器腾出空间。这将提高群集利用率。

默认情况下,机会容器由中央RM分配,但是还添加了支持,以允许由实现为AMRMProtocol拦截器的分布式调度程序分配机会容器。

MapReduce任务级本机优化
MapReduce增加了对地图输出收集器的本机实现的支持。对于洗牌密集型工作,这可以使性能提高30%或更多。

支持两个以上的NameNode。
HDFS NameNode高可用性的初始实现是为单个活动NameNode和单个Standby NameNode提供的。通过将编辑复制到法定数量的三个JournalNode,该体系结构能够容忍系统中任何一个节点的故障。
但是,某些部署需要更高的容错度。这项新功能启用了此功能,该功能允许用户运行多个备用NameNode。
例如,通过配置三个NameNode和五个JournalNode,群集可以承受两个节点的故障,而不仅仅是一个节点的故障。

多个服务的默认端口已更改。
以前,多个Hadoop服务的默认端口在Linux临时端口范围内(32768-61000)。这意味着在启动时,服务有时会由于与另一个应用程序的冲突而无法绑定到端口。

支持Microsoft Azure Data Lake和Aliyun对象存储系统文件系统连接器
Hadoop现在支持与Microsoft Azure数据湖和Aliyun对象存储系统集成,作为与Hadoop兼容的替代文件系统。

数据内节点平衡器
单个DataNode可管理多个磁盘。在正常的写操作过程中,磁盘将被均匀填充。但是,添加或替换磁盘可能会导致DataNode内部出现严重偏差。现有的HDFS平衡器无法处理这种情况,该平衡器自身涉及DN之间的偏移,而不涉及内部DN偏移。

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输出/ *

伪分布式操作

Hadoop也可以以伪分布式模式在单节点上运行,其中每个Hadoop守护程序都在单独的Java进程中运行。

组态

使用以下内容:

等/hadoop/core-site.xml:

<配置>
    <属性>
        <名称> fs.defaultFS </名称>
        <value> hdfs:// localhost:9000 </ value>
    </ property>
</ configuration>

等/hadoop/hdfs-site.xml:

<配置>
    <属性>
        <name> dfs.replication </ name>
        <value> 1 </ value>
    </ property>
</ configuration>

设置无密码SSH

现在检查您是否可以在不使用密码的情况下SSH到本地主机:

  $ ssh本地主机

如果没有密码就无法SSH到本地主机,请执行以下命令:

  $ ssh-keygen -t rsa -P''-f〜/ .ssh / id_rsa
  $ cat〜/ .ssh / id_rsa.pub >>〜/ .ssh / authorized_keys
  $ chmod 0600〜/ .ssh / authorized_keys

执行

以下说明是在本地运行MapReduce作业。如果要在YARN上执行作业,请参阅YARN在单节点上

  1. 格式化文件系统:

      $ bin / hdfs namenode-格式
    
  2. 启动NameNode守护程序和DataNode守护程序:

      $ sbin / start-dfs.sh
    

    hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)。

  3. 浏览Web界面的NameNode;默认情况下,它在以下位置可用:

    • NameNode- http:// localhost:50070 /
  4. 设置执行MapReduce作业所需的HDFS目录:

      $ bin / hdfs dfs -mkdir / user
      $ bin / hdfs dfs -mkdir / user / <用户名>
    
  5. 将输入文件复制到分布式文件系统中:

      $ bin / hdfs dfs -put etc / hadoop输入
    
  6. 运行提供的一些示例:

      $ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-2.10.0.jar grep输入输出'dfs [az。] +'
    
  7. 检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:

      $ bin / hdfs dfs-获取输出输出
      $ cat输出/ *
    

    要么

    查看分布式文件系统上的输出文件:

      $ bin / hdfs dfs -cat输出/ *
    
  8. 完成后,使用以下命令停止守护进程:

      $ sbin / stop-dfs.sh
    

在单个节点上的YARN

您可以通过设置一些参数并另外运行ResourceManager守护程序和NodeManager守护程序,以伪分布式模式在YARN上运行MapReduce作业。

以下指令假定上述指令的1.〜4. 步骤已经执行。

  1. 如下配置参数:etc / hadoop / mapred-site.xml

    <配置>
        <属性>
            <name> mapreduce.framework.name </ name>
            <value>纱线</ value>
        </ property>
    </ configuration>
    

    etc / hadoop / yarn-site.xml

    <配置>
        <属性>
            <name> yarn.nodemanager.aux-services </ name>
            <value> mapreduce_shuffle </ value>
        </ property>
    </ configuration>
    
  2. 启动ResourceManager守护程序和NodeManager守护程序:

      $ sbin / start-yarn.sh
    
  3. 浏览Web界面以找到ResourceManager;默认情况下,它在以下位置可用:

    • ResourceManager- http:// localhost:8088 /
  4. 运行MapReduce作业。

  5. 完成后,使用以下命令停止守护进程:

      $ sbin / stop-yarn.sh

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

华为FusionInsight大数据平台是集 Hadoop 生态发行版、大规模并行处理数据库、大数据云服务于一体的融合数据处理与服务平台,拥有端到端全生命周期的解决方案能力。除了提供包括批处理、内存计算、流计算和MPPDB在内的全方位数据处理能力外,还提供数据分析挖掘平台、数据服务平台,帮助用户实现从数据到知识,从知识到智慧的转换,进而帮助用户从海量数据中挖掘数据价值。

此外华为FusionInsight大数据平台是根据行业客户需求进行优化的解决方案。为解决用户在具体场景下的问题,提供许多创新的技术能力,举几个例子:

第一个是统一SQL。大数据技术中有很多能够利用SQL语言进行数据处理的组件,比如Hive、SparkSQL、Elk、MPPDB等,当用户对于这些组件进行业务开发时,需要对不同组件分别进行,造成很大的不便。FusionInsight提供统一SQL,对外业务界面只出现一个SQL开发管理界面,通过统一SQL的业务分发层进行业务分发,这样就简化了业务开发。同时,华为还提供了SQL on Hadoop引擎Elk,这个引擎完全兼容SQL 2003标准,无需修改测试脚本就可以通过TPC-DS测试,性能超过开源产品3倍。通过使用统一SQL技术,某大型保险公司实现了用大数据平台替代传统数仓,在复杂计算业务场景下,其性能提升了10-100倍。

第二个是实时搜索。华为FusionInsight率先实现了对Hadoop平台与MPPDB数仓平台的统一全文检索,率先支持SQL on Solr接口,提升业务开发效率5倍以上,独创标签索引方案,提升搜索性能3-10倍。目前,实时搜索技术在平安城市和金融行业已经实现商用。在国内某省的平安城市项目中,百亿级规模数据集中查询,实时搜索响应时间<3秒。

第三个是实时决策。与日常生活息息相关的很多业务是需要实时决策的,比如使用银行卡交易过程中的风险控制。由于传统技术处理速度的原因,往往只能实现事后风控。也就是说用户在刷卡完成后,银行才能够检查出来,刚才的交易是否有风险。这样对于银行和客户而言,都会有很大的风险存在。而华为FusionInsight实时决策平台,可以实现毫秒级复杂规则的风险检查,提供百万TIPS的业务处理能力,从而让风险控制从事后变为事中,并确保端到端的交易可在500毫秒内完成,不影响交易用户的体验。

第四个是图分析技术。在生活中有很多时候是需要进行用户的关系分析来进行风险控制和业务处理的。如果我们的客户中有一个是VIP客户,那么他的朋友符合VIP客户条件的可能性就会很大。因此如果我们能够通过关系分析技术找到他的朋友圈,在针对他的朋友进行针对性营销,那么业务成功的可能性也就会大大增加。但是,传统的数据库技术在处理客户关系发现时很困难,某公司曾经做过一个测试,想在2000万客户中发现客户间的关系信息,但是一直无法算出来。但是用图分析技术就可以很好解决这一类问题。因为在图数据库中,用户就是点,用户关系就是边,发现用户关系就变成了发现点与点间需要几条边的问题。华为的分布式图数据库,能够实现万亿顶点百亿边的实时查询,从而很快发现用户关系。在某项目中,华为帮助客户实现了13.7亿条关系图谱数据,3层关系查询秒级响应,从而大大提高了业务响应的速度。

posted @ 2020-09-19 09:18  会喷水的海参  阅读(150)  评论(0)    收藏  举报