网站建设的业务规划,黄骅港汽车站客车时刻表,百度热议排名软件,关于公司网站怎么做概述
Apache Sqoop#xff08;SQL-to-Hadoop#xff09;项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 的帮助下#xff0c;轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系统 (如HBase和Hive)中#xff1b;同时也可以把数据从 Hadoop 系统…概述
Apache SqoopSQL-to-Hadoop项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 的帮助下轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系统 (如HBase和Hive)中同时也可以把数据从 Hadoop 系统里抽取并导出到关系型数据库里。
Sqoop是一个在结构化数据和Hadoop之间进行批量数据迁移的工具结构化数据可以是MySQL、Oracle等RDBMS。Sqoop底层用MapReduce程序实现抽取、转换、加载MapReduce天生的特性保证了并行化和高容错率而且相比Kettle等传统ETL工具任务跑在Hadoop集群上减少了ETL服务器资源的使用情况。在特定场景下抽取过程会有很大的性能提升。
如果要用Sqoop必须正确安装并配置Hadoop因依赖于本地的Hadoop环境启动MR程序MySQL、Oracle等数据库的JDBC驱动也要放到Sqoop的lib目录下。
参数解析
查看sqoop命令帮助文档
# 查看sqoop支持哪些操作
sqoop help# 查看具体操作中有哪些参数可以指定
sqoop help import
sqoop help export通用参数:
--connect jdbc-uri: 连接RDBMS的jdbc连接字符串例如–connect jdbc:mysql:// MYSQL_SERVER:PORT/DBNAME。--username username: 连接RDBMS所使用的用户名。--password password: 连接RDBMS所使用的密码明文。--hadoop-home hdir: hadoop数据存储路径--password-file password-file: 使用文件存储密码。-p: 交互式连接RDBMS的密码。导入参数
--append 追加数据到HDFS已经存在的文件中。--as-sequencefile import序列化的文件。--as-textfile import文本文件 默认。--columns col,col,col… 指定列import逗号分隔比如–columns “id,name”。--delete-target-dir 删除存在的import目标目录。--direct 直连模式速度更快HBase不支持--split-by 分割导入任务所使用的字段需要明确指定推荐使用主键。--inline-lob-limit n 设置内联的BLOB对象的大小。--fetch-size n 一次从数据库读取n个实例即n条数据。-e,--query statement 构建表达式statement执行。--target-dir d 指定HDFS目标存储目录。--warehouse-dir d 可以指定为-warehouse-dir/user/hive/warehouse/即导入数据的存放路径如果该路径不存在会首先创建。--table table-name 将要导入到hive的表。--where where clause 指定where从句如果有双引号注意转义 \$CONDITIONS不能用or子查询join。-z,--compress 开启压缩。--null-string null-string string列为空指定为此值。--null-non-string null-string 非string列为空指定为此值-null这两个参数are optional, 如果不设置会指定为”null”。--autoreset-to-one-mapper 如果没有主键和split-by用one mapper import split-by和此选项不共存。-m,--num-mappers n 建立n个并发执行import默认4个线程。Hive参数:
--hive-database database-name 指定要把HDFS数据导入到哪个Hive库。--hive-table table-name 设置到Hive当中的表名。--hive-delims-replacement arg 导入到hive时用自定义的字符替换掉\n, \r, and \01。--hive-drop-import-delims 导入到hive时删除字段中\n, \r\t and \01等符号避免字段中有空格导致导入数据被截断。--hive-home dir 指定Hive的存储目录。--hive-import 将HDFS数据导入到Hive中会自动创建Hive表使用hive的默认分隔符。--hive-overwrite 对Hive表进行覆盖操作需配合--hive-import使用如果Hive里没有表会先创建之不然就是追加数据。--hive-partition-key partition-key hive分区的key。--hive-partition-value partition-value hive分区的值。--map-column-hive arg 类型匹配SQL类型对应到hive类型。--create-hive-table 自动推断表字段类型直接建表hive-overwrite功能可以替代掉了但Hive里此表不能存在不然操作会报错。Sqoop与DataX对比
总结
1.DataX和Kettle都是通用的数据集成工具支持多种数据源和目标提供了强大的数据转换和清洗功能。
2.DataX和Kettle的区别在于开发者和用户群体DataX在阿里巴巴内部得到广泛应用而Kettle则是一个独立的开源项目。
3.Sqoop主要用于Hadoop和关系型数据库之间的数据传输适用于大规模数据的导入导出任务。参考资料: https://zhuanlan.zhihu.com/p/444568213
http://blog.51yip.com/hadoop/2054.html
https://blog.csdn.net/YuannaY/article/details/131427195
https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html