使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hive

E-MapReduce集群sqoop组件可以同步数据库的数据到集群里,不同的数据库源网络配置有一些差异网络配置。最常用的场景是从rds mysql同步数据,最近也有用户询问如何同步云外专有Oracle数据库数据到hive。云外专有数据库需要集群所有节点通过公网访问,要创建VPC网络,使用VPC网络创建集群,给集群各节点绑定动态ip,检查网络链路,Oracle数据库还上传oracle jdbc jar。本文会详细介绍具体的操作步骤。

创建vpc专有网络集群

如果没创建过VPC专有网络和子网交换机,需要先创建。如果已创建可以跳过下面的创建章节。

创建专有网络

进入VPC控制台 ,选择一个地区地区,点击创建专有网络。目前E-MapReduce支持华东1(杭州)和 华北2(北京)两个地区,所以专有网络也只能创建在这两个地区,根据您专有数据库和其他应用的网络情况选择一个。
图1. 专有网络列表

图2. 配置专有网络

创建交换机

创建专有网络成功后,点击管理交换机,创建一个交换机。交换机有可用区属性,这个要和EMR的集群可用区保持一致。
图3. 创建专有网络成功

图4. 配置交换机

创建VPC集群

创建VPC集群可以参考用户手册创建专有网络集群

绑定动态IP

VPC网络的EMR集群,默认只有master绑定了动态ip可以访问外网,需要给其他节点也绑定动态ip以便map任务访问专有数据库。先创建动态ip,再给各个节点绑定

创建动态IP

点击 IP管理控制台,点击右上角申请弹性公网IP。
图5. 弹性公网Ip

选择和VPC集群一致的地域,根据需要同步数据的实际情况选择按量计费或固定带宽,带宽峰值,购买数量设置为您master以外的节点数量。点击立即购买,等待开通

绑定Ip

成功后在ecs控制台给集群的每个ecs实例绑定一个EIP,就可以访问私有数据库的公网地址了。绑定的操作方式在ecs控制台-ecs实例后的管理-配置信息-更多-里面选择绑定弹性IP.

图6. 绑定弹性Ip

集群配置

放置 oracle jdbc jar

集群集成了常用的mysql jdbc jar,Oracle的jdbc jar需要去Oracle官网下载数据库可用的ojdbc jar,比如ojdbc14.jar,放在master节点的$SQOOP_HOME/lib目录下

检查网络

在master节点上连接Oracle数据库的访问地址,telnet ip port,如果无法连接,可能是因为你的数据库设置了防火墙访问规则限制,需要联系您数据库的运维人员设置集群所有节点的公网Ip允许访问。

选择Oracle连接

sqoop官方手册, oracle连接有三种写法

--connect jdbc:oracle:thin:@OracleServer:OraclePort:OracleSID

--connect jdbc:oracle:thin:@//OracleServer:OraclePort/OracleService

--connect jdbc:oracle:thin:@TNSName

选择适合您的连接方式。

测试连接

