大数据中的一个export、import数据的工具
用处
一个工具,将hdfs和rdbms(关系型数据库)表之前相互export,import。
安装sqoop
1 | 1. 下载sqoop包 |
基本用法
1 | 1. 从数据库将表数据导入到hdfs上 |
高级用法
1 | 1. 指定输出路径、指定数据分隔符。 |
从数据库总导出数据到hive
一般我们还是把数据导入到hive中,然后利用hql对数据进行分析(而不是直接用mapreduce)
因为直接用mapreduce的话, 我们还要在hive中自己建表,然后跟hdfs上的数据关联,然后才可以分析hive中的数据。过程很繁琐
所以,我们直接将数据库数据导出到hive中,从而直接利用hive的hql对数据分析。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 具体的命令跟我们之前导入hdfs命令基本一致,只是添加了 --hive-import
1. 命令格式
sqoop import --hive-import --connect jdbc:mysql://localhost:3306/hunt --username root --password 123456 --table occupationals --target-dir '/sqoop/hive'
输出:
18/03/11 15:54:44 INFO hive.HiveImport: Loading uploaded data into Hive 这里调用hive进行建表。
18/03/11 15:54:54 INFO hive.HiveImport: OK
18/03/11 15:54:54 INFO hive.HiveImport: Time taken: 1.753 seconds
18/03/11 15:54:54 INFO hive.HiveImport: Loading data to table default.occupationals
18/03/11 15:54:55 INFO hive.HiveImport: Table default.occupationals stats: [numFiles=4, totalSize=1671]
18/03/11 15:54:55 INFO hive.HiveImport: OK
18/03/11 15:54:55 INFO hive.HiveImport: Time taken: 0.336 seconds
18/03/11 15:54:55 INFO hive.HiveImport: Hive import complete.
18/03/11 15:54:55 INFO hive.HiveImport: Export directory is contains the _SUCCESS file only, removing the directory.
即导入成功。
2. 启动hive
之前配置过hive的环境变量,现在直接输入hive即可
输入:hive
输出:
show tables;
OK
occupationals
Time taken: 1.132 seconds, Fetched: 1 row(s)
3. 然后就可以在hive对数据进行分析了
hive> select * from occupationals;
OK
1 计算机软件,系统集成 FILL
2 电信,通信 计算机软件,系统集成 FILL
3 计算机软件,系统集成 互联网,电子商务,网游 FILL
4 计算机软件,系统集成 IT支持及其它 FILL
5 互联网,电子商务,网游 计算机软件,系统集成 FILL
6 电子,电气,半导体,仪器仪表 计算机软件,系统集成 FILL
7 计算机软件,系统集成 电子,电气,半导体,仪器仪表 FILL
8 计算机硬件,设备 计算机软件,系统集成 FILL
9 计算机软件,系统集成 毕业生,实习生,培训生 FILL
10 计算机软件,系统集成 电信,通信 FILL
11 计算机软件,系统集成 美术,设计,创意 FILL
12 教育,培训 计算机软件,系统集成 FILL
13 计算机软件,系统集成 教育,培训 FILL
14 IT支持及其它 计算机软件,系统集成 FILL
15 计算机软件,系统集成 金融,证券,期货,投资 FILL
16 计算机软件,系统集成 计算机硬件,设备 FILL
17 金融,证券,期货,投资 计算机软件,系统集成 FILL
18 毕业生,实习生,培训生 计算机软件,系统集成 FILL
19 客户服务,售前,售后支持 计算机软件,系统集成 FILL
20 计算机软件,系统集成 其他 FILL
21 计算机软件,系统集成 化工 FILL
22 质控,安防 计算机软件,系统集成 FILL
23 生产,加工,制造 计算机软件,系统集成 FILL
24 高级管理 计算机软件,系统集成 FILL
25 传媒,影视,报刊,出版,印刷 计算机软件,系统集成 FILL
26 美术,设计,创意 计算机软件,系统集成 FILL
27 计算机软件,系统集成 客户服务,售前,售后支持 FILL
28 计算机软件,系统集成 汽车,摩托车制造 FILL
Time taken: 0.422 seconds, Fetched: 28 row(s)
hive> select count(*) from occupationals;
Query ID = daejong_20180311160415_e37d036f-2ee8-4613-a6a5-800b36a0f16b
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Starting Job = job_1520743614849_0007, Tracking URL = http://dottie:8088/proxy/application_1520743614849_0007/
Kill Command = /Users/daejong/Documents/Java/hadoop-2.7.3/bin/hadoop job -kill job_1520743614849_0007
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2018-03-11 16:04:22,432 Stage-1 map = 0%, reduce = 0%
2018-03-11 16:04:27,682 Stage-1 map = 100%, reduce = 0%
2018-03-11 16:04:32,852 Stage-1 map = 100%, reduce = 100%
Ended Job = job_1520743614849_0007
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 HDFS Read: 8607 HDFS Write: 3 SUCCESS
Total MapReduce CPU Time Spent: 0 msec
OK
28
Time taken: 18.081 seconds, Fetched: 1 row(s)
导出操作:从hdfs上将数据导入到关系型数据库。
1 | 1. 在mysql数据库上创建好表。 |