Sqoop

Sqoop是干什么的

Sqoop是一个能将传统关系型数据库中的数据导入到hive,hdfs,hbase中的工具,也可以将hive,hdfs,hbase中的数据导入到传统关系型数据库中。

Sqoop的原理

Sqoop是将任务转化成MR任务执行
主要是对MR任务中的inputformat,outputformat进行定制

Sqoop的安装

1.将安装包导入到linux系统中
2.将安装包解压
3.将配置文件改名

cp sqoop-env-template.sh sqoop-env.sh

4.配置sqoop-env.sh文件

export HADOOP_COMMON_HOME=/home/hduser/software/hadoop-2.7.2

export HADOOP_MAPRED_HOME=/home/hduser/software/hadoop-2.7.2

export HBASE_HOME=/home/hduser/software/hbase-1.3.1/

export HIVE_HOME=/home/hduser/software/hive-1.2.1

export ZOOCFGDIR=/home/hduser/software/zookeeper-3.4.10

5.将mysql的连接jdbc文件导入到sqoop的lib文件下面

cp mysql-connector-java-5.1.32-bin.jar /home/hduser/software/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib

检验

1.用sqoop help 命令
当出现两个警告的时候说明安装成功
2.启动mysqll

sqoop-list-databases --connect jdbc:mysql:zhblinux8:3306/ --username root --password xxxx

当输出为mysql的所有数据库的时候说明安装成功

用Sqoop将数据导入hdfs、hive、hbase

从mysql导入到hdfs

sqoop import \
--connect jdbc:mysql://linux8zhb:3306/company \
--username root \
--password xxxx \
--table staff \
--target-dir /user/company \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t"

从mysql有选择的导入hdfs

sqoop import \
--connect jdbc:mysql://linux8zhb:3306/company \
--username root \
--password xxxx \
--target-dir /user/company \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query 'select id,name from staff where id<2 and $CONDITIONS;'

从mysql选择列导入hdfs

sqoop import \
--connect jdbc:mysql://linux8zhb:3306/company \
--username root \
--password admin \
--table staff \
--target-dir /user/company \
--delete-target-dir \
--num-mappers 1 \
--column id,name \
--fields-terminated-by "\t" \

从mysql导入hive

sqoop import \
--connect jdbc:mysql://linux8zhb:3306/company \
--username root \
--password admin \
--table staff \
--hive-import \
--hive-overwrite \
--num-mappers 1 \
--fields-terminated-by "\t" \
--hive-table staff_dd

从mysql导入hbase

注:这个表需要自己先在hbase中创建

sqoop import \
--connect jdbc:mysql://linux8zhb:3306/company \
--username root \
--password admin \
--table staff \
--hbase-create-table \
--hbase-table "hbase_company" \
--column-fimilay "info" \
--columns "id,name,gender" \
--hbase-row-key "id" \
--num-mappers 1 \
--split-by "id"

用Sqoop将数据导出到mysql

从hive、hdfs将数据导出到mysql

sqoop export \
--connect jdbc:mysql:linux8zhb:3306/company \
--username root \
--password admin \
--table staff_ee \
--num-mappers 1 \
--input-fields-terminated-by "\t" \
--export-dir /user/hive/warehouse/staff_dd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值