安装sqoop

  1. 上传压缩包

/usr/software

 

  1. 解压压缩包到指定得位置

# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/

  1. 重命名文件名

# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7

  1. 配置环境变量

export SQOOP_HOME=/usr/local/sqoop-1.4.7

export PATH=$PATH:$SQOOP_HOME/bin

# source /etc/profile

  1. 修改配置性文件

进入sqoop-1.4.7/conf 路径,复制sqoop-env-template.sh 重命名为sqoop-env.sh

# mv sqoop-env-template.sh sqoop-env.sh

 

修改下面几个值

export HADOOP_COMMON_HOME=/usr/local/hadoop-2.7.3

export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.7.3

export HIVE_HOME=/usr/local/apache-hive-2.3.3-bin

export HIVE_CONF_DIR=${HIVE_HOME}/conf

  1. 关联hive

# cp /usr/local/apache-hive-2.3.3-bin/conf/hive-site.xml  /usr/local/sqoop-1.4.7/conf/

 

  1. 添加驱动

导入MySQL得驱动到 /usr/local/sqoop-1.4.7/lib

 

8、hive jar 放入sqoop lib下

# /usr/local/apache-hive-2.3.3-bin/lib下得jar包放到hive-common-2.3.3.jar和hive-exec-2.3.3.jar

[root@master lib]# cp hive-common-2.3.3.jar  /usr/local/sqoop-1.4.7/lib/

[root@master lib]# cp hive-exec-2.3.3.jar  /usr/local/sqoop-1.4.7/lib/

 

9、启动查看版本号

#sqoop version

 

操作sqoop

  1. 测试连接MySQL

进入/usr/local/sqoop-1.4.7/bin目录下,执行

#sqoop list-databases --connect jdbc:mysql://172.1.3.113:3306/ --username 用户名 --password 1密码

显示数据库名字,表示成功

 

连接外部数据库也是可以连接的

#sqoop list-databases --connect jdbc:mysql://36.41.188.172:3306/ --username 用户名 --password 密码

 

2、报错信息

 

问题原因:数据库得IP/用户名/密码/数据名称错误

从 MySQL 导出数据,导入Hive。

3、Sqoop参数说明

sqoop 命令

将 mysql 中数据导入到 hive 为例,包括全量、增量导入:

$ sqoop import

--connect jdbc:mysql://ip:3306/db 数据库连接串

--username  用户名

--password 密码

--split-by id 执行并行分批字段,一般主健,配合 -m 使用

-m 2 mapper 数

--fields-terminated-by "" 导出字段分隔符,此次为制表符为分隔符

--lines-terminated-by "" 换行符

--hive-import

--create-hive-table 创建 hive 表,如果目标表已经存在了,那么创建任务会失败

--hive-table pas_med_info hive 表名

--null-string 'N' 将mysql 中的NULL数据转换为hive 的 NULL

--target-dir /apps/hive/warehouse/db/dt='日期' hive 在 hdfs 存储路径,dt='日期' 可以分区导入,当写成脚本时可以将日期做为变量,每天定时同步导入。

-- query where [可选] 增量导入方式一 ,推荐使用,直接可以用shell 脚本定时跑数据,方便简单

--incremental append或lastmodify [可选] 增量导入方式二,操作一

--append [可选] 如果选择lastmodify 则需要添加此命令,配合操作一使用

–check-column createtime [可选] 用于检查增量数据的列 ,必须是 timestamp 列,配合操作一使用

4、从MySQL导入hive

#sqoop import --connect jdbc:mysql://172.1.3.113:3306/test --username root --password 123456 --driver com.mysql.jdbc.Driver --table student -m 1 --fields-terminated-by "," --lines-terminated-by '\n'  --hive-import --hive-table userdb.student;

 

 

  1. hive数据导入MySQL

#sqoop export --connect "jdbc:mysql://172.1.3.113:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table student --input-fields-terminated-by ',' --export-dir /user/hive/warehouse/userdb.db/student/*

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值