Sqoop简介安装及使用
Sqoop简介
sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
核心的功能有两个:
导入、迁入
导出、迁出
导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。
sqoop:
工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
hive
工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序
将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制
Sqoop安装
一、安装部署
(1)、下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.7/
解压到/opt/cdh5/sqoop
(2)、拷贝MySQL的jdbc驱动包mysql-connector-Java-5.1.31-bin.jar到sqoop/lib目录下。
(3)、配置环境变量
#sqoop
export SQOOP_HOME=/opt/cdh5/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
(4)、复制sqoop/conf/sqoop-env-template.sh为sqoop-env.sh
添加相关的配置
#Setpath to where bin/Hadoop is available
exportHADOOP_COMMON_HOME=/opt/cdh5/hadoop
#Setpath to where hadoop-*-core.jar isavailable
exportHADOOP_MAPRED_HOME=/opt/cdh5/hadoop
#setthe path to where bin/Hbase isavailable
exportHBASE_HOME=/opt/cdh5/hbase
#Setthe path to where bin/Hive is available
exportHIVE_HOME= /opt/cdh5/hive
#Setthe path for where zookeper config diris
exportZOOCFGDIR= /opt/cdh5/zookeeper
(5)、测试Sqoop
sqoop version
测试之前先测试mysql能不能远程连接
Sqoop语法
导入hdfs
Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root (mysql用户名)
--password root (mysql密码)
--table user (表名)
--columns “id,name”(指定需要查找的列)
--where “id >3” (条件)
--fields-terminated-by “\t” (列间隔)
--split-by id (以哪个字段分割)
--query ‘select id,name from user where $CONDITIONS and id >3’ (也可直接写查询语句,写条件语句时必须写$CONDITIONS ,查询语句外必须用单引号,否则得在$之前加转义字符 \)
--delete-target-dir (删除掉存在的路径)
--target-dir /hdfs (写入hdfs的路径)
-m 1 (开启几个maptask任务)
增量导入
Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root (mysql用户名)
--password root (mysql密码)
--table user
--incremental append (追加)
--check-column order_date (根据哪一列)
--last-value ‘2018-11-12’ (大于这个日期的追加)
--target-dir /hdfs
--m 1
导入hive
先将hive-common-2.3.2.jar 导入sqoop的lib下
Sqoop import
--connect jdbc:mysql://192.168.104.200:3306/database (连接数据库的IP地址 、指定数据库)
--username root (mysql用户名)
--password root (mysql密码)
--table user
--hive-import (指定导入hive)
--fields-terminated-by “\t”
--lines-terminated-by “\n”
--hive-overwrite
--create-hive-table
--delete-target-dir
--hive-database (指定导入hive的哪个数据库)
--hive-table (默认和mysql的表名一样)
--target-dir /hdfs
--check-column uid
--last-value 2
-m 1
导出export
Sqoop export
--connect ‘jdbc:mysql://192.168.104.200:3306/database?useUnicode=true&characterEncoding=utf-8’ (连接数据库的IP地址 、指定数据库、指定编码格式)
--username root (mysql用户名)
--password root (mysql密码)
--export-dir /hive/warehouse/userinfo/part-m-00000 (指定导出的hdfs路径)
--table userinfo
-input-fields-terminated-by “,”(指定导出的字段间隔,必须是逗号)
因为sqoop1不支持导入hbse,可以先导入hdfs,然后执行批量导入的命令导入hbase
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="HBASE_ROW_KEY,info:name,order:no,order:date" customer /input/hbase/hbase_import_data.csv
本文来自博客园,作者:暮雨寒冬,转载请注明原文链接:https://www.cnblogs.com/good--luck/p/15828586.html