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'