了解对比Hadoop不同版本的特性,可以用图表的形式呈现。
Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版, 而0.21.x和0.22.x则NameNode HA等新的重大特性。第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。
Hadoop生态的组成、每个组件的作用、组件之间的相互关系,以图例加文字描述呈现。
Hadoop生态圈中包含很多组件,比如HDFS、Mapreduce、Hive、Hbase等等,众多组件相互作用,形成了完整的Hadoop生态。
HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。
HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。
MapReduce——MapReduce是Hadoop的主要执行框架,它是一个用于分布式并行数据处理的编程模型,将作业分为mapping阶段和reduce阶段。
Zookeeper——Zookeeper是Hadoop的分布式协调服务。Zookeeper被设计成可以在机器集群上运行,是一个具有高度可用性的服务,用于Hadoop操作的管理,而且很多Hadoop组件都依赖它。
Oozie—— Oozie是一个北极测很难过到Hadoop软件栈中的可扩展的Workflow系统。用于协调多个MapReduce作业的执行。
Pig——Pig是对MapReduce编程复杂性的抽象,Pig平台包含用于分析Hadoop数据集的执行环境和脚本语言(Pig Latin)。
Hive——类似于SQL的高级语言,用于执行对存储在Hadoop中数据的查询。
Sqoop是一个连通性工具,用于在关系型数据库和数据仓库Hadoop之间移动数据。
Fulme是一个分布式的、具有可靠性和高可用性的服务,用于从单独的机器上将大量数据高效的收集、聚合并移动到HDFS中。
官网学习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在单节点上。
- 格式化文件系统:
$ bin / hdfs namenode-格式
- 启动NameNode守护程序和DataNode守护程序:
$ sbin / start-dfs.sh
hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)。
- 浏览Web界面的NameNode;默认情况下,它在以下位置可用:
- NameNode- http:// localhost:50070 /
- 设置执行MapReduce作业所需的HDFS目录:
$ bin / hdfs dfs -mkdir / user
$ bin / hdfs dfs -mkdir / user / <用户名>
- 将输入文件复制到分布式文件系统中:
$ bin / hdfs dfs -put etc / hadoop输入
- 运行提供的一些示例:
$ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-2.10.0.jar grep输入输出'dfs [az。] +'
- 检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:
$ bin / hdfs dfs-获取输出输出
$ cat输出/ *
要么
查看分布式文件系统上的输出文件:
$ bin / hdfs dfs -cat输出/ *
- 完成后,使用以下命令停止守护进程:
- $ sbin / stop-dfs.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层关系查询秒级响应,从而大大提高了业务响应的速度。