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. Jmeter入门17 获取时间点前后一定间隔的时间 __timeShift()

    接口获取时间点前后一定间隔的时间函数: __timeShift(时间格式, 特定时间点(缺省当前时间),时间间隔,地区格式(默认),变量名( 可不填,填写后其他地方用${变量名}引用 )) 举例: 1 ...

  2. Android 回调的理解,觉得写得好就转过来。。。收藏一下

    转自:一个经典例子让你彻彻底底理解java回调机制 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所 ...

  3. IOS PushMeBaby(是一款用来测试ANPs的开源Mac项目)

    ● PushMeBaby是一款用来测试ANPs的开源Mac项目 ● 它充当了服务器的作用,用法非常简单 ● 它负责将内容提交给苹果的APNs服务器,苹果的APNs服务器再将内容推送给用户 的设备 ● ...

  4. 服务器安装anaconda

    SSH连接服务器可以用putty 网址:https://repo.continuum.io/archive/ 下载安装脚本 wget https://repo.anaconda.com/archive ...

  5. 动态规划(DP),压缩状态,插入字符构成回文字符串

    题目链接:http://poj.org/problem?id=1159 解题报告: 1.LCS的状态转移方程为 if(str[i-1]==str[j-1]) dp[i][j]=dp[i-1][j-1] ...

  6. ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(一) 整理基础数据

    最近碰巧发现一款比较好的Web即时通讯前端组件,layim,百度关键字即可,我下面要做的就是基于这个前端组件配合后台完成即时聊天等功能.当然用到的技术就是ASP.NET SingalR框架.本人不会c ...

  7. 【洛谷P4568】[JLOI2011]飞行路线

    飞行路线 题目链接 今天上午模拟考试考了原题,然而数组开小了,爆了4个点. 据王♂强dalao说这是一道分层图SPFA的裸题 dis[i][j]表示到点i用k个医疗包的最小消耗,dis[u][j]+e ...

  8. Android学习笔记_25_多媒体之在线播放器

    一.布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...

  9. Angularjs实例3

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  10. Dubbo源码分析之ExtensionLoader加载过程解析

    ExtensionLoader加载机制阅读: Dubbo的类加载机制是模仿jdk的spi加载机制:  Jdk的SPI扩展加载机制:约定是当服务的提供者每增加一个接口的实现类时,需要在jar包的META ...