自学总是需要记录很多东西。
这次主要说下基于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 \
--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快很多。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zdNlXRUpVMGNjY5ZUbZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN5QTNxADM5EDNwYDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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。