sqoop的import与export及其脚本使用
来源:互联网 发布:吕骋 知乎 编辑:程序博客网 时间:2024/05/31 18:45
Sqoop官方网址:http://sqoop.apache.org/
一、Sqoop的诞生
1、存在的问题
⑴RDBMS:数据大量存储在RDBMS(Oracle、MySQL、DB2等)上,如果需要对数据进行分析,需要将这些数据迁移到HDFS上去。
2、Sqoop的产生和作用
⑴Sqoop:Sql-to-Hadoop
⑵将关系数据库中的某张表数据抽取到Hadoop的HDFS文件系统当中,底层运行还是MapReduce。
⑶将HDFS上的文件数据或者是Hive表中的数据导出到关系型数据库中的某张表中。
⑷Sqoop利用MapReduce批处理方式进行数据传输加快数据传输速度。
二、sqoop的版本
1、Sqoop1 & Sqoop2两个不同版本,完全不兼容;
2、Sqoop2比Sqoop1的改进
⑴引入Sqoop server,集中化管理Connector等;
⑵多种访问方式:CLI,Web UI,REST API ;
⑶引入基于角色的安全机制;
三、sqoop的架构
四、sqoop的使用
1、Sqoop使用要点
2、测试Sqoop
⑴链接MySQL数据库,并list数据库中的databases,测试Sqoop是否配置正确。
$bin/sqoop list-databases \--connect jdbc:mysql://hostname:3306 \--username root \--password root3、import
⑴默认情况下导入数据到HDFS
$/bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable
⑵指定目录和Mapper个数导入HDFS①创建目录
${HADOOP_HOME}/bin/hdfs dfs -mkdir -p /user/sqoop/②设置map个数为1,指定目录为/user/sqoop/,如果目标目录已经存在则先删除$ bin/sqoop import \--connect jdbc:mysql://blue01.mydomain:3306/mydb \--username root \--password root \--table my_user \--target-dir /user/hive/warehouse/my_user \--delete-target-dir \--num-mappers 1 \--fields-terminated-by "\t" \--columns id,passwd \--where "id<=3"⑶增量导入HDFS①增量导入数据到HDFS文件中,可以通过下面三个参数进行设置:--check-column--incremental--last-value$bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable \--num-mappers 1 \--target-dir /user/sqoop/ \--fields-terminated-by "\t" \--check-column id \--incremental append \--last-value 4 //表示从第5位开始导入⑷指定文件格式导入HDFS①默认情况下,导入数据到HDFS,文件存储格式为textfile,可以通过属性进行指定,比如文件存储格式为parquet$bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable \--num-mappers 1 \--target-dir /user/sqoop/ \--fields-terminated-by "\t" \--as-parquetfile⑸指定压缩格式导入HDFS①默认情况下,导入的HDFS文件是不压缩的,可以通过属性--compress 和 --compression-codec设置;$bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable \--num-mappers 1 \--target-dir /user/sqoop/ \--fields-terminated-by "\t" \--compress \--compression-codec org.apache.hadoop.io.compress.SnappyCodec⑹把select查询结果导入HDFS①把select查询结果导入HDFS,必须包含'$CONDITIONS'在where子句中;$ bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--target-dir /user/hive/warehouse/mydb.db/mytable \--delete-target-dir \--num-mappers 1 \--fields-terminated-by "\t" \--query 'select id,account from my_user where id>=3 and $CONDITIONS'⑺导入数据到Hive中$ bin/sqoop import \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable \--num-mappers 1 \--hive-import \--hive-database mydb \--hive-table mytable \--fields-terminated-by "\t" \--delete-target-dir \--hive-overwrite⑻脚本的使用(以数据导入为例)①导入数据到HDFSexport--connectjdbc:mysql://hostname:3306/mydb--usernameroot--passwordroot--tablemytable--num-mappers1--export-dir/user/hive/warehouse/mydb.db/mytable--input-fields-terminated-by"\t"②执行脚本$ bin/sqoop --options-file xxx.opt4、export⑴从Hive或者HDFS导出数据到MySQL$ bin/sqoop export \--connect jdbc:mysql://hostname:3306/mydb \--username root \--password root \--table mytable \--num-mappers 1 \--export-dir /user/hive/warehouse/mydb.db/mytable \--input-fields-terminated-by "\t"
阅读全文
1 0
- sqoop的import与export及其脚本使用
- Sqoop的import和export工具的使用几种案例
- Sqoop中import & export & job & eval与options-file
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop-1.4.4工具import和export使用详解
- Sqoop export and import commands
- Sqoop 1 import/export (Mysql)
- import export default export的使用
- Sqoop的import和export工具常用选项
- Export/Import 使用技巧与常见错误
- Oracle Export与Import的用法
- SET/GET 与 EXPORT/IMPORT的区别
- matlab之原始处理图像几何变换
- oracle存储clob海量文本,采用append的方式
- 两种基于opengl 画球面体的方式
- 开源许可协议
- 微服务与Spring Cloud
- sqoop的import与export及其脚本使用
- PS教你绘制超美的中国风工笔画效果
- 我的第一个web前端博客
- Web集群搭建(1)--模板创建
- java数据类型转换
- java基础(一)
- 闺蜜手机号码:13388886666
- Codeforces 140A New Year Table
- C++运算符重载学习笔记