Sqoop安装及使用

1. Sqoop 安装

1.1 下载Sqoop

下载链接

1.2 上传和解压jar包

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

1.3 相关配置

1.3.1 环境变量配置

编辑/etc/profile文件
添加内容如下
在这里插入图片描述

涮新配置文件使其生效

  source    /etc/profile

1.3.2 Sqoop配置文件修改

进入到Sqoop安装目录中的conf目录,将将sqoop-env-template.sh复制一份,并取名为sqoop-env.sh
修改其中内容:

export HADOOP_COMMON_HOME=/home/xh/hadoop/hadoop-2.7.7
export HADOOP_MAPRED_HOME=/home/xh/hadoop/hadoop-2.7.7
export HIVE_HOME=/home/xh/hadoop/apache-hive-2.3.6-bin

即,hadoop安装目录,hive安装目录。

1.3.3 将MySQL驱动包上载到Sqoop的lib下

即mysql-connector-java-5.1.5.jar jar包,配置符合自己版本的jar包。

2. 使用Sqoop

2.1 使用help命令

在这里插入图片描述

2.2 查看MYSQL数据库中所有表

 sqoop   list-tables  \
 --username  root   \
 --password  'assiduity'     \
 --connect     jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8

2.3 MYSQL表数据到HDFS中

sqoop import \
  --connect jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8 \ ## 指定连接mysql的数据库地址
  --driver com.mysql.jdbc.Driver \                                           ## 指定mysql的驱动
  --username root \                                                          ## 用户名
  --password assiduity \                                                     ## 密码
  --table student \                                                          ## 指定 表
  --target-dir hdfs://192.168.240.128:9000/student \                         ## 指定hdfs目录,如果不存在会自己创建
  -- m 1

指定条件,只有符合条件的才能被导入
限定行条件

sqoop import \
  --connect jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8 \
  --driver com.mysql.jdbc.Driver \
  --username root \
  --password assiduity \
  --table student \
  --target-dir hdfs://192.168.240.128:9000/student3 \
  --where "id > 2" \
  -- m 1          ## 开启map个数,即进程

限定列

sqoop import \
  --connect jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8 \
  --driver com.mysql.jdbc.Driver \
  --username root \
  --password assiduity \
  --table student \
  --target-dir hdfs://192.168.240.128:9000/student4 \
  --columns "id,name" \
   --as-avrodatafile        # 指定存成 avro 数据文件
  -- m 1                         # 开启map个数,即进程

条件必须使用引号。

2.4 HDFS 导出向 RDBMS

2.4.1 HDFS 导出向 RDBMS

sqoop export \
  --connect jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8 \
  --driver com.mysql.jdbc.Driver \
  --username root \
  --password assiduity \
  --export-dir hdfs://192.168.240.128:9000/student \    # HDFS source path for the export
  --table student_info                                      # 目标表

2.4.2 删除RDBMS 中表的数据

sqoop eval \
  --connect jdbc:mysql://192.168.240.128:3306/test?characterEncoding=UTF-8 \
  --driver com.mysql.jdbc.Driver \
  --username root \
  --password assiduity \
  --query "delete from student_info"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值