Sqoop安装与使用

安装

解压

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

删除压缩包

rm -rf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

复制到指定目录

mv sqoop-1.4.7.bin__hadoop-2.6.0 /opt/yjx/

修改目录名

mv sqoop-1.4.7.bin_hadoop-2.6.0 sqoop-1.4.7

修改配置文件

vim /etc/profile

export SQOOP_HOME=/opt/yjx/sqoop-1.4.7
export PATH=$SQOOP_HOME/bin:$PATH

让配置文件生效

source /etc/profile

连接mysql的包

cp ~/mysql-connector-java-5.1.32-bin.jar /opt/yjx/sqoop-1.4.7/lib/

添加Hive的Jar包

cp /opt/yjx/apache-hive-3.1.2-bin/lib/hive-exec-3.1.2.jar /opt/yjx/sqoop-1.4.7/lib/.

修改sqoop配置文件

cd /opt/yjx/sqoop-1.4.7/conf/

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

vim sqoop-env.sh

export HADOOP_COMMON_HOME=/opt/yjx/hadoop-3.1.2
export HADOOP_MAPRED_HOME=/opt/yjx/hadoop-3.1.2
export HIVE_HOME=/opt/yjx/apache-hive-3.1.2-bin
export HBASE_HOME=/opt/yjx/hbase-2.2.5
export ZOOKEEPER_HOME=/opt/yjx/zookeeper-3.4.5export ZOOCFGDIR=/opt/yjx/zookeeper-3.4.5/conf

修改configure-sqoop

[root@node01 ~]# vim /opt/yjx/sqoop-1.4.7/bin/configure-sqoop

删除掉HCatalog,Accumulo检查(切记从后向前删除)

179-196 18dd

134-143 10dd

82-100 19dd

验证

[root@node01 ~]# sqoop version

[root@node01 ~]# sqoop list-databases -connect jdbc:mysql://node01:3306/ -username root -password 123456

启动集群

【123】zkServer.sh start

【1】start-all.sh.

【1】start-hbase.sh

【1】hive --service metastore

【1】hiveserver2

将普通数据库的数据导入到hdfs中

首先启动集群

执行将emp表中数据全部导入

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--target-dir /sqoop/empall \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t";

表中的数据就在/sqoop/empall目录下了

查询导入

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empquery \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query 'select empno,ename from emp where hiredate >= 1987-07-13 and
$CONDITIONS;'

只导入指定的列

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empcolumn \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--columns "empno,ename" \
--table emp;

从RDBMS到HDFS关键字导入

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empkeyword \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--table emp \
--where "deptno=30"

RDBMS到Hive

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table hive_emp;

提示:该过程分为两步
第一步将数据导入到HDFS ,默认路径为 /user/root
 第二步将导入到HDFS的数据迁移到Hive仓库

RDBMS到Hbase

sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--columns "empno,ename,deptno" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "empno" \
--hbase-table "emp" \
--num-mappers 1 \
--split-by empno;

sqoop1.4.7只支持HBase1.0.1之前的版本的自动创建HBase表的功能

执行

hbase shell

手动创建

hbase> create ‘emp’,‘info’

导出数据

sqoop export \
 --connect jdbc:mysql://node01:3306/scott \
 --username root \
 --password 123456 \
 --table emp \
 --num-mappers 1 \
 --export-dir /sqoop/empall \
 --input-fields-terminated-by "\t"

在软件目录下创建

mkdir options

创建脚本

touch opt/sqoop.opt

vim sqoop.opt

export
--connect
jdbc:mysql://node01:3306/scott
--username
root
--password
123456
--table
emp
--num-mappers
1
--export-dir 
/sqoopdb/emp
--input-fields-terminated-by
"\t"

执行脚本

sqoop --options-file /opt/yjx/sqoop-1.4.7/options/sqoop.opt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值