hadoop学习笔记

来源:互联网 发布:mac怎么更新os 编辑:程序博客网 时间:2024/05/16 02:24

Map_reduce

Tez     基于yarn 的map/reduceDAG 框架

它把Map/Reduce过程拆分成若干个子过程,同时可以把多个Map/Reduce任务组合成一个较大的DAG任务,减少了Map/Reduce之间的文件存储。同时合理组合其子过程,也可以减少任务的运行时间。

Storm   处理数据流,实时处理系统

Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域

Spark    在内存中计算,数据量不大逻辑复杂时较好

l  不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

l  Spark streaming :spark用来处理数据流,实时数据的模块

Yarn     recoursemanager

Flume   日志采集、聚合和传输的日志收集系统,

支持在日志系统中定制各类数据发送方,用于收集数据;

Kafka   Kafka是一个可持久化的分布式的消息队列

分布式发布订阅消息系统

 

 

 

flume+kafka+storm

flume+hdfs

HIVE 操作

类sql查询语言,称为HQL,可以将sql语句转换成mapreduce任务进行运行

1. 子查询相当于表名,使用from 关键字需要指定真实表名或表别名。

2. hive支持union(已验证)但性能会比较差 ,支持union all 

3. 子查询中使用union all 时,在子查询里不能使用count、sum 等 聚合函数 

4. 两表直接进行unionall 可以使用count、sum 等聚合函数 

5. 两张表进行unionall 取相同的字段名称,可正常输出指定数据内容,且结果为两张表的结果集

Load data [local] inpath ‘path’  overwrite|into table tb_name[partition (par)]

Insert overwrite|into table tb_name[partition (par)] select .. From ..

join(只支持等值关联)

•      left|right|full [outer] join

•      left semi join

•      cross join    -- 笛卡儿乘积

分区表动态分区生成

•       set hive.exec.dynamic.partition=true;

•       set hive.exec.dynamic.partition.mode=nonstrict;

•       set hive.exec.max.dynamic.partitions.pernode=10000;

开窗函数 over

row_number()over(partition by start_cityorder by route_id) as row,

rank()over(partition by start_city order byroute_id) as rnk,

dense_rank()over(partition by start_cityorder by route_id) as drnk

cube

根据GROUP BY的维度的所有组合进行聚合(其中的GROUPING__ID,表示结果属于哪一个分组集合)

select substr(create_time,1,7) asmonth,substr(create_time,1,10) as day,count(distinct order_id) asorders,grouping__id

from kn1_ord_team_order_detail

where create_time>='2015-06-01'

group bysubstr(create_time,1,7),substr(create_time,1,10)

with cube

order by grouping__id

 

 

0 0
原创粉丝点击