1. 了解对比Hadoop不同版本的特性,用图表的形式呈现如下表:

 

hadoop版本

特性

0.14.1版本

 

安全
HBase(append / hsynch / hflush和安全性)
webhdfs(全面支持安全性)
性能增强了对HBase对本地文件的访问
其他性能增强,错误修复和功能

1.0版本

从主干向后移植HDFS的许多性能改进
使用SPNEGO而不是Kerberized SSL进行HTTP事务的安全性方面的改进
将任务跟踪器的默认最小心跳从3秒降低到300毫秒,以增加小型集群上的作业吞吐量
Gridmix v3的端口
在hadoop-config.sh中设置MALLOC_ARENA_MAX以解决RHEL-6中的glibc问题
可拆分的bzip2文件
当然,它也具有与1.0.4版相同的安全修复程序。

1.1版本

DistCp v2向后移植
JobTracker的Web服务
WebHDFS增强功能
任务放置和副本放置策略接口的扩展
向后移植脱机图像查看器
名称节点在编辑日志损坏的情况下更强大
将节点组级别添加到NetworkTopology
将“未设置”添加到配置API

1.2版本

HDFS HA for NameNode (manual failover)
YARN aka NextGen MapReduce
HDFS Federation
Performance
Wire-compatibility for both HDFS and YARN/MapReduce (using protobufs)

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)

2.2版本

YARN-Hadoop的通用资源管理系统,允许MapReduce和其他其他数据处理框架和服务
HDFS的高可用性
HDFS联盟
HDFS快照
NFSv3访问HDFS中的数据
支持在Microsoft Windows上运行Hadoop
在hadoop-1.x上构建的MapReduce应用程序的二进制兼容性
与生态系统中其他项目的大量集成测试

2.3版本

支持HDFS中的异构存储层次结构。
HDFS数据的内存中缓存,具有集中式管理和管理功能。
通过YARN分布式缓存中的HDFS简化了MapReduce二进制文件的分发。

2.4版本

支持HDFS中的访问控制列表
对HDFS中的滚动升级的本机支持
为HDFS FSImage使用协议缓冲区以实现平稳的操作升级
HDFS中完整的HTTPS支持
支持YARN ResourceManager的自动故障转移
使用应用程序历史记录服务器和应用程序时间轴服务器增强了对YARN上新应用程序的支持
通过抢占支持YARN CapacityScheduler中的强大SLA

2.5版本

使用HTTP代理服务器时的身份验证改进。
一个新的Hadoop Metrics接收器,允许直接写入Graphite。
Hadoop兼容文件系统工作规范。
支持POSIX样式的文件系统扩展属性。
OfflineImageViewer通过WebHDFS API浏览fsimage。
NFS网关的可支持性改进和错误修复。
HDFS守护程序的现代化Web UI(HTML5和Javascript)。
YARN的REST API支持提交和杀死应用程序。
YARN的时间轴存储的Kerberos集成。
FairScheduler允许在运行时在任何指定的父队列下创建用户队列。

2.6版本

Hadoop常见
HADOOP-10433-密钥管理服务器(测试版)
HADOOP-10607-凭据提供程序(测试版)
Hadoop HDFS
异构存储层-第二阶段
HDFS-5682-用于异构存储的应用程序API
HDFS-7228 -SSD存储层
HDFS-5851-内存作为存储层(测试版)
HDFS-6584-支持档案存储
HDFS-6134-透明的静态数据加密(测试版)
HDFS- 2856-在无需root用户访问的情况下操作安全的DataNode
HDFS-6740-热插拔驱动器:支持添加/删除数据节点卷,而无需重新启动数据节点(测试版)
HDFS-6606 -AES支持更快的线路加密
Hadoopyarn
YARN-896-在YARN中支持长期运行的服务
YARN-913-应用程序的服务注册表
YARN-666-支持滚动升级
YARN-556 -ResourceManager的工作保留重启
YARN-1336 -NodeManager的保留容器重新启动
YARN-796-调度期间的支持节点标签
YARN-1051-在Capacity Scheduler(beta)中支持基于时间的资源保留
YARN-1964-支持在Docker容器中本地运行应用程序(alpha)

