Sqoop是一个用来将Hadoop(Hive、HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
 

Sqoop安装

1、下载Sqoop安装包

在Sqoop官网下载安装包,本次使用的是sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz安装在/usr/local目录下,下载地址为http://apache.fayea.com/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

2、解压Sqoop安装包

 #进入sqoop安装目录
[hadoop@BigData ~]$ cd /usr/local
#解压sqoop安装包
[hadoop@BigData ~]$ tar -zxvf sqoop-1.4..bin__hadoop-2.0.-alpha.tar.gz
#删除sqoop安装包
[hadoop@BigData ~]$ rm -rf sqoop-1.4..bin__hadoop-2.0.-alpha.tar.gz
#重命名sqoop目录名
[hadoop@BigData ~]$ mv sqoop-1.4..bin__hadoop-2.0.-alpha sqoop

3、配置Sqoop环境变量

 #配置Sqoop环境变量
[root@BigData ~]# vi /etc/profile
export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
#使环境变量配置生效
[root@BigData ~]#/etc/profile

4、将关系型数据库驱动包放到sqoop/lib目录下

MySql:mysql-connector-java-5.1.30.jar
Oracle:ojdbc14.jar

5、修改Sqoop配置文件

 [hadoop@BigData ~]$ mv sqoop-env-template.sh sqoop-env.sh
[hadoop@BigData ~]$ vi sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/usr/local/hadoop
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/usr/local/hadoop
#set the path to where bin/hbase is available
export HBASE_HOME=/usr/local/hbase
#Set the path to where bin/hive is available
export HIVE_HOME=/usr/local/hive
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/usr/local/zookeeper
到此,sqoop环境就已搭建成功!

Sqoop测试

1、导入MySql数据到hdfs中

mysql数据库中sqoop库中出来test表,表结构及数据如下所示:
id username gender telephone email
1 test_01 Female 138xxxx0903 test_01@example.com
2 test_02 Male 187xxxx9364 test_02@example.com
该命令执行结束后,观察hdfs的目录/user/{USER_NAME},下面会有一个文件夹是test,里面有个文件是part-m-00000。该文件的内容就是数据表aa的内容,字段之间是使用制表符分割的。

2、hdfs导出数据到mysql

把上一步导入到hdfs的数据导出到mysql中。我们已知该文件使用制表符分隔的。那么,我们现在数据库sqoop中创建一个数据表hive,其表结构和test表结构一样。然后执行下面的命令
 [hadoop@BigData ~]$sqoop export --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table hive --export-dir '/user/hadoop/test/part-m-00000'--fields-terminated-by '\t'
参数解释:
参数 解释
sqoop sqoop命令
export 导出操作
--connect jdbc:mysql://ip:3306/sqoop 连接mysql的url
--username 连接mysql的用户名
--password 连接mysql的密码
--table mysql中的表,即将被导入的表名称
--export-dir hive中被导出的文件
--fields-terminated-by 指定输出文件中的行的字段分隔符
查看sqoop库中的hive表中是否已经有两条数据
id username gender telephone email
1 test_01 Female 138xxxx0903 test_01@example.com
2 test_02 Male 187xxxx9364 test_02@example.com

3、Mysql数据导入到Hive

 比如把表test数据导入到Hive中,增加参数 –hive-import
 [hadoop@BigData ~]$ sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --warehouse-dir /usr/local/hive/warehouse --hive-import --create-hive-table

进入Hive Client验证导入的数据:

 [hadoop@BigData bin]$ hive client
hive> show tables;
user_information
test
login_log
hive> select * from test;
test_01 Female 138xxxx0903 test_01@example.com
test_02 Male 187xxxx9364 test_02@example.com

4、Mysql数据导入到Hbase

把表test数据导入到HBase,指定Hbase中表名为demo_sqoop2hbase的命令

 [hadoop@BigData ~]$ sqoop  import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url

hbase shell中验证导入的数据:

 [hadoop@BigData bin]$ hbase shell
hbase(main)::>list
demo_sqoop2hbase

CentOS搭建Sqoop环境的更多相关文章

  1. 基于Centos搭建Jenkins 环境搭建

    系统要求: CentOS 7.2 64 位操作系统 安装 Jenkins Jenkins 简介 Jenkins 是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提 ...

  2. Centos搭建go环境以及go入门

    引言 本文主要聚焦于 如何在centos上搭建go环境以及go入门, 包括搭建go环境,hello world运行, 创建包等操作,初步入门go语言. 安装环境 在管理员权限下, 也就是root用户 ...

  3. Centos搭建 Docker 环境

    搭建 Docker 环境 安装与配置 Docker 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum ...

  4. CentOS搭建LAMP环境

    最近准备安装roundcube,需要先搭建一个 LAMP 运行环境,从网上搜索了一下,有不少资料.自己也按部就班安装了一遍,把过程整理了下来. LAMP 是Linux, Apache, MySQL, ...

  5. 阿里云Centos搭建jdk环境

    当我们开始了自己的开发,那么云服务器是一定少不了的,当然也有很多同学只是在本地做开发研究. 这里记录一下我自己在阿里云上搭建环境的过程. 趁着优惠的时候,我在阿里云上购买了ECS云服务器,并且搭载了C ...

  6. 基于Centos搭建Django 环境搭建

    CentOS 7.2 64 位操作系统 安装 Django 先安装 PIP,再通过 PIP 安装 Django 安装 PIP cd /data; mkdir tmp; cd tmp; wget htt ...

  7. 基于Centos搭建Laravel 环境搭建

    系统要求:CentOS 7.2 64 位操作系统 安装 Laravel Laravel 简介 Laravel 是一套简洁.优雅的 PHP Web 开发框架.它可以让你从面条一样杂乱的代码中解脱出来:它 ...

  8. CentOS搭建NodeJS环境

    事件驱动,承受高并发……这些耀眼的光环,使前端开发者不能不去学习NodeJS. 今天就在开发环境把NodeJS搭建起来了. 1. 下载node wget http://nodejs.org/dist/ ...

  9. centos 搭建docker环境

    我有一台便宜的腾讯云服务器,当然配置自然也是最低的,只是用来平常玩一玩,学习的用处,下面介绍一下我在上面搭建docker的心得,共勉一下. 安装与配置 Docker 安装 Docker Docker ...

随机推荐

  1. March 3 2017 Week 9 Friday

    Each time you love, love as deeply as if it were forever. 如果爱,请深爱,就像能到地老天荒. If we can only encounter ...

  2. C++ double 小数精度控制

    第一种方法:cout<<fixed<<setprecision(20)<<mydouble<<endl; #include <iostream&g ...

  3. python25 python的三目运算符

    其他语言的三目运算符大类似: 条件 ?  条件为真返回值: 条件为假返回值 python不一样: 条件为真的返回值  if  条件  else  条件为假的返回值                 或者 ...

  4. 【LOJ2461】「2018 集训队互测 Day 1」完美的队列(分块+双指针)

    点此看题面 大致题意: 让你维护\(n\)个有限定长度的队列,每次区间往队列里加数,求每次加完后的队列里剩余元素种类数. 核心思路 这道题可以用分块+双指针去搞. 考虑求出每个操作插入的元素在队列中被 ...

  5. CF873F 【Forbidden Indices】

    还有这么板子的题? 和你谷上后缀自动机的板子基本一样,区别就是之后这个位置是\(0\)才计入贡献 代码 #include<iostream> #include<cstdio> ...

  6. 什么是React中的组件

    组件就是页面上的一部分.如图,左边是一个网页.右边是对应的一个组件图.我们可以把一个大的网页拆分成很多小的部分.比如标题部分,对应一个组件,就是标题组件.搜索部分,对应的组件就是搜索组件.而这个搜索组 ...

  7. webstorn中的vue文件识别es6代码

    webstorn中的vue文件识别es6代码 1.webstorm中es6语法报错,解决方法: 打开 Settings => Languages & Frameworks => J ...

  8. jsp的4个作用域区别( pageScope、requestScope、sessionScope、applicationScope)

    简单描述 page里的变量没法从index.jsp传递到test.jsp.只要页面跳转了,它们就不见了. request里的变量可以跨越forward前后的两页.但是只要刷新页面,它们就重新计算了.  ...

  9. Android学习笔记_13_网络通信之多个上传文件

    一.获取HTTP协议: 建立一个Web项目,建立一个如下所示的jsp界面,用IE捕获表单提交信息. <%@ page language="java" contentType= ...

  10. scala容器使用

    花了两个小时左右,学习了一下scala语言, 由于scala运行在jvm之上, 可以使用java容器也可以使用scala自带的容器. import java.util import java.util ...