简答题
hadoop简介
- Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构
- Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
- Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce
- Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力
- 几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持Hadoop
- 看远分布式平台基于java开发的,核心HDFS,mapr
hadoop的特性
- 高可靠性:采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务;
- 高效性:作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效地处理PB级数据;
- 高可扩展性:Hadoop的设计目标是可以高效稳定的运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上;
- 高容错性:采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配;
- 低成本:Hadoop采用廉价的计算机集群,成本比较低,普通用户也可以很容易用自己的PC搭建Hadoop的运行环境;
- 运行在Linux平台上:Hadoop是基于Java语言开发的,可以很好地运行在Linux平台上;
- 支持多种编程语言。
Hadoop的项目结构以及每个部分的具体功能
-
Common是为Hadoop其他子项目提供支持的常用工具,主要包括文件系统、RPC 和串行化库
-
Avro是为Hadoop的子项目,用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持续性数据的文件集、远程调用的功能和简单的动态语言集成功能。
-
HDFS是Hadoop项目的两个核心之一,它是针对谷歌文件系统的开源实现。
-
HBase是一个提高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。
-
MapReduce是针对谷歌MapReduce的开源实现,用于大规模数据集的并行运算。
-
Zoookepper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。
-
Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分布存储。
-
Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReducce平台上查询大型半结构化数据集。
-
Sqoop可以改进数据的互操作性,主要用来配合关系数据库之间交换数据。
-
Chukwa是一个开源的、用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种 MapReduce操作。
组件 | 功能 |
---|---|
HDFS | 分布式文件系统 |
MapReduce | 分布式并行编程模型 |
YARN | 资源管理和调度器 |
Tez | 运行在YARN之上的下一代Hadoop查询处理框架 |
Hive | Hadoop上的数据仓库 |
HBase | Hadoop上的非关系型的分布式数据库 |
Pig | 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin |
Sqoop | 用于在Hadoop与传统数据库之间进行数据传递 |
Oozie | Hadoop上的工作流管理系统 |
Zookeeper | 提供分布式协调一致*** |
Storm | 流计算框架 |
Flume | 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 |
Ambari | Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控 |
Kafka | 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据 |
Spark | 类似于Hadoop MapReduce的通用并行框架 |
hadoop简单的命令使用
开启、关闭Hadoop
- 打开终端模拟器,切换到/apps/hadoop/sbin目录下,启动Hadoop
cd /apps/hadoop/sbin
./start-all.sh
2. . 执行jps,检查一下Hadoop相关进程是否启动
3. 切换到/apps/hadoop/sbin目录下,关闭Hadoop
cd /apps/hadoop/sbin
./stop-all.sh
启动Hadoop系统,当使用bin/start-all.sh命令启动时,请给出集群各进程启动顺序
启动顺序:namenode –> datanode -> secondarynamenode -> resourcemanager -> nodemanager
填空
1、Hadoop有______,______,______,______,______,运行在Linux平台上,支持多种编程语言的特性
【解析:高可靠性 高效性 高可扩展性 高容错性 成本低】
2、Hadoop是一个开源的、可运行于大规模集群上的________式计算平台,实现了___________计算模式和分布式文件系统__________等功能。
【解析:分布,MapReduce, HDFS】
3、Hadoop的两大核心组件:HDFS,MapReduce。
4、Hadoop集群可以运行在(单机模式),(伪分布模式)和(完全分布模式)3个模式。
5、hadoop fs -ls 的含义:
答:显示指定的文件的详细信息
6、hadoop fs -put 的含义是:
答:从本地文件系统中复制指定的单个或多个源文件到指定的目标文件系统中。也支持从标准输入(stdin)中读取输入写入目标文件系统。
7、Hadoop启动和关闭的命令是(start-dfs.sh)和(stop-dfs.sh)。
判断
1、Hadoop 支持数据的随机读写。(hbase支持,hadoop不支持) ( 错 )
2、Hadoop的核心是HDFS和MapReduce。(对)
选择题
1、启动hadoop所有进程的命令是(A)
A.start-all.sh B.start-hadoop.sh C.start-hdfs.sh D.start-dfs.sh
2、以下对Hadoop的说法错误的是(C)
A.Hadoop的核心是HDFS和MapReduce
B.Hadoop2.0增加了NameNode HA和Wire-compatibility两个重大特性
C.Hadoop是基于Java语言开发的,只支持Java语言编程
D.Hadoop MapReduce是针对谷歌MapReduce的开源实现,通常用于大规模数据集的并行计算
3、以下哪个不是hadoop的特性(B)
A.支持多种编程语言 B.成本高 C.高容错性 D.高可靠性
4、以下名词解释不正确的是(D)
A.Hive:一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储
B.HDFS:分布式文件系统,是Hadoop项目的两大核心之一,是谷歌GFS的开源实现
C.Zookeeper:针对谷歌Chubby的一个开源实现,是高效可靠的协同工作系统
D.HBase:提供高可靠性、高性能、分布式的行式数据库,是谷歌BigTable的开源实现