2.7版本

此版本放弃了对JDK6运行时的支持,并且仅与JDK 7+一起使用。
此版本尚未准备好用于生产。关键问题正在通过测试和下游采用得到解决。生产用户应等待2.7。1 / 2 .7.2释放。
Hadoop常见
HADOOP-9629-支持Windows Azure存储-Blob作为Hadoop中的文件系统。
Hadoop HDFS
HDFS-3107-支持文件截断
HDFS-7584-支持每种存储类型的配额
HDFS-3689-支持具有可变长度块的文件
Hadoopyarn
YARN-3100-使YARN授权可插入
YARN-1492 -YARN本地化资源的自动共享,全局缓存(测试版)
Hadoop MapReduce
MAPREDUCE-5583-能够限制作业的正在运行的Map / Reduce任务
MAPREDUCE-4815-对于具有许多输出文件的超大型作业,可以加快FileOutputCommitter的速度。

2.8版本

支持异步呼叫重试和故障转移,可在重试工作中用于异步DFS实现。
可以通过通用的servlet过滤器为UI提供跨框架脚本(XFS)防护。S3A改进:增加了插入任何AWSCredentialsProvider的功能,除了XML配置文件之外,还支持从hadoop凭据提供程序API读取s3a凭据,支持Amazon STS临时凭据
WASB的改进:添加了附加API支持
Build增强功能:将开发支持替换为Yetus的包装,提供基于docker的解决方案来设置构建环境,删除CHANGES.txt并重新制作更改日志和发行说明。
添加对LDAP组映射服务的posixGroups支持。
支持与Azure数据湖(ADL)集成,作为与Hadoop兼容的替代文件系统。

HDFS

WebHDFS增强功能:在WebHDFS中集成CSRF预防过滤器,在WebHDFS中支持OAuth2,通过WebHDFS禁用/允许快照
允许长时间运行的Balancer使用keytab登录
添加ReverseXML处理器,该处理器从XML文件重建fsimage。这将使创建fsimage进行测试变得容易,并且在损坏时手动编辑fsimage。

2.9版本

共同

HADOOP资源估计器。有关更多详细信息,请参见用户文档。
HDFS

基于HDFS路由器的联盟。有关更多详细信息,请参见用户文档。
yarn

YARN时间轴服务v.2。有关更多详细信息,请参见用户文档。
yarn联合会。有关更多详细信息,请参见用户文档。
机会容器。有关更多详细信息,请参见用户文档。
YARN Web UI v.2。有关更多详细信息,请参见用户文档。
通过API更改队列配置(仅在Capacity Scheduler上受支持)。有关更多详细信息,请参见用户文档。
更新已分配/正在运行的容器的资源和执行类型(仅在Capacity Scheduler上受支持)。有关更多详细信息,请参见用户文档。

3.0版本

最低要求的Java版本从Java 7增加到Java 8

支持HDFS中的擦除编码

HDFS删除编码文档中提供了更多详细信息。、

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

Shell脚本重写

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

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

 

3.1版本

Yarn Service框架提供了一流的支持和API,以在YARN中本地托管长期运行的服务。

YARN上一流的GPU调度和隔离(适用于docker / non-docker容器)。

ARN上一流的FPGA调度和隔离(适用于docker / non-docker容器)。

支持管理员为队列指定绝对资源(X内存,Y VCore,Z GPU等),而不是提供基于百分比的值。这为管理员提供了更好的控制,以配置给定队列所需的资源量。

提供的存储允许将HDFS外部存储的数据映射到HDFS并从中寻址。通过将新的存储类型PROVIDED引入DataNode中的媒体集,它基于异构存储而构建。

3.2版本

YARN中的节点属性支持
节点属性有助于根据节点的属性在节点上标记多个标签,并支持基于这些标签的表达来放置容器。

