安装完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. openshift 容器云从入门到崩溃之三《安装openshift》

    准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项 文档地址:https://docs.okd.io/latest/install/configuring_inven ...

  2. k8s 健康检查

    livenessProbe: exec: command: - /bin/sh - '-c' - /opt/app-root/src/check_conf.sh failureThreshold: 3 ...

  3. OpenShift Origin 基本命令

    用户管理 $ oc login #登陆$ oc logout #注销$ oc login -u system:admin -n default #以系统管理身份登陆并指定项目$ oc login ht ...

  4. 2019.03.25 git

    Git简介: Git是一个分布式版本控制软件. 背景故事: Linus在1991年创建了开源的Linux. 在2002年以前:世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后Linu ...

  5. phpstudy安装redis

    php安装扩展,首先要在php官网下载相应的库文件, http://pecl.php.net/package/redis 下载相应版本的文件,首先phpinfo()看看当前的php环境版本等等   我 ...

  6. Linux开机自启配置

    1.将自己写好的脚本或命令写入/etc/rc.local文件中.系统会根据该文件来启动所指定的脚本或命令. 例:我有一个脚本:/root/usr/local/scripts/1234.sh 那么直接将 ...

  7. sql server相关

    sql server nolock 在sqlserver 中with(nolock)详解   所有Select加 With (NoLock)解决阻塞死锁 在查询语句中使用 NOLOCK 和 READP ...

  8. android 注入so

    https://www.52pojie.cn/thread-564459-1-1.html

  9. 从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?

    自从小白向师兄学习了李群李代数和相机成像模型的基本原理后,感觉书上的内容没那么难了,公式推导也能推得动了,感觉进步神速,不过最近小白在学习对极几何,貌似又遇到了麻烦... 小白:师兄,对极几何这块你觉 ...

  10. struts2实现XML异步交互

    异步交互,在不用重新提交整个页面的情况下可以实现页面局部信息与服务器的交互.在编写异步交互时需要用到一个架包:dom4j,下载地址为:https://dom4j.github.io/ 下面通过例子说明 ...