Python 海量数据处理之 _Hadoop 家族

  本篇是 hadoop 部分的最后一篇,主要介绍 Hadoop 家族的常用工具。以及解答学习过程中的一些疑问。

hadoop 家族

 Pig 是上层封装了的数据流处理工具。

 Mahout 是基于集群的数据挖掘工具。

 Zookeeper 是集群管理工具,比如配置一些备用服务器,当重要的服务宕机时,及时补救。

  其中黄色部分是 hadoop 安装包中自带的,HDFS 是文件系统支持,MapReduce 是计算支持。

  绿色部分都是向上层提供类似数据库的数据访问,但方式不同。Hive 是基于 MapReduce 的封装,它向上层提供了类似 SQL 语言的 HQL,向下通过 MapReduce 方式访问数据。HBase 在对 HDFS 层的封装,它本质上是一种 key/value 系统,主要负责数据存储,解决的是 HDFS 随机存储方面的问题。

有了 mysql 为什么还要 Hadoop?

  我们之前介绍搭建比特币矿池的时候,使用 zookeeper+kafka+mysql 建立集群,其中用 mysql 建构数据服务器,集群中其它机器通过 ip 和端口访问其数据,配置方便,速度也不错。既然集群中可以使用 mysql 存储数据,那为什么还非要用 hadoop 系列存储工具呢?

 mysql 存放的是数据库,而 hadoop 系列存放的是数据仓库,一方面 HDFS 针对的是更大规模的数据,另一方面 mysql 的数据类型只限于数据库,而 HDFS 比较灵活,可以存储各种类型的数据。

具体安装

  集群中的计算机软硬件可能有所差异,为了保证一致性,最好使用下载软件包的方式安装,而不用 apt-get 系列工具。一般的安装过程主要包括:下载,解包,设置环境变量,修改配置文件,启动等几个部分。