Hadoop Submarine使数据工程师可以在数据驻留的同一Hadoop YARN集群上轻松开发,训练和部署深度学习模型(在TensorFlow中)。

支持HDFS(Hadoop分布式文件系统)应用程序,以便在文件/目录上设置存储策略时在存储类型之间移动块。

ABFS文件系统连接器
支持最新的Azure Datalake Gen2存储。

增强型S3A连接器
支持增强的S3A连接器,包括对受限制的AWS S3和DynamoDB IO的更好的弹性。

升级YARN长期服务
通过YARN本机服务API和CLI支持长期运行的容器的就地无缝升级。

 2.Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现:

  Hadoop生态圈:

          

 

 

         

①HBase

Google Bigtable的开源实现

列式数据库

可集群化

可以使用shell、web、api等多种方式访问

适合高读写(insert)的场景

HQL查询语言

NoSQL的典型代表产品

 

 

 

 

 

②Hive

数据仓库工具。可以把Hadoop下的原始结构化数据变成Hive中的表

支持一种与SQL几乎完全相同的语言HiveQL。除了不支持更新、索引和事务,几乎SQL的其它特征都能支持

可以看成是从SQL到Map-Reduce的映射器

提供shell、JDBC/ODBC、Thrift、Web等接口

 

 

 

③Zookeeper

Google Chubby的开源实现

用于协调分布式系统上的各种服务。例如确认消息是否准确到达,防止单点失效,处理负载均衡等

应用场景:Hbase,实现Namenode自动切换

工作原理:领导者,跟随者以及选举过程

 

 

 

 

④Sqoop

用于在Hadoop和关系型数据库之间交换数据

通过JDBC接口连入关系型数据库

 

 

 

 

⑤Chukwa

架构在Hadoop之上的数据采集与分析框架

主要进行日志采集和分析

通过安装在收集节点的“代理”采集最原始的日志数据

代理将数据发给收集器

收集器定时将数据写入Hadoop集群

指定定时启动的Map-Reduce作业队数据进行加工处理和分析

hadoop

⑥Pig

Hadoop客户端

使用类似于SQL的面向数据流的语言Pig Latin

Pig Latin可以完成排序,过滤,求和,聚组,关联等操作,可以支持自定义函数

Pig自动把Pig Latin映射为Map-Reduce作业上传到集群运行,减少用户编写Java程序的苦恼

 

 

 

⑦Avro

数据序列化工具,由Hadoop的创始人Doug Cutting主持开发 

用于支持大批量数据交换的应用。支持二进制序列化方式,可以便捷,快速地处理大量数据 

动态语言友好,Avro提供的机制使动态语言可以方便地处理 Avro数据。 

Thrift接口

 

 

 

⑧Cassandra

NoSQL,分布式的Key-Value型数据库,由Facebook贡献

与Hbase类似,也是借鉴Google Bigtable的思想体系

只有顺序写,没有随机写的设计,满足高负荷情形的性能需求

 

 

