参考:大数据技术原理与应用(第3版)林子雨 编著
目录
1. 试述Hadoop和谷歌的MapReduce、GFS等技术之间的关系
5. 配置Hadoop时,Java的路径JAVA_HOME是在哪一个配置文件中进行设置的?
6. 所有节点的HDFS路径是通过fs.default.name来设置的,请问它是在哪个配置文件中设置的?
Hadoop简介
Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
Hadoop的核心是分布式文件系统(HDFS)、MapReduce
HDFS是针对谷歌文件系统(GFS)的开源实现
MapReduce是针对谷歌MapReduce的开源实现
Hadoop发展简史
Hadoop最初是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库
2004年,Apache Lucene项目模仿GFS开发了NDFS,也是HDFS的前身
2009年5月,Hadoop将1TB数据排序时间缩短到62秒,从此名声大噪,发展成大数据时代最具影响力的开源分布式开发平台
Hadoop的特性
1. 高可靠性
2. 高效性
3. 高可扩展性
4. 高容错性
5. 成本低
6. 运行在Linux操作系统上
7. 支持多种编程语言
Hadoop在企业中的架构
Hadoop的版本
第一代:包含0.20.x、0.21.x和0.22.x三大版本
第二代:包含(HDFS Federation、YARN(区分1、2代))
2008年,Cloudera成为第一个Hadoop商业化公司,并在2009年推出了第一个Hadoop发行版。
选择Hadoop版本的考虑因素:
- 是否开源(是否免费)
- 是否有稳定版
- 是否经实践检验
- 是否有强大的社会支持
Hadoop生态系统
Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。
Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReduce平台查询大型半结构化数据集。
Mahout是开源项目,提供一些可供扩展的机器学习领域经典算法的实现,旨在帮助开发人员更方便快捷地创建智能应用程序。
ZooKeeper是针对谷歌Chubby的一个开源项目,是高效和可靠的协同工作系统。
Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。
Sqoop主要用来在Hadoop和关系数据库之间交换数据,可以改进数据的互操作性。
Ambari支持Hadoop集群的安装、部署、配置和管理。
课后习题(书后习题)
1. 试述Hadoop和谷歌的MapReduce、GFS等技术之间的关系
Hadoop的核心是分布式文件系统(HDFS)、MapReduce
HDFS是针对谷歌文件系统(GFS)的开源实现
MapReduce是针对谷歌MapReduce的开源实现
2. 试述Hadoop具有哪些特性
1. 高可靠性
2. 高效性
3. 高可扩展性
4. 高容错性
5. 成本低
6. 运行在Linux操作系统上
7. 支持多种编程语言
3. 试述Hadoop在各个领域的应用情况
-
医疗健康:医疗行业产生的数据包括患者病历、基因序列、药物研发数据等,量大且复杂。Hadoop平台帮助医疗机构整合和分析这些数据,支持临床决策支持、疾病预测模型开发、个性化医疗方案设计等,推动精准医疗的发展。
-
零售与电子商务:在零售和电商领域,Hadoop被用来进行销售预测、库存管理、顾客购买行为分析、个性化推荐等。通过分析顾客历史购买数据、浏览行为等,企业能够提供更加个性化的购物体验,提升转化率和客户满意度。
-
政府与公共服务:政府机构利用Hadoop处理人口普查数据、公共安全数据、城市规划数据等,用于政策制定、公共服务优化和社会治理。例如,分析交通数据改善城市交通流,利用气象数据预测自然灾害等。
4. 试述Hadoop生态系统以及每个部分的具体功能
HDFS作为底层的数据存储系统
HBase是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库
Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。
Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReduce平台查询大型半结构化数据集。
Mahout是开源项目,提供一些可供扩展的机器学习领域经典算法的实现,旨在帮助开发人员更方便快捷地创建智能应用程序。
ZooKeeper是针对谷歌Chubby的一个开源项目,是高效和可靠的协同工作系统。
Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。
Sqoop主要用来在Hadoop和关系数据库之间交换数据,可以改进数据的互操作性。
Ambari支持Hadoop集群的安装、部署、配置和管理。
5. 配置Hadoop时,Java的路径JAVA_HOME是在哪一个配置文件中进行设置的?
配置Hadoop时,Java的路径信息JAVA_HOME是在hadoop-env.sh
配置文件中进行设置的。这个文件位于Hadoop安装目录的conf
目录下,用于设置Hadoop运行所需的环境变量,包括指定Java的安装路径。
6. 所有节点的HDFS路径是通过fs.default.name来设置的,请问它是在哪个配置文件中设置的?
所有节点的HDFS路径通过fs.default.name
进行设置,这个配置是在core-site.xml
文件中进行的。这个文件也是位于Hadoop的配置目录下,用于定义Hadoop核心服务的全局配置属性,包括HDFS的默认文件系统的URI。
7. 试列举单机模式和伪分布模式的异同点
相同点:
• 都可以在单个节点上运行Hadoop。
• 都可以用于开发和测试Hadoop应用程序。
不同点:
• 单机模式:所有的Hadoop守护进程都在同一个JVM中运行,用于简单的测试和开发。
• 伪分布模式:Hadoop守护进程运行在不同的JVM中,模拟一个小型的分布式集群环境,用于更全面的测试。
8. Hadoop伪分布式运行启动后所具有的进程都有哪些?
NameNode:管理文件系统的命名空间。
DataNode:存储实际的数据块。
Secondary NameNode:辅助NameNode,定期合并编辑日志和文件系统镜像。
ResourceManager:负责集群资源的管理和作业调度。
NodeManager:运行在每个节点上的服务,负责容器管理、监控和日志收集。
WebAppProxy:提供对YARN Web界面的安全访问代理。