sqoop的常见操作

来源:互联网 发布:淘宝找不到菜鸟驿站 编辑:程序博客网 时间:2024/04/29 19:25

1、  sqoop 安装使用,解压,复制mysql-connector-5.1.8.jar到 sqoop/lib 目录下,切换到sqoop/bin即可使用;需要配置数据库中可以远程连接:

GRANT ALL PRIVILEGES ON*.* TO root@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

flush privileges;

2、  Sqoop 的一些常用命令

1)、./sqoop list-databases --connect jdbc:mysql://192.168.3.45:3306 –usernameroot –password ‘’  //列出所有数据库

2)、./sqoop list-tables --connect jdbc:mysql://192.168.3.45:3306/dengpao--username root --password  ‘’ //列出dengpao 库中的所有表

3)、./sqoop import --connect jdbc:mysql://192.168.3.45:3306/dengpao--username root --password '' --table wt_ad //包dengpao库中的wt_ad 导入到默认的hdfs(/usr/root/wt_ad)上

./sqoop import --connectjdbc:mysql://192.168.3.45:3306/dengpao --username root --password '' --tablewt_ad  --target-dir  /sqoop_wt_ad –m 2 把数据导入到指定目录下/sqoop_wt_ad(启动两个jar进行导数据)

4)、./sqoop import –connect jdbc:mysql://192.168.3.45:3306/dengpao –usernameroot –password ‘’ –table wt_ad –target—dir /sqoop_wt_ad_v2 –m 2  --fields-terminated-by ‘\t’ –columns ‘ad_id,ad_title’导出数据以‘\t’分割,导出数据库列为’ad_id,ad_title’

5)、./sqoop import --connect jdbc:mysql://192.168.3.45:3306/dengpao--username root --password '' --table wt_ad -m 3 --target-dir /import/wt_ad_v6--columns 'ad_id,ad_img' --fields-terminated-by "\t" --where'ad_id=10' //添加查询条件导入

上面都是只导出一张表的数据。

6)、./sqoop import --connect jdbc:mysql://192.168.3.45:3306/dengpao--username root --password '' --query 'select * from wt_case WHERE $CONDITIONS'-m 1 --target-dir /import/wt_ad_v7 --fields-terminated-by "\t" 查询表数据,可以多查询多条,-m只能等于1

7)、./sqoop import --connect jdbc:mysql://192.168.3.45:3306/dengpao--username root --password '' --query 'select * from wt_case WHERE $CONDITIONS'-m 2 --target-dir /import/wt_ad_v8 --fields-terminated-by "\t"--split-by wt_case.case_id 启动多个manenode 需要指定以什么来分割namenode所跑的数据 –split-bywt_case.case_id

8)、./sqoop export --connect jdbc:mysql://192.168.3.45:3306/_xiaotest--username root --password '' --export-dir '/import/wt_ad_v8' --table wt_case--fields-terminated-by '\t' 有hdfs导入到mysql

问题:中文乱码的解决

Hdfs导入到mysql编码问题解决:

9)、加上?useUnicode=true&characterEncoding=utf-8并且需要“”引起

./sqoop export--connect"jdbc:mysql://192.168.3.45:3306/_xiaotest?useUnicode=true&characterEncoding=utf-8"--username root --password '' --export-dir '/import/wt_ad_v8' --table wt_case--fields-terminated-by '\t'

0 0