Hadoop生态圈流程图

 

 

 

 3.官网学习Hadoop的安装与使用,用文档的方式列出步骤与注意事项:

  1. http://www.apache.org/

    →Projects

    →Projects List

    Hadoop

  2. 一、下载

    http://hadoop.apache.org/   hadoop官网

     

     

     

     

     

    二、解压

     

     

     

    注:使用管理员权限解压

    三、配置环境变量

    添加HADOOP_HOME配置:自己安装hadoop路径,我的是D:\hadoop-3.0.3

    在Path中添加如下:自己安装hadoop路径/bin,如:D:/hadoop-3.0.3/bin

    四、hadoop需要jdk支持,jdk路径不能有空格,如有空格,可以这样,如:”D:\Program Files"\Java\jdk1.8.0_25

    五、hadoop路径下创建data用于数据存储,再在data下创建datanode目录和namenode目录

    六、hadoop配置

    四个hadoop路径/etc/hadoop/core-site.xml,etc/hadoop/mapred-site.xml,etc/hadoop/hdfs-site.xml,etc/hadoop/yarn-site.xml

    1.core-site.xml

    1. <configuration>  
    2.     <property>  
    3.        <name>fs.default.name</name>  
    4.        <value>hdfs://localhost:9000</value>  
    5.    </property>
    6. </configuration>

    myeclipse上配置hadoop时,localhost需写成自己的IP

    2.mapred-site.xml

    1. <configuration>  
    2.     <property>  
    3.        <name>mapreduce.framework.name</name>  
    4.        <value>yarn</value>  
    5.    </property>
    6. </configuration>

    3.hdfs-site.xm

    1. <configuration>  
    2.     <!-- 这个参数设置为1,因为是单机版hadoop -->  
    3.     <property>  
    4.         <name>dfs.replication</name>  
    5.         <value>1</value>  
    6.     </property>  
    7.     <property>   
    8.      <name>dfs.permissions</name>   
    9.      <value>false</value>   
    10. </property>  
    11. <property>  
    12. <name>dfs.namenode.name.dir</name>  
    13. <value>/D:/hadoop-3.0.3/data/namenode</value>  
    14. </property>  
    15. <property>  
    16. <name>fs.checkpoint.dir</name>  
    17. <value>/D:/hadoop-3.0.3/data/snn</value>  
    18. </property>  
    19. <property>  
    20. <name>fs.checkpoint.edits.dir</name>  
    21. <value>/D:/hadoop-3.0.3/data/snn</value>  
    22. </property>  
    23. <property>  
    24. <name>dfs.datanode.data.dir</name>  
    25. <value>/D:/hadoop-3.0.3/data/datanode</value>  
    26. </property>

    27.</configuration>

    4.yarn-site.xml

    1. <configuration>  
    2. <!-- Site specific YARN configuration properties -->  
    3.     <property>  
    4.         <name>yarn.nodemanager.aux-services</name>  
    5.         <value>mapreduce_shuffle</value>  
    6.    </property>  
    7.    <property>  
    8.         <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>    
    9.         <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
    10. </property>

    11.</configuration>

    七、修改D:/hadoop-3.0.3/etc/hadoop/hadoop-env.cmd配置,找到set JAVA_HOME=%JAVA_HOME%替换为set JAVA_HOME="D:\Program Files"\Java\jdk1.8.0_25

    八、winutils中对应的hadoop版本中的bin替换自己hadoop安装目录下的bin

     

     

     

    找到对应的版本下的bin替换hadoop中的bin

     

    配置完成

    九、启动服务

    1.cmd中,D:\hadoop-3.0.3\bin> hdfs namenode -format

    执行后,data下的namenode和datanode下会有current等文件,我当时安装的是hadoop3.1.1,用的winutils中的hadoop3.0.0,datanode总是没有启动没有数据,换成hadoop3.0.3,使用wintuils的hadoop3.0.0后,就可以了。

    2.D:\hadoop-3.0.3\sbin启动start-all.cmd服务,会看到

    • Hadoop Namenode
    • Hadoop datanode
    • YARN Resourc Manager
    • YARN Node Manager

    十、HDFS应用

     

     

     

    1、通过http://127.0.0.1:8088/即可查看集群所有节点状态:

     

    2、访问http://localhost:9870/即可查看文件管理页面:

    a.进入文件系统

     

     

     

    b.创建目录

     

     

     

    c.上传成功

     

     

     

    注:在之前的版本中文件管理的端口是50070,在3.0.0中替换为了9870端口

     

     

     

    d.使用hadoop命令进行文件操作

              mkdir命令创建目录:hadoop fs -mkdir hdfs://ip:9000/user

     

     

     

               put命令上传文件:hadoop fs -put D:/a.txt hdfs://ip:9000/user/z

  3.  

     

     

posted on 2020-09-19 16:19  wwxtl  阅读(207)  评论(0编辑  收藏  举报