sqoop框架的介绍及使用(入门)

介绍

(1)sqoop是Apache的顶级项目
(2)大数据Hadoop框架生态系统中一员
(3)底层就是MapReduce程序,并行计算的框架,并且仅仅只有Map Task
(4)官网:http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.7.6/
(5)版本:
sqoop 1.x版本 使用的时候非常简单,仅仅只需要执行一个命令即可
sqoop 2.x版本 相当于一个MYSQL数据库一样,启动一个服务 执行Job

安装

1.修改配置文件sqoop-env-template.sh
在这里插入图片描述

sqoop使用

1.帮助命令:bin/sqoop help

Available commands:
 codegen            Generate code to interact with database records
 create-hive-table  Import a table definition into Hive
 eval               Evaluate a SQL statement and display the results
 export             Export an HDFS directory to a database table
 help               List available commands
 import             Import a table from a database to HDFS
 import-all-tables  Import tables from a database to HDFS
 import-mainframe   Import datasets from a mainframe server to HDFS
 job                Work with saved jobs
list-databases     List available databases on a server
list-tables        List available tables in a database
merge              Merge results of incremental imports
metastore          Run a standalone Sqoop metastore
version            Display version information

2.测试:连接MYSQL数据库,读取指定database中所有表名

注意:如果失败可能是mysql jar包没有导入到sqoop lib目录下

bin/sqoop list-tables \
--connect jdbc:mysql://主机地址/数据库名称 \
--username 数据库用户 \
--password 数据库密码

成功之后显示数据库中的表

实操:从大数据环境出来叫导出,反之叫导入

1.HDFS导出到MYSQL表:帮助命令:bin/sqoop export --help

思路:HDFS上一个文件(URL) >>>> MYSQL 数据库 表(表名)
注:目标表需要存在

bin/sqoop export \
//主机地址  数据库
--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
--username root \
--password 123456 \
// 目标表(需要提前创建表结构)
--table tb_emp \
//那些字段(可省略部分)
--columns empno,ename,job,mgr,hiredate,sal,comm,deptno \
//导出文件在HDFS上的路径
--export-dir /user/hive/warehouse/db_0708.db/emp \
//需要几个map来处理
--num-mappers 2 \
//分割符号
--input-fields-terminated-by '\t'

如果报错:.NoClassDefFoundError: org/json/JSONObject
需要导一个 JSON转换库 jar包 到lib目录下

2.从RDBMS中数据导入HDFS上

思路:表 -> import -> HDFS(文件)

bin/sqoop import \
--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
--username root \
--password 123456 \
//需要导入的表名称
--table tb_emp \
//字段
--columns empno,ename,job,mgr,hiredate,sal,comm,deptno \
//导到HDFS上哪个路径 路径不存在会创建
--target-dir /user/huadian/sqoop/emp-import \
//map任务数量
--num-mappers 2 \
//字段之间分割符号,
--fields-terminated-by ',' \
//如果目录存在先删除掉
--delete-target-dir

3.将RDBMS表中数据导入到HIve表中

思路:表->HDFS ->Hive

bin/sqoop import \
--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
--username root \
--password 123456 \
//需要导入的表
--table tb_word \
//字段
--columns word,count \
//指定是hive表
--hive-import \
//指定数据库
--hive-database default \
//创建一个表来存储
--create-hive-table \
//接收数据表名称
--hive-table ht_word \
//字段分割符号
--fields-terminated-by ',' \
//map任务数量
--num-mappers 1 \
//覆盖
--hive-overwrite \
--delete-target-dir

注:

1.SQOOP:依赖Hadoop和Hive,hive相关Jar包没有加载到SQOOP的运行环境上

先运行:export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/lib/*

2.需要hive-site.xml放到Hadoop/etc/haddop/下面:使用软连接

ln -s /opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/conf/hive-site.xml /opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/etc/hadoop

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值