hive 导入 mysql_将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式...

交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HBase中存储,然后使用Hive外部表关联HBase,对HBase中数据进行查询、统计分析,将分析结果保存在一张Hive表中,最后使用Sqoop将该表中数据导入到MySQL中。整个流程大概如下:

fb2ea81796458692535f7eb9d2d15441.png

下面我主要介绍Hive关联HBase表——Sqoop导出Hive表到MySQL这些流程,原始数据集收集、MapReduce清洗及WEB界面展示此处不介绍。

一、HBase数据库表

hbase(main):003:0> list

TABLE

transtable

1 row(s) in 0.0250 seconds

=> ["transtable"]

hbase(main):004:0> describe 'transtable'

DESCRIPTION                                                                                                        ENABLED

'transtable', {NAME => 'jtxx', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VER true

SIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLO

CKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}

1 row(s) in 0.0480 seconds

创建一个名叫“transtable”的HBase表,列族是:“jtxx”。HBase中的部分数据如下:

hbase(main):008:0> get 'transtable','32108417000000013220140317000701'

COLUMN                                        CELL

jtxx:cdbh                                    timestamp=1429597736296, value=03

jtxx:clbj                                    timestamp=1429597736296, value=0

jtxx:cllb                                    timestamp=1429597736296, value=0

jtxx:cllx                                    timestamp=1429597736296, value=3

jtxx:clsd                                    timestamp=1429597736296, value=127.00

jtxx:hphm                                    timestamp=1429597736296, value=\xE8\x8B\x8FKYV152

jtxx:wflx                                    timestamp=1429597736296, value=0

jtxx:xsfx                                    timestamp=1429597736296, value=03

8 row(s) in 0.1550 seconds

二、创建Hive外部表关联HBase表

create external table transJtxx_Hbase

(

clxxbh string,

xsfx string,

cdbh string,

hphm string,

clsd string,

cllx string,

clbj string,

cllb string,

wflx string

)

stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

with serdeproperties ("hbase.columns.mapping" =":key,jtxx:xsfx,jtxx:cdbh,jtxx:hphm,jtxx:clsd,jtxx:cllx,jtxx:clbj,jtxx:cllb,jtxx:wflx") TBLPROPERTIES ("hbase.table.name" = "transtable");

hbase.columns.mapping要对应hbase数据库transtable表中列族下的列限定符。此处一定要是外部表

查看是否关联成功,如何执行一条语句能够查询出HBase表中数据,则关联成功。

hive> select *  from transjtxx_hbase where clxxbh like '321084170000000132%';

Total jobs = 1

Launching Job 1 out of 1

Number of reduce tasks is set to 0 since there's no reduce operator

Starting Job = job_1428394594787_0007, Tracking URL = http://secondmgt:8088/proxy/application_1428394594787_0007/

Kill Command = /home/hadoopUser/cloud/hadoop/programs/hadoop-2.2.0/bin/hadoop job  -kill job_1428394594787_0007

Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0

2015-04-21 17:27:18,136 Stage-1 map = 0%,  reduce = 0%

2015-04-21 17:27:35,029 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 12.31 sec

MapReduce Total cumulative CPU time: 12 seconds 310 msec

Ended Job = job_1428394594787_0007

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值