Sunwei 9 Dec 2014 1:54 AM

传统的Hadoop系统提供给用户2个非常优秀的框架,MR计算框架和HDFS存储框架,尽管MR已经显得有些老迈而缓慢,但是HDFS还是很多应用系统的基石,很多应用都可以把HDFS作为系统的基本数据输入和输出方式。HDFS的基本特征就是数据是分布式切块存储,通过多副本冗余的方式来提供数据持久性保障,并且可以通过节点的增加来进行系统的扩容,这也是很多用户和系统所看重的特点。目前在Hadoop社区里面有各种各样的组件和解决方案用于处理海量数据、可靠性消息、数据分析及预测等多种领域。

Microsoft Azure是一个开放的平台,用户当然可以在Azure上通过运行虚拟机的方式运行Hadoop系统来实现自己的业务功能,但是Azure平台还提供了AzureHDInsight这种PaaS服务来帮助客户更简单的部署和管理他们的Hadoop系统。AzureHDInsight是一套核心的计算组件,请注意我只说了它是负责计算相关的工作。在计算的方面,目前HDInsight提供了3种不同的Cluster类型,标准的Hadoop(HIVE),HBase
Cluster,StormCluster,未来Azure还会根据用户的需求引入其他Hadoop的集群。每种不同的Cluster类型我们都进行了针对这个组件相关的一些特殊设计和处理,这样可以针对特定的组件进行优化和配置。从架构上看HDInsight和传统的Hadoop Cluster有一些不同,我们在用户接入层有一层安全网关负责接入客户端请求以及认证,然后将认证后的请求转发到后端可用的headnode上,这种方式不但给Hadoop提供了安全认证以及端口的保护,而且也实现了Name Node的高可用性。如果是HBase
Cluster,后端还会有3个zookeeper节点的HA方案。如果用户需要直接访问headnode,我们可以通过将cluster部署到Region VNET的方式来支持,这个功能需要通过Powershell来指定VirtualNetworkId和SubnetName参数来实现,注意这个参数是ID而不是VNET的Name,可以通过(Get-AzureVNetSite-VNetName$VNetName).Id得到,这样就可以将Cluster与你其他的VM放在同一个VNET里面进行直接通信了。另外最近我们在HDInsight上支持了自定义脚本操作,这个功能非常有意义,可以用于安装新的组件例如Spark和R,也可以用来给现有的组件进行补丁的更新,具体的细节你可以参考http://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-script-actions/

除了计算功能之外,Microsoft Azure还提供了功能强大的存储功能,Azure Storage是Azure最基础的服务之一,提供了高持久性、高可用的分布式存储系统完全可以媲美HDFS,所以在HDInsight中我们使用了AzureStorage而不是HDFS的技术,也就是说HDInsight实现了在Hadoop上的计算与存储分离。这样处理的优势非常明显,用户可以根据计算的用量来动态创建和销毁Cluster而不需要考虑数据的问题,只需要保持使用同样的存储账号、容器、基于Azure
SQL DB的Hive元数据库。这种基于使用成本的优化方式是传统的Hadoop和HDFS所不能实现的,具体的信息可以参考 http://www.windowsazure.cn/zh-cn/documentation/articles/hdinsight-use-blob-storage/

Hadoop的强大之处并不是因为只有MR和HDFS,发挥更多作用的还是周边的生态系统组件,这些组件不断的在丰富和扩展Hadoop的功能,让客户更加容易的发挥其作用,所以HDInsight必须能够与其他的相关系统进行集成才能与开源社区和客户相连。 在HDInsight平台上除了自身默认支持的功能外,通过自定义脚本操作很多Hadoop周边的系统都可以运行在HDInsight之上,但是而然会有一些周边的系统需要通过HDFS直接与Hadoop系统进行连接,例如用于日志收集的Apache
Flume。在这种情况下,为了和Hadoop生态系统保持更好的兼容,微软在Hadoop的source code上也贡献了关于这个部分的源代码,我们可以通过下面的git命令获取ApacheHadoop的源代码并在hadoop-common\hadoop-tools\hadoop-azure下看到在HDFS上支持Azure Storage方面的代码。

git clone git://git.apache.org/hadoop-common.git

通过编译后我们可以将生成的hadoop-azure-3.0.0-SNAPSHOT.jar以及引用的microsoft-windowsazure-storage-sdk-0.6.0.jar复制到你需要的相关Hadoop组件的classpath路径内,然后在hadoopclient中的core-site.xml中添加

