Sqoop 是一款用来在不同数据存储软件之间进行数据传输的开源软件,它支持多种类型的数据储存软件。

安装 Sqoop

1.下载sqoop并加mysql驱动包

http://mirror.bit.edu.cn/apache/sqoop/,下载,如下载sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,

要从 MySQL 导数据需要安装 MySQL driver。如 mysql-connector-java-5.1.38.tar.gz,解压以后把 jar 包放到 Sqoop 目录下的 lib 目录下。

2.配置环境变量

要把HADOOP_MAPRED_HOME添加到系统环境,否则会报错/usr/software/sqoop/bin/../../hadoop/mapreduce does not exist!

需要 vi /etc/profiles加

SQOOP_HOME=/usr/software/hadoop
export HADOOP_MAPRED_HOME=/usr/software/hadoop

export SQOOP_HOME=/usr/software/hadoop

 

Sqoop使用,mysql,hbase,hive等相互转换

 

从 MySQL 到 HDFS

mysql测试表 bbb 为例

sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --check-column <col> --incremental <mode> --last-value <value> --target-dir <hdfs-dir> --fields-terminated-by '\t'
例子:
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password admin --table bbb --check-column id --incremental append --last-value '1' --target-dir output_hb --fields-terminated-by '\t'

参数说明:

参数说明:

dburi:数据库的访问连接,例如: jdbc:mysql://192.168.1.124:3306/ 如果您的访问连接中含有参数,那么请用单引号将整个连接包裹住,例如’jdbc:mysql://192.168.1.124:3306/mydatabase?useUnicode=true’
dbname:数据库的名字,例如:user。
username:数据库登录用户名。
password:用户对应的密码。
tablename:MySQL 表的名字。
col:要检查的列的名称。
mode:该模式决定Sqoop如何定义哪些行为新的行。取值为append或lastmodified。
value:前一个导入中检查列的最大值。
hdfs-dir:HDFS 的写入目录,例如:/user/hive/result。
–check-column,用来指定一些列,这些列在导入时用来检查做决定数据是否要被作为增量数据,在一般关系型数据库中,都存在类似Last_Mod_Date的字段或主键。注意:这些被检查的列的类型不能是任意字符类型,例如Char,VARCHAR…(即字符类型不能作为增量标识字段) 
–incremental,用来指定增量导入的模式(Mode),append和lastmodified 
–last-value,指定上一次导入中检查列指定字段最大值
--fields-terminated-by 行分隔符 ,如 '\t'
--lines-terminated-by 列分隔符,hive只支持'\n'作为行分隔符,默认也是'\n'
更加详细的参数使用请参考 Sqoop Import。
View Code

相关文章:

  • 2021-06-04
  • 2021-08-03
  • 2022-12-23
  • 2021-10-18
  • 2021-12-04
  • 2021-05-21
  • 2022-12-23
猜你喜欢
  • 2021-06-29
  • 2021-05-26
  • 2021-09-11
  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
相关资源
相似解决方案