搭建环境

部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放
Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下
创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。

Hadoop搭建环境:

  • 虚拟机操作系统: CentOS6.6 64位,单核,1G内存
  • JDK:1.7.0_55 64位
  • Hadoop:1.1.2

2 Sqoop介绍

2.1 Sqoop简介

Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传输,发展至今主要演化了二大版本,Sqoop1和Sqoop2。

Sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive、hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入。
那么为什么选择Sqoop呢?

  • 高效可控的利用资源,任务并行度,超时时间。
  • 数据类型映射与转化,可自动进行,用户也可自定义
  • 支持多种主流数据库,MySQL,Oracle,SQL Server,DB2等等

2.2 Sqoop1和Sqoop2比较

2.2.1 Sqoop1和Sqoop2异同

  • 两个不同的版本,完全不兼容
  • 版本号划分区别,Apache版本:1.4.x(Sqoop1); 1.99.x(Sqoop2) CDH版本 : Sqoop-1.4.3-cdh4(Sqoop1) ; Sqoop2-1.99.2-cdh4.5.0 (Sqoop2)
  • Sqoop2比Sqoop1的改进
    1. 引入Sqoop server,集中化管理connector等
    2. 多种访问方式:CLI,Web UI,REST API
    3. 引入基于角色的安全机制

2.2.2 Sqoop1与Sqoop2的架构图

Sqoop架构图1

Sqoop架构图2

2.2.3 Sqoop1与Sqoop2的优缺点

3 安装部署Sqoop

3.1 下载Sqoop

可以到apache基金sqoop官网http://hive.apache.org/,选择镜像下载地址:http://mirror.bit.edu.cn/apache/sqoop/下载一个稳定版本,如下图所示下载支持Hadoop1.X的1.4.5版本gz包:

也可以在/home/shiyanlou/install-pack目录中找到该安装包,解压该安装包并把该安装包复制到/app目录中

  • cd /home/shiyanlou/install-pack
  • tar -xzf sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz
  • mv sqoop-1.4.5.bin__hadoop-1.0.0 /app/sqoop-1.4.5
  • ll /app

3.2 设置/etc/profile参数

编辑/etc/profile文件,加入sqoop的Home路径和在PATH加入bin的路径:

  • export SQOOP_HOME=/app/sqoop-1.4.5
  • export PATH=$PATH:$SQOOP_HOME/bin

编译配置文件/etc/profile,并确认生效

  • source /etc/profile
  • echo $PATH

3.3 设置bin/configure-sqoop配置文件

修改bin/configure-sqoop配置文件

  • cd /app/sqoop-1.4.5/bin
  • sudo vi configure-sqoop

注释掉HBase和Zookeeper等检查(除非使用HBase和Zookeeper等HADOOP上的组件)

3.4 设置conf/sqoop-env.sh配置文件

如果不存在sqoop-env.sh文件,复制sqoop-env-template.sh文件,然后修改sqoop-env.sh配置文件

  • cd /app/sqoop-1.4.5/conf
  • cp sqoop-env-template.sh sqoop-env.sh
  • sudo vi sqoop-env.sh


设置hadoop运行程序所在路径和hadoop-*-core.jar路径(Hadoop1.X需要配置)

  • export HADOOP_COMMON_HOME=/app/hadoop-1.1.2
  • export HADOOP_MAPRED_HOME=/app/hadoop-1.1.2


编译配置文件sqoop-env.sh使之生效

3.5 验证安装完成

输入如下命令验证是否正确安装sqoop,如果正确安装则出现sqoop提示

  • sqoop help

4 文件导入/导出

4.1 MySql数据导入到HDFS中

如果没有安装MySql,请参照第8课3.1进行安装

4.1.1 下载MySql驱动

到MySql官网进入下载页面:http://dev.mysql.com/downloads/connector/j/ ,选择所需要的版本进行下载,这里下载的zip格式的文件,然后在本地解压:

也可以在/home/shiyanlou/install-pack目录中找到该安装包,把MySql驱动包使用如下命令放到Sqoop的lib目录下

  • cd /home/shiyanlou/install-pack
  • cp mysql-connector-java-5.1.22-bin.jar /app/sqoop-1.4.5/lib

4.1.2 启动MySql服务

查看MySql服务并查看状态,如果没有启动则启动服务

  • sudo service mysql status
  • sudo service mysql start

4.1.3 查看MySql中的数据表

进入MySql数据库,选择有数据的一张表查看内容,比较导出结果是否正确,输入如下命令:

  • mysql -uhive -phive
  • mysql>show databases;
  • mysql>use hive;
  • mysql>show tables;
  • mysql>select TBL_ID, CREATE_TIME, DB_ID, OWNER, TBL_NAME,TBL_TYPE from TBLS;

4.1.4 把MySql数据导入到HDFS中

使用如下命令列出MySql中所有数据库:

  • sqoop list-databases --connect jdbc:mysql://hadoop:3306/ --username hive --password hive

使用如下命令把hive数据库TBLS表数据导入到HDFS中:

  • sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive --password hive --table TBLS -m 1
    1. --username 数据库用户名
    2. --password连接数据库密码
    3. --table 表名
    4. -m 1表示map数

4.1.5 查看导出结果

使用如下命令查看导出到HDFS结果,文件路径在当前用户hadoop目录下增加了TBLS表目录,查看part-m-00000文件:

  • hadoop fs -ls /user/shiyanlou/TBLS
  • hadoop fs -cat /user/shiyanlou/TBLS/part-m-00000

