安装完CDH后,发现里面的东东实在是太多了,对于一个初学大数据的来说就犹如刘姥姥进了大观园,很新奇,这些东东每个单拿出来都够喝一壶的。

接来来就是一步一步地学习了,先大致学习了每个模组大致做什么用的,然后再按模组一个一个细致学习,并实际演练。

我给自已的第一个课题是如何将Sql Server的一个表数据导入到HDFS中,网上有很多这样的教程,不过我觉得最有用的还是官网的User Guide,网上的教程直接把命令列出来,后面的参数基本没有用,因此可以考虑官网User Gruide进行详细了解。

步骤如下:

1、因为是要连Sql Server,因此需要先从Microsoft官网下载Sql server jdbc驱动,下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?displaylang=en&id=11774,

找到sqljdbc42.jar文件,上传到hadoop文件系统。

2、在Hue里新建一个WorkFlow ,拖入一个Sqoop Action

3、修改Sqoop的Command,如下图,命令:import  --connect jdbc:sqlserver://xx.xx.xx.xx:xx;databaseName=xxx --username xxx --password xxx --table au_group,然后在Files下选择第一步上传的jdbc驱动。

4、保存并Submit,就可以执行了,执行后会显示Success,如果出错的话,可以查Log,很容易找出问题。成功后就可以在Hdfs文件系统中看到在/User/用户名/下多了一个文件夹,文件夹名称即为--table指定的表名。

你会发现,这个小小的需求,实际上用到了Hue、Ozzie、Sqoop、HDFS这四个东东了。

接下来需要稍微变下,如何将Sql Server的一个表数据导入到Hive,这个如果在命令行模式下操作很简单,只要在上面的命令后面加上参数--hive-import就可以了,但在CDH 使用Hue Web 界面的集成环境里,却无法成功,问了以前碰过大数据的专家才知道这是个吭,可以用以下变通的方式实现

1、先使用Hive脚本创建表,类似以下这样的Hive Script

CREATE TABLE IF NOT EXISTS `xxx.xxxx` ( `ID` INT) COMMENT 'xxx' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS TEXTFILE

这个Hive Script手写起来比较麻烦,可以执行create-hive-table命令加--verbose参数,可以在Log中看到完整的脚本,然后将此脚本存至HDFS。

2、执行此Hive Script脚本,可新建一Workflow里面只拉入一个Hive Script Action,这个Action指向上一步创建的脚本文件。

3、将数据从Sql Server中导入到HDFS,这一步完全跟上面的需求实现是一模一样的

4、将数据从HDFS中导入到Hive数据库中,命令参照如下

LOAD DATA INPATH '/user/het/***' OVERWRITE INTO TABLE xxx;

整个步骤我分为三步,如下图,当然也可以将三步合在一个Workflow里。

执行完所有步骤后,可以到Hive数据库中查询,一开始发现Hive数据库中所有的数据全是Null,查了资料 发现是分隔符的问题,也就是说Hive表各字段的分隔符与导入数据的分隔符是不一致的,表分隔符在创建表时可以使用

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 

参数来指定,因此在导入数据时也指定相同的分隔符即可,也就是import Command后面加上--fields-terminated-by "\t",问题解决。

最后看下导入到Hive中的数据效果吧

												

大数据自学2-Hue集成环境中使用Sqoop组件从Sql Server导数据到Hive/HDFS的更多相关文章

  1. SQL Server 导数据 Oracle

    1. 使用Sql Server的企业管理器导入(推荐) 优点: 可以指定导入的表. 缺点: 转成Oracle时, 对应的数据类型要一个一个手动修改   2.使用ORACLE官方提供的Sql Devel ...

  2. Linux下LANMP集成环境中编译增加pdo_odbc模块

    linux版本为CentOs6.5,php集成环境为lanmp_v3.1,集成环境中默认的pdo扩展为:mysql, sqlite, sqlite2,现在有需求想链接微软的Access数据库,所以需要 ...

  3. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

  4. 数据库迁移(SQL SERVER导入数据到MySql)

    地址:http://blog.csdn.net/jiaohougenyang/article/details/44937801 背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据 ...

  5. Logstash : 从 SQL Server 读取数据

    有些既存的项目把一部分日志信息写入到数据库中了,或者是由于其它的原因我们希望把关系型数据库中的信息读取到 elasticsearch 中.这种情况可以使用 logstash 的 jdbc input ...

  6. 《转》SQL Server 2008 数据维护实务

    SQL Server 2008 数据维护实务 http://blog.csdn.net/os005/article/details/7739553 http://www.cnblogs.com/xun ...

  7. 不同版本的SQL Server之间数据导出导入的方法及性能比较

    原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...

  8. 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程

    本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(1)--简介 本文介绍SQL Server如何编译存储过程并使用计划缓存 ...

  9. sql server迁移数据(文件组之间的互相迁移与 文件组内文件的互相迁移)

    转自:https://www.cnblogs.com/lyhabc/p/3504380.html?utm_source=tuicool SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件 ...

随机推荐

  1. mysql的查询

    1.单表查询 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 ...

  2. Centos7 zookeeper单机/集群安装详解和开机自启

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  3. [sh]getopt参数解析

    https://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html sh参数处理方法 * 手工处理方式 * getopts #好像不支持长 ...

  4. centos6下升级git版本的操作记录

    编译go_ethereum的时候出现了错误 然后发现是自己的git没有升级成功  因为编译需要高版本的git版本  所以会编译不成功  之后执行 root@uatjenkins01 ~]# git - ...

  5. 删除sonarqube仪表盘上无用的工程

    管理员账号登陆,点击进入工程,比如我要删除sonar_source, 1.进入工程 2.配置-->删除

  6. 包含mysql 递归查询父节点 和子节点

    包含mysql 递归查询父节点 和子节点 mysql递归查询,查父集合,查子集合 查子集合 --drop FUNCTION `getChildList` CREATE FUNCTION `getChi ...

  7. Appium基础(三)对象抓取

    一.启动Android模拟器 二.打开App应用,这里以计算器为例子 三.打开uiautomatorviewer.bat 这个文件在Android SDK-->Tool目录下 双击uiautom ...

  8. VirtualBox 报错VERR_VD_IMAGE_READ_ONLY

    VirtualBox 无法打开虚拟机,报错VERR_VD_IMAGE_READ_ONLY,详细报错如下: 不能为虚拟电脑 Primary11gRAC2 打开一个新任务. Failed to open ...

  9. HDU 2604 Queuing(递推+矩阵)

    Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可 ...

  10. JS实例3

    window.setInterval("Time()",1); function Time() { var date = new Date();//当前时间函数 var n = d ...