Hadoop 复习与实践(2)hadoop 生态快速上手

来源:互联网 发布:java多分支语句有哪些 编辑:程序博客网 时间:2024/06/17 03:16

自学总是需要记录很多东西。
这次主要说下基于hue说下一整套东西大概是什么样子

环境搭建

hadoop的一套系统可以在cloudera上下载这里提供一个docker的链接,docker相关服务的文档它们已经不维护了,但出于学习目的,还是可以用它们的镜像来快速搭建系统。docker run --hostname=quickstart.cloudera --privileged=true -t -i -p 8888:8888 -p 80:80  -p 7180:7180 cloudera/quickstart /usr/bin/docker-quickstart

快速上手

数据导入

Sqoop导入

通过sqoop可以将关系型数据库的数据快速导入,这里将mysql数据库中的输入导入到hive的目录下:warehouse-dir。
$ sqoop import-all-tables \    -m 1 \    --connect jdbc:mysql://quickstart:3306/retail_db \    --username=cloudera \    --password=cloudera \    --compression-codec=snappy \    --as-parquetfile \    --warehouse-dir=/user/hive/warehouse \    --hive-import
数据导入结束后,可以使用impala或者hive直接打开,注意打开的时候需要先重置表关系,用下面的命令。
invalidate metadata;
查询的语法和mysql基本一样,impala查询的速度会比hive快很多。

这里写图片描述

hive上传

可以将文本文件通过特定分割符分开,放到hive的文件夹下,然后通过hive的命令转化为关系型数据库格式导入,命令在hive的窗口里执行即可。
CREATE EXTERNAL TABLE intermediate_access_logs (    ip STRING,    date STRING,    method STRING,    url STRING,    http_version STRING,    code1 STRING,    code2 STRING,    dash STRING,    user_agent STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'WITH SERDEPROPERTIES (    'input.regex' = '([^ ]*) - - \\[([^\\]]*)\\] "([^\ ]*) ([^\ ]*) ([^\ ]*)" (\\d*) (\\d*) "([^"]*)" "([^"]*)"',    'output.format.string' = "%1$$s %2$$s %3$$s %4$$s %5$$s %6$$s %7$$s %8$$s %9$$s")LOCATION '/user/hive/warehouse/original_access_logs';

Spark数据分析

这边了解不多,先埋下坑,日后在填。先大概说下: spark-shell --master yarn-client 进入执行状态。写简单的mapreduce任务,注意cache的地方(数据加载到内存中,快速执行分析)

Pig 脚本

脚本,原理很简单,hive是将任务分割为多个map-reduce执行,而Pig相当于通过特定方式跳过中间冗余步骤,加速执行。

Workflow

Hue提供一条可视化的流程管理,可以将不同模块的输入输出串起来形成一套workflow。

这里写图片描述

To Be Continue

报表生成

阅读全文
0 0
原创粉丝点击