<property>

<name>fs.azure.account.key.{youraccount}.blob.core.chinacloudapi.cn</name>

<value>{your key}</value>

</property>

这样Hadoop生态系统中相关的其他系统中通过wasb://来代替hdfs://达到与HDInsight的集成的效果

如果你有任何疑问, 欢迎访问MSDN社区,由专家来为您解答Windows Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。

本文转发自:

http://blogs.msdn.com/b/cciccat/archive/2014/12/09/integrated-hadoop-ecosystem-with-azure-hdinsight.aspx

Azure HDInsight与Hadoop周边系统集成的更多相关文章

  1. Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集

     Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...

  2. 介绍Windows Azure HDInsight服务的Hadoop Storm的视频

    介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...

  3. Azure HDInsight 和 Spark 大数据实战(一)

    What is HDInsight? Microsoft Azure HDInsight 是基于 Hortonoworks Data Platform (HDP) 的 Hadoop 集群,包括Stor ...

  4. Windows Azure HDInsight 使用技巧

    Windows Azure HDInsight是一个面向大数据的PaaS服务,是PaaS版本的Hadoop.HDInsight是微软与Hortonworks合作的产物.可以理解为Hortonworks ...

  5. Azure HDInsight HBase DR解决方案

    Sun wei  Sat, Feb 28 2015 3:07 AM Apache HBase是目前非常流行的NoSQL数据库,通过HDFS+Zookeep+Master+Region Server的架 ...

  6. Azure HDInsight 现已在中国正式发布

     今年月,我们宣布微软成为全球首家在中国公开发布云 Hadoop 产品公共预览版的云提供商.今天,微软非常高兴地宣布 AzureHDInsight现已在中国正式发布.中国本土组织以及在中国设立了办 ...

  7. Windows Azure HDInsight 现已正式发布!

    今天,我们宣布正式发布 Windows Azure HDInsight 服务.HDInsight 是 Microsoft 提供的基于 Hadoop 的服务,为云提供 100% 的 Apache Had ...

  8. 在Azure HDInsight HBase集群中使用Thrift接口

    Sun wei  Wed, Feb 25 2015 2:17 AM Apache Thrift 是一种可扩展的跨语言服务接口,可以通过内置的代码生成引擎帮助创建跨语言服务类库,Apache HBase ...

  9. Azure HDInsight 上的 Spark 群集配合自定义的Python来分析网站日志

    一.前言:本文是个实践博客,演示如何结合使用自定义库和 HDInsight 上的 Spark 来分析日志数据. 我们使用的自定义库是一个名为 iislogparser.py的 Python 库. 每步 ...

随机推荐

  1. php生成xml的四种方法(转)

    <?xml version="1.0" encoding="utf-8"?> <article> <item> <ti ...

  2. Eclipse中设置作者日期等信息

    在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式生成的,例如其中author 的属性值. 我们可以在Eclipse 中进行设置自己希望显示的信息. 现在看看如何修改 ...

  3. Oracle创建触发器实现主键自增

    CREATE OR REPLACE TRIGGER "trigger_empl" before insert on extjsTest1.t_empl for each row b ...

  4. klayge 4.2.0 编译vc9

    CMake Error at CMakeLists.txt:442 (ADD_PRECOMPILED_HEADER): Unknown CMake command "ADD_PRECOMPI ...

  5. 关于delete和delete[]

    [精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的 ...

  6. *****正则表达式匹配URL

    最近将匹配URL的正则替换了下 之前的是: ((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3 ...

  7. linux top动态查看进程信息

    来源<鸟哥的linux私房菜> top:动态观察程序的变化 [root@linux ~]# top [-d] | top [-bnp] 参数: -d :后面可以接秒数,就是整个程序画面更新 ...

  8. linux crontab任务调度的使用

    (不推荐)可以直接将要调度的任务写入crontab任务表中 (推   荐)可以先将要完成的任务写入一个shell文件,如myTask.sh(还可能需要将该文件改为可执行的:chmod 744 myTa ...

  9. linux Ubuntu安装后没有引导 解决方案

    用EasyBCD添加ubuntu grub2引导,适用于12.04 及之前版本的ubuntu安装好easybcd后运行,之后看图

  10. <context:component-scan>配置解析(转)

    在xml配置了这个标签后,spring可以自动去扫描base-pack下和其子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注 ...