网赢中国专注大数据营销 [会员登录][免费注册][网赢中国下载]我要投稿|加入合伙人|设为首页|收藏|RSS
网赢中国是大数据营销代名词。
大数据营销
当前位置:网赢中国 > 行业资讯 > 技术文章 > 大数据营销技术文章 > Sqoop介绍、安装与操作-Hadoop
Sqoop介绍、安装与操作-Hadoop
编辑:石山园 发布时间: 2015-7-22    文章来源:博客园
大数据营销


本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  。该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237


【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.com/s/10PnDs,下载该PDF文件


1搭建环境


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


Hadoop搭建环境:


l  虚拟机操作系统: CentOS6.6  64位,单核,1G内存


l  JDK1.7.0_55 64


l  Hadoop1.1.2


2Sqoop介绍


2.1  Sqoop简介


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


Sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hivehdfshbase之间数据的相互导入,可以使用全表导入和增量导入。


那么为什么选择Sqoop呢? 


l  高效可控的利用资源,任务并行度,超时时间。 


l  数据类型映射与转化,可自动进行,用户也可自定义 


l  支持多种主流数据库,MySQL,OracleSQL ServerDB2等等 


2.2  Sqoop1Sqoop2比较


2.2.1 Sqoop1Sqoop2异同


l  两个不同的版本,完全不兼容 


l  版本号划分区别,Apache版本:1.4.x(Sqoop1); 1.99.x(Sqoop2)    CDH版本 : Sqoop-1.4.3-cdh4(Sqoop1) ; Sqoop2-1.99.2-cdh4.5.0 (Sqoop2)


l  Sqoop2Sqoop1的改进 


(1)引入Sqoop server,集中化管理connector 


(2)多种访问方式:CLI,Web UIREST API 


(3)引入基于角色的安全机制


2.2.2 Sqoop1Sqoop2的架构图


Sqoop架构图1


clip_image002


Sqoop架构图2


clip_image004


2.2.3 Sqoop1Sqoop2的优缺点


























比较



Sqoop1



Sqoop2



架构



仅仅使用一个Sqoop客户端



引入了Sqoop server集中化管理connector,以及rest apiwebUI,并引入权限安全机制



部署



部署简单,安装需要root权限,connector必须符合JDBC模型



架构稍复杂,配置部署更繁琐



使用



命令行方式容易出错,格式紧耦合,无法支持所有数据类型,安全机制不够完善,例如密码暴漏



多种交互方式,命令行,web UIrest APIconncetor集中化管理,所有的链接安装在Sqoop server上,完善权限管理机制,connector规范化,仅仅负责数据的读写



 


clip_image006


 


3安装部署Sqoop


3.1 下载Sqoop


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


clip_image008


也可以在/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


clip_image010


3.2 设置/etc/profile参数


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


export SQOOP_HOME=/app/sqoop-1.4.5


export PATH=$PATH:$SQOOP_HOME/bin


clip_image012


编译配置文件/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


注释掉HBaseZookeeper等检查(除非使用HBaseZookeeperHADOOP上的组件)


clip_image014


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


clip_image016


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


#Set path to where bin/hadoop is available


export HADOOP_COMMON_HOME=/app/hadoop-1.1.2


#Set path to where hadoop-*-core.jar is available


export HADOOP_MAPRED_HOME=/app/hadoop-1.1.2


clip_image018


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


3.5 验证安装完成


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


sqoop help


clip_image020


4文件导入/导出


4.1 MySql数据导入到HDFS


如果没有安装MySql,请参照第83.1进行安装


4.1.1 下载MySql驱动


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


clip_image022


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


cd /home/shiyanlou/install-pack


cp mysql-connector-java-5.1.22-bin.jar /app/sqoop-1.4.5/lib


clip_image024


4.1.2 启动MySql服务


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


sudo service mysql status


sudo service mysql start


clip_image026


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;


clip_image028


clip_image030


4.1.4 MySql数据导入到HDFS


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


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


clip_image032


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


sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive --password hive --table TBLS -m 1


l--username 数据库用户名


l--password连接数据库密码


l--table 表名


l-m 1表示map


clip_image034


4.1.5 查看导出结果


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


hadoop fs -ls /user/shiyanlou/TBLS


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


clip_image036


4.2 MySql数据导入到Hive


4.2.1 启动metastorehiveserver


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


hive --service metastore &


hive --service hiveserver &


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


clip_image038


4.2.2 MySql导入表数据到Hive


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


sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive --password hive --table TBLS --hive-table MySql2Hive --hive-import -m 1


l-- usernamemysql中的数据库连接用户名


l--passwordmysql中的数据库连接密码


l--table为导出表


l--hive-table test1 为导出表在Hive中的名称


l-m 1表示map


clip_image040


clip_image042


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


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


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


4.2.3 查看导出结果


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


hive


hive>show tables;


hive>desc MySql2Hive;


clip_image044



大数据营销
编辑推荐
图片行业资讯
  • 雷军隔空喊话董明珠:格力 小米欢迎你
  • 杨元庆:Moto在华上市一周预定量超100万
  • 小米洪锋谈O2O布局:做商城不做具体服务
  • 盖茨向不知名实体捐赠15亿美元微软股票 持股降至3%
  • 刘强东:允许我获取数据 冰箱免费送给你
营销资讯搜索
大数据营销
推荐工具
    热点关注
    大数据营销
    大数据营销
    大数据营销
    大数据营销
     

    大数据营销之企业名录

    网络营销之邮件营销

    大数据营销之搜索采集系列

    大数据营销之QQ号采集

    大数据营销之QQ精准营销

    大数据营销之QQ消息群发

    大数据营销之空间助手

    大数据营销之QQ联盟

    大数据营销之QQ群助手
     
    设为首页 | 营销资讯 | 营销学院 | 营销宝典 | 本站动态 | 关于网赢中国 | 网站地图 | 网站RSS | 友情链接
    本站网络实名:网赢中国  国际域名:www.softav.com  版权所有 2004-2015  深圳爱网赢科技有限公司
    邮箱:web@softav.com 电话:+86-755-26010839(十八线) 传真:+86-755-26010838
    在线咨询:点击这里给我发消息 点击这里给我发消息 点击这里给我发消息  点击这里给我发消息  点击这里给我发消息

    深圳网络警
    察报警平台
    公共信息安
    全网络监察
    经营性网站
    备案信息
    不良信息
    举报中心
    中国文明网
    传播文明
    分享