Cloudera Development Kit(CDK) 简介

guibin.beijing@gmail.com

2013.07.02

CDK简介

CDK(Cloudera Development Kit) 就是一些Cluodera开发的库、工具和文档的集合。CDK这个项目存在的价值在于使得在基于Hadoop生态系统上开发系统更加容易。这个项目是按照模块组织的,模块之间或者独立,或者依赖CDK内的其他模块,但是尽量少的依赖外部项目模块。CDK的文档主页在这里:http://cloudera.github.io/cdk/docs/0.2.0/index.html,项目主页:http://cloudera.github.com/cdk/cdk-data

当前CDK有以下三个模块:

  • CDK Data

CDK Data 模块在存储系统(HDFS)之上提供了逻辑抽象,使得用户能依据“records, datasets, and dataset repositories”这些概念去思考和操作数据。CDK Data的适用场景:如果你正在寻求一种方式
直接向存储系统中读/写数据记录,那么CDK Data应该就是你想要的。CDK Data 提供了操作Cloudra平台中数据集的简单、直观的API。换句话说,CDK Data所处的位置比 Hadoops input/output formats API低一个等级,比标准的HDFS+AVRO API高一个等级。

  • CDK Example
CDK Example提供了一些例子用于学习和适用CDK。
  • CDK Tools
CDK Tools提供了命令行公斤和API用于操作CDK的公共功能。

源代码

CDK的源代码地址:
https://github.com/cloudera/cdk


为什么要用CDK Data而不使用HDFS提供的API直接操作HDFS?

HDFS确实提供了用于操作HDFS的API,但是这些API(
FSInputStream,
FSOutputStream)都是面向字节流的,太底层、很不直观。
大多数的开发者更愿意思考更高层次的对象,而不是底层的文件、目录;而且开发者喜欢将表、数据集的概念移植到存储在HDFS上的数据上,因为这样更易于理解。CDK Data就着眼于这个需求,向开发者提供了立即可用的、令人愉快的方式用于操作Hadoop生态系统,并且不损失操作数据的效率。

CDK Data目前已知的局限性

  1. 目前不可以rename dataset。
  2. 当多进程操作数据集时,目前没有锁机制和进程间的协调机制。
  3. 不能确保被FileSystem*实现的writer所生成的文件名是真正唯一的。
  4. 所有的data set都使用Snappy压缩,目前不可以disable压缩或者更换不同的压缩方式。




Cloudera Development Kit(CDK) 简介的更多相关文章

  1. 2.2、CDH 搭建Hadoop在安装(安装Java Development Kit)

    第2步:安装Java Development Kit 要安装Oracle JDK,您可以使用Cloudera Manager安装Cloudera提供的版本,也可以直接安装Oracle的其他版本. 继续 ...

  2. FBX Software Development Kit

    FBX Software Development Kit The FBX Software Development Kit (FBX SDK) allows software developers t ...

  3. Data Plane Development Kit (DPDK): Getting Started

    参考:dpdk getting started 系统: Ubuntu 14.04 内核信息: 执行 uname -a Linux chen-VirtualBox 3.13.0-32-generic # ...

  4. eclipse解压后启动弹出A Java Runtime Evironment(JRE) or Java Development Kit(JDK)....

    系统环境:win7 64bit JDK:jdk-7u79-windows-x64 Eclipse:eclipse-jee-helios-win32 启动eclipse:弹出A Java Runtime ...

  5. ubuntu myeclipse 启动时提示 A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avail ....

    jdk已经安装过但是启动eclipse时提示“A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avail  ...

  6. How to install JDK (Java Development Kit) on Linux

    This tutorial will guide you on how to install JDK (Java Development Kit) on Linux. Since I use Cent ...

  7. Linux 下报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must解决方案

    一.报错环境:在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Linux 下报错:A Java RunTime Environment (JRE) or Jav ...

  8. Java(TM) SE Development Kit 6 卸载不掉怎么办

    错误描述:Java 安装时断电,再次安装java时,提示“您的电脑上已经安装了此软件.是否要重新安装”,点“是”后出现“内部错误2753:RegUtils”,点“确定”又出现上述提示. 解决办法 :使 ...

  9. Linux 下安裝 Java SE Development Kit(JDK)並配置環境變量

    下載頁面:http://www.oracle.com/technetwork/java/javase/archive-139210.html 打開“Java SE 7”,再打開“Java SE Dev ...

随机推荐

  1. grunt的基本概念和使用

    grunt的基本概念和使用 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版 ...

  2. 上海及周边地区产品技术创业QQ群:98905958

    创业是一件骄傲的事,每一个行业里最棒人才都应该创业或參与创业或以一个创业者的心态进行职业远景规划: 创业是一件寻常的事,跟上班打工一样寻常,没有什么必须的前置条件才干够開始,也没有什么前置条件能保证我 ...

  3. [译]Java 垃圾回收的监控和分析

    说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Monitoring and Analysi 在这个系列的Java垃圾回收教程中,我们将看到可用于垃圾 ...

  4. 在ubuntu下开发stm32f4-discovery

    前面零散地记录了一些如何安装编译器,调试器等笔记,这里就准备开始着手试一下这整块系统了. 简单不完全地回顾一下所需要安装的软件: 1 编译器 使用的是codesourcey,因为之前有使用过该套编译器 ...

  5. Effective C++ Item 46 当需要投你非成员函数定义模板

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:当我们编写一个 class template, 而它所提供之"与此 temp ...

  6. jQuery在线选座订座(影院篇)

    原文:jQuery在线选座订座(影院篇) 我们在线购票时(如电影票.车票等)可以自己选座.开发者会在页面上列出座次席位,用户可以一目了然的看到可以选择的座位及支付.本文以电影院购票为例,为您展示如何选 ...

  7. bash元字符(上)

    元字符 行动 样例 回车换行 结束一个命令 空格 切割命令行中的元素 ls /etc Tab 命令自己主动补全 # 開始一行凝视 #This is a comment line " 引用多个 ...

  8. ASP.NET MVC IOC 之AutoFac

    ASP.NET MVC IOC 之AutoFac攻略 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天, ...

  9. 一步一步实现基于Task的Promise库(一)Promise的基本实现

    如果我们现在有一个需求,大概是先读取一个文件的内容,再把得到的内容传给后台去解析,最后把解析后的结果再保存到那个文件,按照最原始的做法代码就是下面这个样子的: //读取文件的原始内容 var read ...

  10. navigator获取参数

    <script type="text/javascript" language="javascript"> document.write(" ...