Sqoop 2 Metadata design

Sqoop 2 Metadata design

本文描述了Sqoop2元数据架构的设计。分成几个部分从不同的层次描述来帮助理解这个设计。

Top Level Structures

目前有四个顶层的结构:

Connector

Connector将控制Sqoop2中整个数据移动过程。在系统中,有多个Connector可用,每一个特定的数据存储可能有自己特定的Connector(一个Oracle专用,一个MySQL专用)。一些数据存储可能有多个Connector来完成不同的目的。例如,可能有一个MySQL JDBC Connector使用java的JDBC接口,另一个MySQL Fastpath Connector利用MySQL本地工具(mysqldump和mysqlimport)。

因为不同的Connector可能有不同的配置需求,而不是所有的配置直接嵌入到Sqoop2框架,我们已经决定每个Connector将提供自己的元数据结构。每一个Connector将提供两套元数据结构,一个是对connection对象,第二个是job对象(下面解释)。

Framework

与Connector架构包含执行特性行为需要的元数据一样,Sqoop2框架需要为每一个connection和job配置一些额外的配置。Connector和Framework最大的不同是,可能会有多个Connector,但是只会有一个framework。

Connection

Connection对象包含Connector和Framework管理到远程数据存储的链接所需的元数据。Connection与java.sql.Connection对象没有任何关系。因为每一个Connector可能有不同的需要,每一个Connection直接依赖于Connector,这个Connection就是为这个Connector创建的。Connection对象被管理员创建,然后保存在Sqoop2的metastore中。这些Connection将接着被管理员或者job对象(下面解释)使用。

Job

Job对象直接依赖于Connection,持有特定Job的配置。例如,一个Job对象包含作业类型import还是export,导入或者导出使用的HDFS的位置等。管理员填充这些信息。Job将变成可执行的。

Corresponding classes

下面的描述涵盖了所有相关的类,自下而上描述,给读者提供一个更好理解的架构。

MInput

一个Connector请求的配置实体(例如“JDBC URL”或者”Username”)。

Mform

多个相关的MInput组合到一起创建一系列相关的选项(例如,MForm “Connection to database”将包含“JDBC URL” MInput,“username” MInput和“password”MInput)。

MjobForms

Job需要的一系列form。

MConnectionForms

一个Connection需要的多个form。

Mconnector

最顶层的架构包含一个MJobForms实例和一个MConnectionForms实例,指定了一个特定的Connector需要的元数据。所有的MForms是空的,不包含任何的配置。它们只作为Connector提供给Framework的模板,为了获取必要的配置选项。

Mframework

顶层架构包含一个MJobForms实例和一个MConnectionForm实例,指定了从Framework的角度需要的元数据。整个Sqoop2中只有一个这个类的实例。

Mconnection

顶层架构是一个Connector包含一个MConnectionForms实例。Forms将包含填充的值。

MJob

顶层架构师一个Connector包含一个MJobForms实例。Forms将包含填充的值。

Class relationship

Example

让我们假设一些基于Connector的JDBC。

Mconnector

1.      对于Connection:包含一个叫做Connection的MForm的列表,一个MFrom包含3个输入,“JDBC URL”,“Username”和“Password”。

2.      对于Job:包含一个叫做Source的MFrom的列表,一个MForm有一个输入“Table”。

Mframework

1.      对于Connection:包含一个空的列表,也就是没有被需要的值。

2.      对于Job:包含一个叫做Target的MForm,一个MForm只有一个输入“HDFS Directory”。

基于这个示例Connector,管理员可以创建两个不同的Connection:

Connection 1:

1.      Connector 部分:3个值,“JDBC URL”=“jdbc:mysql://development/test”,“Username”=“letest”,” Password
“=” letest “。

2.      Framework部分:一个Framework没有特定的任何MForms,这将是空的。

Connection2:

