Hadoop排序工具用法小结

Hadoop用于对key的排序和分桶的设置选项比较多和复杂,目前在公司内主要以KeyFieldBasePartitioner和KeyFieldBaseComparator被hadoop用户广泛使用。

基本概念:

Partition:分桶过程,用户输出的key经过partition分发到不同的reduce里,因而partitioner就是分桶器,一般用平台默认的hash分桶也可以自己指定。
Key:是需要排序的字段,相同分桶&&相同key的行排序到一起。

下面以一个简单的文本作为例子,通过搭配不同的参数跑出真实作业的结果来演示这些参数的使用方法。
假设map的输出是这样以点号分隔的若干行:

d.1.5.23
e.9.4.5
e.5.9.22
e.5.1.45
e.5.1.23
a.7.2.6
f.8.3.3

我们知道,在streaming模式默认hadoop会把map输出的一行中遇到的第一个设定的字段分隔符前面的部分作为key,后面的作为value,如果输出的一行中没有指定的字段分隔符,则整行作为key,value被设置为空字符串。 那么对于上面的输出,如果想用map输出的前2个字段作为key,后面字段作为value,并且不使用hadoop默认的“\t”字段分隔符,而是根据该文本特点使用“.”来分割,需要如何设置呢

bin/hadoop streaming -input /tmp/comp-test.txt -output /tmp/xx -mapper cat -reducer cat \
-jobconf stream.num.map.output.key.fields=2 \
-jobconf stream.map.output.field.separator=. \
-jobconf mapred.reduce.tasks=5

继续阅读

数据仓库的简要认知

数据仓库是什么

  1. 决策支持为目的:所涉及的操作主要是数据的查询
  2. 面向主题(Subject-Orientation):主题是指用户使用数据仓库进行决策时所关心的重点方面
  3. 数据集成(Integrated):数据需要经过四个步骤处理:数据抽取、数据清理、数据转换、数据装载,也称为ETL
  4. 随时间而变化:有时间频率,数据有生命周期
  5. 大数据:Petabyte
  6. 非结构化
  7. 元数据(The Metadata):描述某个主题的数据的数据(例如create table时结构怎么样的)

关键技术

数据管理,数据处理 – Data Structure
1. Meta data
2. Data storage
3. Data processing pipelines (ETL)

数据展现/报表 – Report Structure
1. BI tools
2. Visualization
3. Dashboard

数据挖掘 – Algorithm (关联分析,聚类分析)
1. Statistics
2. Machine learning

hadoop社区提供的整套warehouse方案

SQL-like + MapReduce + Nosql

继续阅读

QueryEngine 学习

简介

QueryEngine 是DT开发的一个高可用的 类SQL 计算服务。该服务旨在开发并为用户提供一个高级的数据处理语言及服务,使得用户可以简单、方便、灵活地表达自己的数据处理逻辑。

QueryEngine 目前支持交互式和批处理两种使用方式。在交互式下,用户输入一个语句,就解释执行一个语句并返回结果;在批处理模式下,用户将自己的程序逻辑写在一个文件中,通过客户端提交给服务,服务会保证整个程序逻辑的执行。

“TOP 50”

一般来看,命令式语言以“Hello,world”作为第一个程序;函数式语言以“qsort”作为第一个程序;而这边,数据流处理语言以“Top 50”作为第一个程序。

【假设部署好的QueryEngine客户端目录为qe_client。】

继续阅读