hadoop权威指南

发布时间 2023-09-21 08:54:46作者: gendway

Hadoop权威指南

第1部分 Hadoop基础知识

第2章 关于MapReduce

MapReduce分为两个阶段,map阶段和reduce阶段。map函数是数据准备阶段,它会准备好一个键值对的数据集合,然后交由reduce函数来处理,比如进行排序、分组、聚合等操作。

MapReduce处理示例,每年全球记录的最高记录是多少?

Map阶段的处理,对一行文本进行筛选,会有输入键(文件行的偏移量),输入值(文件行的值),输出键(年份),输出值(气温)。

Shuffle阶段的处理,map函数的输出经由MapReduce框架处理后,发送到reduce函数。这个处理过程基于键来对键值对进行排序和分组。

Reduce阶段的处理,遍历整个列表并从中找出最大的读数。

 

第3章 HDFS(Hadoop分布式文件系统)

管理网络中跨多台计算机存储的文件系统叫分布式文件系统,主要应对于大数据的存储方案。Hadoop实际上是一个综合性的文件系统抽象,可以自行配置HDFS的路径。

3.1 HDFS的设计

HDFS以流式数据访问模式来存储超大文件。有如下特性:

  • 流式数据访问:为整个大数据的吞吐量而设计,而不是基于其他数据库处理小规模的数据以低时延的方式来完成。

  • HDFS的存储块默认为128M,是比较大的,其目的是一次初始化,减少寻址开销。

     

第4部分 Hadoop相关开源项目

第20章 关于hbase

20.2 概念

HBase为一个面向列的存储器,实际上它是一个面向列族的存储器。调优和存储都是在列族这个层次上进行的。

20.2.1 区域

HBase自动把表水平划分为区域(region),超过某一个设定的阈值,就会开始在不同的节点上构建区域。

20.2.2 实现

集群是基于zookeeper来进行管理的,底层会访问HDFS文件系统。

20.2.3 底层数据结构以及快的原理

LMS树,基于B+树衍生而来。借助hadoop分片同时计算,以及使用了稀疏表的方式。

20.3 安装

tar -zxf hbase-...tar.gz
export HBASE_HOME=/workspace/app/hbase-2.5.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

测试驱动

# 使用本地文件系统/tmp持久化存储数据
start-hbase.sh

# 表、数据操作
hbase shell
create 'test','data'
list
put 'test','row1','data:1','value1'
put 'test','row2','data:2','value2'
put 'test','row3','data:3','value3'
get 'test','row1'
scan 'test'
# 删除表
disable 'test'
drop 'test'

# 气象统计
create 'stations',{NAME=>'info'}
create 'observations',{NAME=>'data'}

 

 

附录

版本兼容问题

从代码中可以看出,书中的hadoop是基于2.5.1与hadoop的0.98.7来使用的。参考链接http://archive.apache.org/dist/

执行代码

  • 使用export导出至环境变量。

  • 导入到lib的方式。

  • 对于高版本的hadoop执行:hadoop jar hadoop-examples.jar MaxTemperature input/ncdc/sample.txt output。

# 递归查询文件夹的字符
find ./ | xargs grep -ri "lanqiu"