1.      Connector 部分:3个值,“JDBCURL”=” jdbc:mysql://production/test “,”Username“=” production-user “,”Password”=”
aosdf792r7asfhas8sd-9a7(&(&@#&$(Vosfs9fya9d7

(&SD(F*&S(*F&SDF&VChsdfhsdf”

2.      FrameWork 部分:一个FromWork不包含任何特定的MForms,这个值将为空。

操作还没有时间使用Connection 2,因为它还在使用connection 1。已经创建了两个基于connection 1的Job:

Job 1

1.      基于connection 1

2.      Connector部分:包含connector需要的数据,”Table“=” traffic_details “

3.      FrameWork部分:”HDFSDirectory“=” /storage/traffic_details “

Job 2

1.      基于connection 1

2.      Connector部分:“Table”=“log”

3.      FrameWork部分:“HDFSDirectory”=“/storage/log”

时间: 2024-10-13 21:56:31

Sqoop 2 Metadata design的相关文章

转载:《TypeScript 中文入门教程》 17、注解

版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 随着TypeScript和ES6里引入了类,现在在一些场景下我们会需要额外的特性来支持注解或修改类和类成员. Decorators提供了一种方式来添加注解和在类的声明和成员上使用元编程语法. Javascript里的Decorators目前处在建议征集的第一阶段,在TypeScript里做为实验性特性已经提供了支持. 注意  Decorators是实验性的特性,在未来的版本中可

Metadata file not found - Data.Entity.Model

错误 3 正在编译转换: 未能找到元数据文件“F:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\..\IDE\Microsoft.Data.Entity.Design.DatabaseGeneration.dll” E:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework

File System Design Case Studies

SRC=http://www.cs.rutgers.edu/~pxk/416/notes/13-fs-studies.html Paul Krzyzanowski April 24, 2014 Introduction We've studied various approaches to file system design. Now we'll look at some real file systems to explore the approaches that were taken i

Apache Sqoop - Overview Apache Sqoop 概述

使用Hadoop来分析和处理数据需要将数据加载到集群中并且将它和企业生产数据库中的其他数据进行结合处理.从生产系统加载大块数据到Hadoop中或者从大型集群的map reduce应用中获得数据是个挑战.用户必须意识到确保数据一致性,消耗生产系统资源,供应下游管道的数据预处理这些细节.用脚本来转化数据是低效和耗时的方式.使用map reduce应用直接去获取外部系统的数据使得应用变得复杂和增加了生产系统来自集群节点过度负载的风险. 这就是Apache Sqoop能够做到的.Aapche Sqoop

[TypeScript] Reflection and Decorator Metadata

TypeScript allows you to emit decorator metadata which enables more powerful features through reflection. This lesson show you how decorators and reflection fit together and how to configure your own decorators to use reflection. For now, if we look

Material Design with the Android Design Support Library

Material Design with the Android Design Support Library 原文http://www.sitepoint.com/material-design-android-design-support-library/ Material Design,Android 5.0发布时为android app 和其他平台app引入的一门新的设计语言. 它带来了一些新的UI组件,如“Floating Action Button”.实施这些新组件,同时确保向后兼容

什么是 metadata (元数据)

元数据就是数据的数据.听上去很酷,可到底是什么意思? 举个例子,你给情人写了一封信.在信中你表达了对他/她的无限思念.写好后装到信封里,在信封上写上收信人地址,收信人姓名,和发信人地址.在这里,信纸上的内容 -- 无限的思念,就是数据:信封上的内容 -- 两个地址和一个名字,就是元数据.元数据是对数据的一个说明:这封信是从哪儿来的,是到哪儿去的,收信人是谁.但元数据不管信里面到底说了什么.如果元数据包括了数据的内容,邮局就可以关门了. 对计算机里的文件来说,文件所处的目录,文件长度,文件属性等等

sqoop操作之ORACLE导入到HIVE

导入表的所有字段 sqoop import --connect jdbc:oracle:thin:@192.168.1.107:1521:ORCL \ --username SCOTT --password tiger \ --table EMP \ --hive-import --create-hive-table --hive-table emp -m 1; 如果报类似的错: ERROR tool.ImportTool: Encountered IOException running imp

Android Material Design 之 Toolbar的使用

Material Design是谷歌提出来的最新ui设计规范,我想actionbar大家也许并不陌生,toolbar简单而言可以看做为actionbar的升级版,相比较actionbar而言,toolbar可以随处放,显得比较自由,下面我们来看一下如何使用toolbar: 在 Android studio的编译环境中: 1:需要v7包的支持在build.gradle里面导入v7jar包 dependencies { compile fileTree(dir: 'libs', include: [