说实话思维导图真的是一种读书的好方式...特别是读这种全是知识点概念为主的书籍...

Hadoop

Hadoop特性

高可靠性

  • 采用冗余数据存储方式

高效性

  • 采用分布式存储和分布式处理两大核心技术

高可扩展性

  • 可以高效稳定地运行在廉价的计算机集群上

高容错性

  • 采用冗余数据存储方式

成本低

  • 采用廉价的计算机集群

运行在Linux平台上

  • Hadoop 是基于 Java 开发的,可以较好的运行在 Linux 上

支持多种编程语言

  • Hadoop 上的应用程序也可以使用其他语言编写

Hadoop生态

HDFS(Hadoop Distributed File System,即Hadoop分布式文件系统)

  • 这是 Hadoop 项目两大核心之一,是针对谷歌文件系统(Google File System,GFS)的开源实现

HBase

  • 这是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,是针对谷歌 BigeTable 的开源实现

Hadoop MapReduce

  • 这是针对谷歌 MapReduce 的开源实现,它是一种编程模型,用于大规模数据集(大于1TB)的并行计算,它将并行计算过程高度地抽象到两个函数 Map 和 Reduce 上,简单来说就是“分而治之”,即把输入的数据集切成若干独立的数据块,分发给一个主节点管理下的各个分节点来共同并行完成,然后通过整合各个节点的中间结果得到最终结果

Hive

  • 这是一个基于 Hadoop 的数据仓库工具,可以用于对 Hadoop 文件中的数据集进行数据整理、特殊查询和分析存储

Pig

  • 这是一种数据流语言和运行环境,适合用于 Hadoop 和 MapReduce 平台来查询大型半结构化数据集, Pig 是一个相对简单的语言,对比 MapReduce 在执行搜索满足某个给定搜索条件的记录时,Pig只需要编写一个简单的脚本在集群中自动并行处理和转发

Mahout

  • 这是 Apache 软件基金会旗下的一个开源项目,它提供一些可扩展的机器学习领域经典算法的实现。

Zookeeper

  • 这是针对谷歌 Chubby 的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务(如同一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调任务;开发者可以使用 Java 或 C 来进行编程接入

Flume

  • 这是 Cloudera 提供的一个高可用的、高可靠的分布式的海量日志采集、聚合和传输的系统,它支持在日志系统中定制各类数据发送方,用于收集数据,同时它还提供对数据的简单处理并写到各种数据接受方的能力

Sqoop(SQL-to-Hadoop)

  • 它主要用于在 Hadoop 和关系数据库之间交换数据,可以改进数据的互操作性,它支持增量更新,可以将新纪录添加到最近一次导出的数据源上,或者指定上次修改的时间戳

Ambari

  • 这是一种基于 Web 的工具,支持 Apache Hadoop 的安装、部署、配置和管理

Hadoop配置文件

hadoop-env.sh

  • Bash脚本

    • 记录配置 Hadoop 运行所需的环境变量,以运行 Hadoop

core-site.xml

  • Hadoop 配置 XML

    • Hadoop core 的配置项,如 HDFS 和 MapReduce 常用的 I/O 设置等

hdfs-site.xml

  • Hadoop 配置 XML

    • Hadoop 守护进程的配置项,包括 NameNode 、 Secondary NameNode 和 DataNode 等

mapred-site.xml

  • Hadoop 配置 XML

    • MapReduce 守护进程的配置项,包括 JobTracker 和 TaskTracker

masters

  • 纯文本

    • 运行 SecondaryNameNode 的机器列表(每行一个)

slaves

  • 纯文本

    • 运行 DataNode 和 TaskTracker 的机器列表(每行一个)

hadoop-metrics.properties

  • Java属性

    • 控制 metrics 在 Hadoop 上如何发布的属性

XMind - Trial Version

Last modification:April 12th, 2020 at 11:14 pm
如果觉得我的文章对你有用,请随意赞赏