文档章节

Sqoop 操作实例补充

P
 PeakFang-BOK
发布于 10/16 09:18
字数 991
阅读 16
收藏 0

导入指定字段和指定条件的行记录

# 指定导入的字段
--columns <col,col,col…>
# 指定过滤条件
--where <where clause>
# 设置切分的工作单元
--split-by <column-name>
# 目标目录存在是删除目标目录
--delete-target-dir
# 指定导入的并行map数量,也即导入后生成的文件个数,默认是4个
-m,--num-mappers <n>

/usr/local/sqoop-1.4.7/bin/sqoop  import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --table actor  --columns "first_name,last_name,last_update"  --where  "actor_id > 100"   --username sakila -P  --hive-import  --hive-table  db01.t_actor_bigthan_100  --delete-target-dir  --num-mappers 2 

[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop  import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --table actor  --columns "first_name,last_name,last_update"  --where  "actor_id > 100"   --username sakila -P  --hive-import  --hive-table  db01.t_actor_bigthan_100  --delete-target-dir  --num-mappers 2
...
18/10/15 09:45:00 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Enter password:
...
18/10/15 09:45:30 INFO mapreduce.Job: Running job: job_1539542065576_0001
18/10/15 09:45:57 INFO mapreduce.Job: Job job_1539542065576_0001 running in uber mode : false
18/10/15 09:45:57 INFO mapreduce.Job:  map 0% reduce 0%
18/10/15 09:46:18 INFO mapreduce.Job:  map 50% reduce 0%
18/10/15 09:46:19 INFO mapreduce.Job:  map 100% reduce 0%
18/10/15 09:46:20 INFO mapreduce.Job: Job job_1539542065576_0001 completed successfully
...
18/10/15 09:46:49 INFO hive.HiveImport: OK
18/10/15 09:46:49 INFO hive.HiveImport: Time taken: 3.269 seconds
18/10/15 09:46:50 INFO hive.HiveImport: Loading data to table db01.t_actor_bigthan_100
18/10/15 09:46:51 INFO hive.HiveImport: OK
18/10/15 09:46:51 INFO hive.HiveImport: Time taken: 1.595 seconds
18/10/15 09:46:51 INFO hive.HiveImport: Hive import complete.
18/10/15 09:46:52 INFO hive.HiveImport: Export directory is contains the _SUCCESS file only, removing the directory.

# 导入后hdfs上的数据
[hadoop@node224 ~]$ hdfs dfs -cat /user/hive/warehouse/db01.db/t_actor_bigthan_100/part-m-00001
GEOFFREYHESTON2006-02-15 04:34:33.0
BENHARRIS2006-02-15 04:34:33.0
MINNIEKILMER2006-02-15 04:34:33.0

# 通过hive beeline查询
0: jdbc:hive2://node225:10000/db01> select * from t_actor_bigthan_100 limit 3;
+---------------------------------+--------------------------------+----------------------------------+--+
| t_actor_bigthan_100.first_name  | t_actor_bigthan_100.last_name  | t_actor_bigthan_100.last_update  |
+---------------------------------+--------------------------------+----------------------------------+--+
| SUSAN                           | DAVIS                          | 2006-02-15 04:34:33.0            |
| WALTER                          | TORN                           | 2006-02-15 04:34:33.0            |
| MATTHEW                         | LEIGH                          | 2006-02-15 04:34:33.0            |
+---------------------------------+--------------------------------+----------------------------------+--+
3 rows selected (0.46 seconds)

导入查询结果集

# 导入指定的查询结果集
-e,--query <statement>
# 导入查询结果,必须设置目标目录
--target-dir

[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop  import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --query  "SELECT a.first_name,a.last_name,c.title,c.description,c.replacement_cost,c.special_features,c.last_update FROM actor a JOIN film_actor b  ON (a.actor_id=b.actor_id)  JOIN film c ON (b.film_id=c.film_id)  WHERE  a.first_name='PENELOPE'  AND \$CONDITIONS"  --username sakila -P --delete-target-dir --target-dir /tmp/hive/sqoop/query  --num-mappers 1
...
Enter password:
18/10/15 10:59:51 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
...
18/10/15 11:00:20 INFO mapreduce.Job: Job job_1539542065576_0006 running in uber mode : false
18/10/15 11:00:20 INFO mapreduce.Job:  map 0% reduce 0%
18/10/15 11:00:33 INFO mapreduce.Job:  map 100% reduce 0%
18/10/15 11:00:33 INFO mapreduce.Job: Job job_1539542065576_0006 completed successfully
...
18/10/15 11:00:34 INFO mapreduce.ImportJobBase: Transferred 18.1133 KB in 34.1914 seconds (542.4759 bytes/sec)
18/10/15 11:00:34 INFO mapreduce.ImportJobBase: Retrieved 102 records.

hdfs上确认导入的文件
[hadoop@node224 ~]$ hdfs dfs -cat /tmp/hive/sqoop/query/part-m-00000
PENELOPE,GUINESS,ACADEMY DINOSAUR,A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies,20.99,Deleted Scenes,Behind the Scenes,2006-02-15 05:03:42.0

通过Options Files控制导入

# options-file 记录导出导入脚本的文件
[root@node222 ~]# cat /usr/local/sqoop-1.4.7/option_files/imp_rowset_to_hdfs.sqo
# 测试通过操作文件进行导入
import
# 连接MySQL
--connect 
jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false
# 结果集,在option file中SQL语句不用引号包含
--query  
SELECT a.first_name,a.last_name,c.title,c.description,c.replacement_cost,c.special_features,c.last_update FROM actor a JOIN film_actor b  ON (a.actor_id=b.actor_id)  JOIN film c ON (b.film_id=c.film_id)  WHERE  a.first_name='PENELOPE'  AND $CONDITIONS
# MySQL数据用户名
--username 
sakila
# 密码运行时输入
-P
# 删除已存在的目录
--delete-target-dir
# 执行新目录
--target-dir
/tmp/hive/sqoop/query
# 指定并行map数,否则会提示 When importing query results in parallel, you must specify --split-by
--num-mappers 
1

[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop  --options-file /usr/local/sqoop-1.4.7/option_files/imp_rowset_to_hdfs.sqo
...
Enter password:
...
18/10/15 14:03:23 INFO mapreduce.Job:  map 0% reduce 0%
18/10/15 14:03:42 INFO mapreduce.Job:  map 100% reduce 0%
18/10/15 14:03:43 INFO mapreduce.Job: Job job_1539583112983_0001 completed successfully
...
18/10/15 14:03:44 INFO mapreduce.ImportJobBase: Transferred 18.1133 KB in 43.9982 seconds (421.5623 bytes/sec)
18/10/15 14:03:44 INFO mapreduce.ImportJobBase: Retrieved 102 records.

 

© 著作权归作者所有

共有 人打赏支持
P
粉丝 5
博文 119
码字总数 296589
作品 0
西安
架构师
私信 提问
完全分布式(四)Sqoop 安装部署及操作示例

本次采用完全分布式系列的hadoop集群,安装配置过程详细参见 完全分布式集群(二)hadoop2.6.5安装部署 Hive在分布式集群上的部署配置参见 完全分布式集群(三)hive-2.1.1安装部署 检查本地...

PeakFang-BOK
10/12
0
0
使用sqoop将数据从mysql同步到hbase

--- sqoop 数据同步 hbase --- 使用sqoop将数据从mysql同步到hbase知识点-HBase初体验知识点-愉快地通过Thrift访问HBase知识点-HBaseClient(Java) > 目前机器使用的sqoop版本 > sqoop1.4.6文...

知了小巷
2017/12/16
0
0
2、sqoop的命令使用

Sqoop中文手册 1.概述 本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档。 2.codegen --> 将关系数据库表映射为一个Java文件、Java class类、以及相关的jar...

刘付kin
2016/12/04
29
0
基于Scala构建分布式调度ETL系统Akkaflow

Akkaflow分布式调度系统 演示系统: 点击这里 用户/密码:admin/admin,项目托管地址:点击这里 简介 是一个基于架构上构建的分布式高可用ETL调度工具,可以把一个job中子任务按照拓扑关系在集...

kent7306
2017/04/02
0
0
HAWQ取代传统数仓实践(五)——自动调度工作流(Oozie、Falcon)

一旦数据仓库开始使用,就需要不断从源系统给数据仓库提供新数据。为了确保数据流的稳定,需要使用所在平台上可用的任务调度器来调度ETL定期执行。调度模块是ETL系统必不可少的组成部分,它不...

wzy0623
2017/05/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.9

关于QThread,无F*k说的。文档说的差不多,更多的是看到很多人提到Qt开发者之一的“你TM的做错了(You're doing it wrong...)”,这位大哥2010年写的博客,下面评论很多,但主要还是集中在2...

Ev4n
25分钟前
1
0
constructor / destructor

_attribute__表示属性,是Clang提供的一种源码注释,方便开发者向编译器表达诉求,一般以__attribute__(*)的方式出现在代码中。为了方便使用,一些常用属性被定义成了宏,经常出现在系统头文...

HeroHY
25分钟前
1
0
大数据教程(7.6)shell脚本定时采集日志数据到hdfs

上一篇博客博主分享了hadoop内置rpc的使用案例,本节博主将为小伙伴们分享一个在实际生产中使用的日志搜集案例。前面的文章我们有讲到过用户点击流日志分析的流程,本节就是要完成这个分析流...

em_aaron
53分钟前
1
0
wave和pcm互转

wav->pcm pcm->wav c#代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using Sys......

whoisliang
56分钟前
1
0
Win10:默认的图片打开应用,打开图片时速度明显很慢的解决办法

首先,我们随便地打开一张图片。然后,点击右上角的三个小点,最后点击弹出菜单最下面的“设置”。如下图: 在“设置”中找到下面的“人物”,把它关掉就好了。 原来,默认情况下,Win 10的图...

LivingInFHL
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部