sqoop简单使用

本文介绍了sqoop的两个版本及其工作模式,并详细讲述了sqoop1和sqoop2的安装步骤,包括环境变量设置和依赖JDBC驱动的添加。接着,文章讲解了sqoop2的server端和client端操作,以及sqoop工具的import和export选项。最后,提供了Hive增量导入和数据在mysql与hdfs间迁移的样例。
摘要由CSDN通过智能技术生成

一、版本说明

1. sqoop有sqoop1和sqoop2两个版本

      sqoop1 --

           安装包:sqoop1.4.4之前所有版本

           工作模式:基于客户端模式,在客户端节点安装sqoop和连接器/驱动器

      sqoop2 --

            安装包:sqoop1.4.4之后的所有版本,包括sqoop1.99.1,sqoop1.99.2,sqoop1.99.3

            工作模式:基于服务模式,包括server和client两部分,所有的配置信息和连接器/驱动器都在server端

2. 官方测试过的database


二、sqoop1安装

1. 下载安装包并解压

wget http://mirrors.ustc.edu.cn/apache/sqoop/1.4.4/sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz

tar -xzvf sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz

mv sqoop-1.4.4.bin__hadoop-1.0.0 sqoop-1.4.4

2. 设置环境变量

sudo vi /etc/profile

增加以下内容:

export HADOOP_COMMON_HOME=/home/ysc/hadoop-1.2.1

export HADOOP_MAPRED_HOME=/home/ysc/hadoop-1.2.1

export PATH=$PATH:/home/ysc/sqoop-1.4.4/bin

export HBASE_HOME=/home/ysc/hbase-0.94.12

执行命令 source /etc/profile

3. 复制依赖jar包

将JDBC驱动mysql-connector-java-5.1.18.jar拷贝到/home/ysc/sqoop-1.4.4/lib


三、sqoop2安装

1. 下载安装包并解压

wget http://mirror.bit.edu.cn/apache/sqoop/1.99.2/sqoop-1.99.2-bin-hadoop100.tar.gz

tar -xzvf sqoop-1.99.2-bin-hadoop100.tar.gz

mv sqoop-1.99.2-bin-hadoop100 sqoop-1.99.2

2. 复制依赖jar到war包

bin/addtowar.sh -hadoop-version 1.2.1 -hadoop-path /home/ysc/hadoop-1.2.1

bin/addtowar.sh -jars /home/ysc/mysql-connector-java-5.1.18.jar

3. 修改sqoop.properties 文件

修改org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/etc/hadoop/conf/

为org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/ysc/hadoop-1.2.1/conf/


四、sqoop2 server端操作

1. 启动server

执行命令 bin/sqoop.sh server start

验证地址 http://host001:12000/sqoop/

2. 停止server

执行命令 bin/sqoop.sh server stop 


五、sqoop2 client端操作

#客户端直接解压即可运行

1. 交互模式运行

执行命令 bin/sqoop.sh client 进入交互shell

2. 批处理模式运行

执行命令 bin/sqoop.sh client /home/ysc/script.sqoop 执行script.sqoop脚本 


六、sqoop工具import和export使用详解

1. 通用选项


2. import工具选项

基本选项

Hive选项

Hbase选项


3. export工具选项


4. sqoop job选项


七、使用样例

1. Hive增量导入

sqoop支持两种增量导入到hive的模式

一种是 append,即通过指定一个递增的列,比如:

--incremental append  

 --check-column num_iid 

--last-value 0 

另种是可以根据时间戳,比如:

 --incremental lastmodified

--check-column created

--last-value '2012-02-01 11:0:00' 


2. .把数据从mysql导入到hdfs中

sqoop ##sqoop命令

import ##表示导入

--connect jdbc:mysql://ip:3306/sqoop ##告诉jdbc,连接mysql的url

--username root ##连接mysql的用户名

--password admin ##连接mysql的密码

--table aa ##从mysql导出的表名称

--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符

-m 1 ##复制过程使用1个map作业


3. 把数据从hdfs导出到mysql中

sqoop

export ##表示数据从hive复制到mysql中

--connect jdbc:mysql://192.168.1.113:3306/test

--username root

--password admin

--table bb ##mysql中的表,即将被导入的表名称

--export-dir '/user/root/aa/part-m-00000' ##hive中被导出的文件

--fields-terminated-by '\t' ##hive中被导出的文件字段的分隔符


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值