Hadoop是什么

  Hadoop是大数据的解决方案,是一个基础架构,也是一个适合大数据的分布式存储和计算的平台。Hadoop是由Apache基金会所开发的分布式基础架构,能以一种可靠、高效、可伸缩的方式进行数据处理。而且Hadoop的成本比较低,任何人都可以使用,而且Hadoop是开源的,许多中小型企业都在使用。

  Hadoop主要有以下优点:

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop由哪些部分组成

  Hadoop主要由三部分组成,而其中Hadoop的框架最核心的设计就是:HDFS和MapReduce。

  HDFS(Hadoop Distributed File System)是Hadoop分布式存储系统,它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。在使用了之后就会发现,它有着一套自己的文件体系,和Linux中的文件体系分离开来了。

  HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

  MapReduce是用于并行处理大数据集的软件框架,实现分布式批处理方式,是一套从海量源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

  除了这两个之外,第三部分就是Hadoop Common。 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common。

Hadoop主要工具有哪些

国内有哪些地方做了Hadoop的电商大数据可视化设计_大数据


  Hive是一种数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

  HBase是一个分布式的、面向列的开源数据库。不同于一般的关系数据库,Hbase是一个适合于非结构化数据存储的数据库。另一个不同的是,HBase基于列的而不是基于行的模式。与HDFS不同的是,HDFS存储的是不可变的数据,比如有分析数据、历史数据,Hbase存储的是可变的、实时的数据。

  Zookeeper主要负责协调工作流程。随着计算节点的增多,集群成员需要彼此同步并了解去哪里访问服务和如何配置。

  Sqoop是一种导入导出工具,帮助实现MySQL,HDFS,Hbase,ctl之间的数据导入导出。

  Mahout主要是用于机器学习,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。

  Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。

  Pig: 大数据分析平台,为用户提供多种接口。

  Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。

  Hcatalog是apache开源的对于表和底层数据管理统一服务平台。

其他的大数据框架

  除了Hadoop之外,还有一些其他的大数据框架,比如Apache Storm、Apache Samza、 Apache Spark、 Apache Flink等等

Apache Storm是一种侧重于极低延迟的流处理框架,也许是要求近实时处理的工作负载的最佳选择。该技术可处理非常大量的数据,通过比其他解决方案更低的延迟提供结果。

  Apache Samza是一种与Apache Kafka消息系统紧密绑定的流处理框架。虽然Kafka可用于很多流处理系统,但按照设计,Samza可以更好地发挥Kafka独特的架构优势和保障。该技术可通过Kafka提供容错、缓冲,以及状态存储。

  Apache Spark是一种包含流处理能力的下一代批处理框架。与Hadoop的MapReduce引擎基于各种相同原则开发而来的Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度。

  Apache Flink是一种可以处理批处理任务的流处理框架。该技术可将批处理数据视作具备有限边界的数据流,借此将批处理任务作为流处理的子集加以处理。为所有处理任务采取流处理为先的方法会产生一系列有趣的副作用。