可以使用 sqoop eval执行一条查询语句确定连接是否正常. [eval 语法](http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html?spm=5176.doc28133.2.7.K0HsDL#_literal_sqoop_eval_literal),如果提示用户名密码无法访问,可能是密码错误或者该账户没有访问的权限。

map任务提示网络不通

如果map任务报错提示The Network Adapter could not establish the connection,可能是数据库防火墙的访问规则没加上集群其他节点,需要全部节点都允许访问。

时间: 2024-08-18 02:20:27

使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hive的相关文章

Oracle 数据库操作技巧集_oracle

正在看的ORACLE教程是:Oracle 数据库操作技巧集.[编者注:]提起数据库,第一个想到的公司,一般都会是Oracle(即甲骨文公司).Oracle在数据库领域一直处于领先地位.Oracle关系数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好.使用方便.功能强,适用于各类大.中.小.微机环境.Oracle9i是Oracle于今年6月份正式推出的数据库最新产品.Oracle9i在可伸缩性.可靠性和完整性方面有着上佳的表现,一推出就获得了开发者的认同.它是一种高效率.可靠性好的适

集群通信组件tribes之集群的平行通信

前面的集群成员维护服务为我们提供了集群内所有成员的地址端口等信息,可以通过MembershipService可以轻易从节点本地的成员列表获取集群所有的成员信息,有了这些成员信息后就可以使用可靠的TCP/IP协议进行通信了.这节讨论的正是实际中真正用于消息传送通道的相关机制及实现细节. 如下图,四个节点本地都拥有了一张集群成员的信息列表,这时节点1有这么一个需求:为了保证数据的安全可靠,在往自己的内存存放一份数据的同时还要同步到其他三个节点的内存中.节点1有一个专门负责发送的组件ChannelSe

关于集群分布式如何同步session和文件资源的上传下载?

问题描述 关于集群分布式如何同步session和文件资源的上传下载? 问题如标题?最近项目上线 没事就想到这个问题?希望各位能够解决小弟的困惑 解决方案 一,利用数据库同步session 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的. 2,这种方法是把存放session的表和其他数据库表放在一起,如果mysql也做了集群了话

《Hadoop集群与安全》一1.1 选择Hadoop集群硬件

1.1 选择Hadoop集群硬件 Hadoop是可扩展的集群,它采用非共享系统处理大规模并行数据.Hadoop的总体概念是单个节点对于整个集群的稳定性和性能来说并不重要.根据这种设计理念,我们可以在单个节点上选择能够高效处理少量(相对于整体的数据量大小)数据的硬件并且在硬件层面也无需过分追求稳定性和冗余性.读者可能已经知道,Hadoop集群由多种类型的服务器所组成.它们中有主节点,比如NameNode.备份NameNode以及JobTracker,还有称为DataNode的工作节点.除了核心的H

在阿里云上部署生产级别Kubernetes集群

阿里云是国内非常受欢迎的基础云平台,随着Kubernetes的普及,越来越多的企业开始筹划在阿里云上部署自己的Kubernetes集群.本文将结合实战中总结的经验,分析和归纳一套在阿里云上部署生产级别Kubernetes集群的方法.文中所采取的技术方案具有一定的主观性,供各位读者参考.在实践中可以根据具体使用场景进行优化. 目标 当我们刚接触Kubernetes进行测试集群的搭建时,往往会选择一篇已有的教程,照着教程完成集群搭建.我们很少去质疑教程作者每一步操作的合理性,只想快点把集群搭建起来,

文档式数据库在Hadoop集群中的应用

2013年11月22-23日,作为国内唯一专注于Hadoop技术与应用分享的大规模行业盛会,2013 Hadoop中国技术峰会(China Hadoop Summit 2013)于北京福朋喜来登集团酒店隆重举行.来自国内外各行业领域的近千名CIO.CTO.架构师.IT经理.咨询顾问.工程师.Hadoop技术爱好者,以及从事Hadoop研究与推广的IT厂商和技术专家将共襄盛举. 在SQL&NoSQL专场,来自巨彬软件的CTO王涛做了<文档式数据库在Hadoop集群中的应用>演讲,从大数据

JAVA查询Oracle数据库集群连接字符串

  事件: 报表接口数据库突然无法连接 ,导致无法正常取数操作. 异常信息: Io 异常: Got minus one from a read call 分析: 数据库地址及其配置信息都为发生变化 , 经询问后得知数据库调整为集群工作方式 . 结果: 1. 修改普通 JDBC 连接字符串为集群工作方式. 2. 接口中的 JDBC JAR文件不适合集群工作方式. 思维宽度: 1. JDBC JAR文件的选择, Classes12 到底是个啥玩意? 第一次听很晕 , 其实就是 oracle 数据库自

Zookeeper集群模式无法部署云服务器【java.net.BindException: 无法指定被请求的地址 (Bind failed)】的解决

Zookeeper集群模式无法部署云服务器[java.net.BindException: 无法指定被请求的地址 (Bind failed)]的解决. 正文 在云服务器(阿里云.腾讯云)上部署Zookeeper集群模式时,无法成功的原因有很多,网上主要提到了端口被占用(未开放)和防火墙开启两种问题,类似的博客很多,本文不再赘述. 如果你已经针对上述两种情况做了修改依然没有成功,那么就可能出现了本篇的问题. Zookeeper在启动时,并不会打印信息,即使集群启动失败,依然会显示: 这样我们看不到

大数据-hdoop集群下各hbase的数据是一样的吗?

问题描述 hdoop集群下各hbase的数据是一样的吗? 场景:要把全国31个省的数据从原来的oracle数据库导入到现在的hadoop集群,采用大数据以提高效率. 现在的环境是10台机器,Hadoop集群 问题是Hadoop集群的工作原理是怎样的?是把31个省的数据都导入每台机器的hbase还是每台机器的hbase导几个省,总共是31个省?怎么保证效率? 不懂吖 刚接触. 解决方案 10台机器的hadoop集群上配置hbase 分表空间 导入数据就可以了 都说了是集群了 所以10台用的是一份数