天天看点

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

自学总是需要记录很多东西。

这次主要说下基于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快很多。
           
Hadoop 复习与实践(2)hadoop 生态快速上手环境搭建快速上手

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。
           
Hadoop 复习与实践(2)hadoop 生态快速上手环境搭建快速上手

To Be Continue

Solr与Elastic search

报表生成

继续阅读