4.2 MySql数据导入到Hive中

4.2.1 启动metastore和hiveserver

在使用hive之前需要启动metastore和hiveserver服务,通过如下命令启用:

  • hive --service metastore &
  • hive --service hiveserver &

启动用通过jps命令可以看到两个进行运行在后台

4.2.2 从MySql导入表数据到Hive中

使用如下命令到把MySql中TBLS表数据导入到Hive中:

  • sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive
    --password hive --table TBLS --hive-table MySql2Hive --hive-import -m 1
    1. -- username为mysql中的数据库连接用户名
    2. --password为mysql中的数据库连接密码
    3. --table为导出表
    4. --hive-table test1 为导出表在Hive中的名称
    5. -m 1表示map数

从运行的日志可以看到,这个过程有两个阶段:

  1. 第一个阶段是从MySql中把数据到HDFS文件中
  2. 第二个阶段是从HDFS中把数据写入到MySql中

4.2.3 查看导出结果

登录hive,在hive创建表并查看该表,命令如下:

  • hive
  • hive>show tables;
  • hive>desc MySql2Hive;

Sqoop介绍、安装与操作的更多相关文章

  1. Hadoop入门进阶课程11--Sqoop介绍、安装与操作

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  2. Sqoop 介绍、安装及环境配置

    一.Sqoop Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Ha ...

  3. opencv3.1自带demo的介绍和运行操作。转载

    opencv3.1自带demo的介绍和运行操作. 下列实验基本都试过,有些需要根据自己的电脑修改一些路径或者调试参数. 值得注意的是,控制台程序输入有时候要在图像所在的窗口输入相应的指令.我的电脑上安 ...

  4. Hadoop 2.6.0-cdh5.4.0集群环境搭建和Apache-Hive、Sqoop的安装

    搭建此环境主要用来hadoop的学习,因此我们的操作直接在root用户下,不涉及HA. Software: Hadoop 2.6.0-cdh5.4.0 Apache-hive-2.1.0-bin Sq ...

  5. (转)私有代码存放仓库 BitBucket介绍及入门操作

    转自:http://blog.csdn.net/lhb_0531/article/details/8602139 私有代码存放仓库 BitBucket介绍及入门操作 分类: 研发管理2013-02-2 ...

  6. Sqoop的安装及简单使用

    SQOOP是用于对数据进行导入导出的. (1)把MySQL.Oracle等数据库中的数据导入到HDFS.Hive.HBase中   (2)把HDFS.Hive.HBase中的数据导出到MySQL.Or ...

  7. Sqoop的安装配置及使用

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  8. Sqoop环境安装

    环境下载 首先将下载的 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz放到 /usr/hadoop/目录下(该目录可以自定义,一般为Hadoop集群安装目录),然 ...

  9. 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

    进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...

随机推荐

  1. 使用idea在linux上启动springboot项目

    springboot项目启动方式 1.改成war包放到tomcat上,网上方法很多不再介绍. 2.直接用jar包启动,比较方便,不需要修改项目文件,推荐使用jar包起 将项目和package打成jar ...

  2. flask 使用基础

    转 https://blog.csdn.net/yelena_11/article/details/53404892

  3. 深入理解Nginx及使用Nginx实现负载均衡

    前言: 最近在部署项目时要求实现负载均衡,有趣的是发现网上一搜全部都是以下类似的配置文件 upstream localhost{ server 127.0.0.1:8080 weight=1; ser ...

  4. 清缓存的姿势不对,真的会出生产bug哦

    最近解决了一个生产bug,bug的原因很简单,就是清理缓存的方式不对.本来没啥好说的,但是考虑到我们有时候确实会在一些小问题上栽跟头,最终决定把这个小故事拿出来跟大家分享下. 风起有一天在撸代码,突然 ...

  5. 四六级成绩还可以这样查?Python助你装B一步到位!!!

    昨天有很多同学在朋友圈秀六级成绩 一个个都如(sang)此(jin)优(tian)秀(liang) 当然也有悲催的哥们 对于上面这位老弟 我只能说:骚呢,兄弟 这种事都能赶上,必须点赞 一.需求分析 ...

  6. GStreamer基础教程07 - 播放速率控制

    摘要 在常见的媒体播放器中,通常可以看到快进,快退,慢放等功能,这部分功能被称为“特技模式(Trick Mode)”,这些模式有个共同点:都通过修改播放的速率来达到相应的目的. 本文将介绍如何通过GS ...

  7. Java网络编程与NIO详解8:浅析mmap和Direct Buffer

    微信公众号[黄小斜]作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不 ...

  8. webservice接口和http接口(API接口)的区别

     web service(SOAP)与HTTP接口的区别: 什么是web service?       答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content- ...

  9. 使用maven搭建ssm框架环境

    1.前言 因为经常换环境,在搭ssm框架的时候老是出错,所以记录一下最近搭建的环境,以供参考. 本文讲解如何使用maven搭建ssm框架,并能用于简单的登录注册. IDE:IDEA,JDK版本:1.8 ...

  10. HillCrest Sensor HAL

    1. 抽象定义 Google为Sensor提供了统一的HAL接口,不同的硬件厂商需要根据该接口来实现并完成具体的硬件抽象层,Android中Sensor的HAL接口定义在:hardware/libha ...