Azure HDInsight HBase DR解决方案

Sun wei  Sat, Feb 28 2015 3:07 AM  Apache HBase是目前非常流行的NoSQL数据库,通过HDFS+Zookeep+Master+Region Server的架构避免了单点故障具有很高的可靠性。在Azure HDInsight中的HBase也提供了相应的功能,通过Azure Storage来代替HDFS并提供了3个zookeeper及在多个workernode上的region server,并提供每月99.9%的SLA。但是对于一些更苛刻的场景,用户还需要DR的方案来保证业务的连续性。Apache HBase自身提供了Replication的功能,这种功能类似于MySQL里面的Master-Salve部署模式,我们可以部署2套Apache HBase Cluster来实现DR的要求。在Azure的数据中心设计时,我们也考虑到DR的情况,在每一个区域我们都提供了2个互为灾备的数据中心,在中国我们有北部和东部2个数据中心来做数据中心间的灾备,这样我们就可以利用Azure的资源来设计HBase的灾备解决方案了。 首先在设计Azure HDInsight HBase灾备的前提是网络层面的互通。Azure是一种多租户的环境,每隔客户之间的网络是相互隔离的,即便是一个客户的订阅下,北部数据中心和东部数据中心的网络也是不能互通的。为了达到这种互通的效果,我们需要借助Azure Virtual Network以及Site-to-Site VPN技术将2个数据中心的网络层进行互联,具体可以参考 https://msdn.microsoft.com/library/azure/dn133795.aspx 其次我们还需要处理名称解析的问题。处于安全考虑Azure默认提供的DNS只能解析一个云服务内的名称解析,对于这种跨Azure数据中心的名称解析,我们可以通过自己搭建DNS并在虚拟网络里设定DNS的方法来处理,将2个Cluster里面的服务器通过手工的方法注册到DNS之中。 最后的步骤就是创建HBase Cluster了。由于需要在部署Hbase的时候指定虚拟网络并修改hbase-site.xml,所以我们需要通过Powershell脚本的方式来创建。下面的示例脚本可以帮我们在2个数据中心中创建我们需要的2个cluster #default storage account name for HDInsight cluster $storageAccountName01=”Your storage account name in China North” $storageAccountName02=”Your storage account name in China East” #default storage container name for HDInsight cluster, the container…

0

Reduce对Pig作业性能的影响

Amber Zhao  Wed, Feb 25 2015 3:36 AM 很多用户在使用HDInsight的Pig功能时,发现有时很简单一个Pig Latin的relation会花费很长时间执行,当HDI使用MR框架时,由于Pig会根据具体的relation拆分成相应的Map和Reduce任务。根据Hadoop的MR框架如下特点,针对Reduce并行度的优化,会对Pig的作业有很大的性能影响。 Hadoop的MR框架中有以下特点: Map的并行度个数是由输入文件来决定,而Reduce并行度的个数是由Parallel关键字来决定。 当不指定parallel关键字时, Reduce task仅有一个。 Reduce的并行度依赖于cluster的规模。 具体内容看如下文档:http://wiki.apache.org/pig/PigLatin 当我们使用Get-AzureHDInsightJobOutput来进一步分析Pig作业的具体执行情况,我们可以通过Pig作业执行的具体日志来查看Map和Reduce的效率。如下为当使用group by的Pig作业的日志信息: =================================================== 测试1:默认一个Reduce的Pig 作业,执行Pig作业花费了74分钟: —————————– 2015-02-10 09:01:27,937 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 0% complete 2015-02-10 09:02:43,446 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 4% complete … 2015-02-10 10:15:18,029 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 100% complete … JobId     Maps    Reduces              MaxMapTime   MinMapTIme    AvgMapTime              MedianMapTime            MaxReduceTime             MinReduceTime              AvgReduceTime              MedianReducetime        Alias      Feature             …

0

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

Sun wei  Wed, Feb 25 2015 2:17 AM Apache Thrift 是一种可扩展的跨语言服务接口,可以通过内置的代码生成引擎帮助创建跨语言服务类库,Apache HBase 也是通过Thrift sever与Python,Ruby等其他程序开发语言进行交互。但是默认情况下Thrift Server默认不是启动的,需要手工处理一下。在Azure HDInight HBase中这种处理的方式有2种,我们可以根据使用场景来进行配置。 第一种方法相对简单,我们可以通过RDP远程连接到HeadNode0上,通过命令行hbase thrift2 start的方法启动thrift server进程。这种方法很简单,但是并不能能满足高可用的要求,只能用于开发测试环境。 第二种方法会复杂很多,但是可以提供生产级别的可用性,可扩展性要求。 创建2个Linux VM并将Azure HDInsight HBase集群部署到相同的虚拟网络上 在VM中设置$JAVA_HOME 在VM中配置repositories wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/GA/2.2.0.0/hdp.repo -O /etc/yum.repos.d/hdp.repo 在VM中安装HBase sudo yum install hbase 在VM中修改hbase-site.xml,主要是提供zookeeper的地址,可以通过DNS或者host文件的方法提供这些zookeeper及workernode的名字解析,zookeeper以及workernode的名称可以通过Ambari API得到  <configuration>    <property>      <name>hbase.cluster.distributed</name>      <value>true</value>    </property>    <property>      <name>hbase.zookeeper.quorum</name>      <value>zookeeper0.hbase.hdicluster.local,zookeeper1.hbase.hdicluster.local,zookeeper2.hbase.hdicluster.local</value>    </property>    <property>     …

0

Azure HDInsight与Hadoop周边系统集成

 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

0

Azure HDInsight 现已在中国正式发布

今年 9 月,我们宣布微软成为全球首家在中国公开发布云 Hadoop 产品公共预览版的云提供商。今天,微软非常高兴地宣布 AzureHDInsight 现已在中国正式发布。中国本土组织以及在中国设立了办事处的跨国集团均可在数分钟内启动一个 Hadoop 群集。 中国版 Azure HDInsight 页面(中文) Azure 试用(中文) Azure HDInsight 文档(中文)

0

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

Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Azure HDInsight 现在支持使用预览版 Hadoop 2.2 群集。 Windows Azure HDInsight 是 Microsoft 在Windows Azure 部署的完全基于 Apache Hadoop 的解决方案。Hadoop 是一个分布式存储和处理平台,可对大量关系数据和非关系数据进行分析。通过 HDInsight,Azure 客户可利用 Windows Azure Blob 存储中的数据或计算节点本地的本机 HDFS 文件系统中的数据。然后可动态配置 Hadoop 群集,以处理您的数据并利用 Windows Azure 进行灵活缩放。阅读 CIO 杂志聚焦,它重点介绍了一些客户如何利用 HDInsight 处理大量数据并将新的数据类型整合到分析中。 新版本的 Windows Azure HDInsight 具有以下新增功能:大幅改进了查询响应速度(高达…

0

Windows Azure HDInsight 现已正式发布!

今天,我们宣布正式发布 Windows Azure HDInsight 服务。HDInsight 是 Microsoft 提供的基于 Hadoop 的服务,为云提供 100% 的 Apache Hadoop 解决方案。 HDInsight 具有以下优势: 通过熟悉的工具洞察:通过与 Microsoft BI 工具(如 PowerPivot、Power View)进行深度集成,HDInsight 使您可以利用 Hadoop 轻松找到洞察数据信息。实现 HDInsight 等多个源的数据与 Power Query 的无缝结合。在 Excel 2013 中,使用全新的 3D 地图工具 Power Map 轻松将您的数据显示在地图上。 灵活性:HDInsight 可提供灵活性,以满足组织不断变化的需求。丰富的 Powershell 脚本将 Hadoop 群集的部署和配置时间由数小时甚至数天减少到几分钟。如果您需要更大的群集,仅需删除您的群集并创建一个更大的群集即可,这一过程只需几分钟时间,而且不会丢失任何数据。 企业级 Hadoop:HDInsight 具有企业级的安全性和可管理性。得益于专用 Secure Node,HDInsight 有助于更好地保护您的 Hadoop 群集。此外,我们还通过 PowerShell 脚本的扩展支持简化了…

0

Azure HDInsight 和 Azure Storage

我们在上一篇博客文章中对更新的 Windows Azure HDInsight 服务进行了演练。今天这篇文章,作为介绍 HDInsight 的 5 篇博客系列中的第 3 篇,将重点介绍 HDInsight 和 Azure Storage。 Windows Azure HDInsight 服务一个值得注意且与众不同的方面在于能够选择用于存储数据的位置。您可以将数据存储在计算节点本地的本机 HDFS 文件系统中,或使用 Azure Blob Store Container作为 HDFS 文件系统来存储数据。实际上,在配置 HDInsight 群集时,它默认情况下将在您的存储帐户中创建 Azure Blob Store Container作为默认 HDFS 文件系统。 或者,您可以通过自定义创建选项创建群集,以此来选择现有的 Azure Blob Store Container 作为默认 HDFS 文件系统。例如,在该屏幕截图中,您可以看到如何将名称为“netflix”的 Blob Store Container 指定为默认文件系统。 该Container 之前可能已配置为 HDInsight HDFS 文件系统,或者它可能是恰巧包含您要分析的数据的任意 Azure Blob Store…

0

使用 HDInsight进行开发

Windows AzureHDInsight 提供了运行 Apache Hadoop的动态供应群集来处理大数据(Big Data)的能力。您可以在这个系列的第一篇博客中找到更多信息,您也可以点击这里开始在Windows Azure 门户网站中使用它。这篇文章列举了开发人员与HDInsight交互的几种不同方法,首先通过讨论不同的场景,然后深入讨论 HDInsight 中各种不同的功能。因为我们的产品是建立在 Apache Hadoop 之上,所以开发人员可以利用一个有广泛且丰富的工具和功能的生态系统。 说起场景, 就我们合作过的客户而言,有两个截然不同的情形,创建,使用工具来处理大数据的工作,以及在应用程序中整合HDInsight,将工作的输入和输出整合为一个较大的应用程序架构的一部分。HDInsight 的一个关键设计是集成了 Windows Azure Blob Storage作为默认的文件系统。这意味着您可以使用现有的和工具和API’s访问 blob 存储中的数据。该文章更详细地解释了我们如何利用Blob Storage。 就创建工作这一点而言,有大量的工具可用。深层次说,它有一套作为现有Hadoop 生态系统的一部分的工具,以及一组我们建立的项目帮助.NET 开发人员开始学习Hadoop,同时我们已经开始了新的项目帮助开发人员利用 JavaScript 与 Hadoop交互。 创建工作 现有的 Hadoop 工具 HDInsight 是通过 Hortonworks Data Platform来使用 Apache Hadoop,对于Hadoop 的生态系统有很高的保真度。因此,许多功能都和原来的完全一样。这意味着你在下面列出的任何工具的投资和知识都在 HDInsight 中可用。分布式处理群集由下面的Apache 项目创建: Map/Reduce 在Hadoop上,Map/Reduce是分布式处理的基础。为了编写工作, 程序员可以使用Java, 或者通过Hadoop Streaming使用其他语言和运行时.  这里提供了在 HDInsight 上编写Map/Reducejobs的简易指南. Hive Hive使用一种类似于 SQL…

0

使用Windows Azure HDInsight Service在云上压缩大数据

作者信息:本篇文章是由SQL Server Product Management组的总经理Eron Kelly所著。这是我们介绍HDInsight Service 5 篇博客中的第1篇。 在过去微软一直很努力开发解决方案,使企业能够使用工具和他们熟悉的程序做大数据分析。今天,我很高兴能分享这些解决方案之一, Windows Azure HDInsight Service — — 基于云的Hadoop分布 — — 现已成为 Windows Azure Portal上的标准预览服务。正如 Scott Guthrie今天在他的博客中所说的,当前,客户可以在云上做基于 Hadoop 的大数据分析,费用也只是通过计算他们日常Windows Azure 订阅使用的存储量来计费。 Windows Azure HDInsight Service产品与Apache Hadoop完全兼容,客户有信心去选择HDInsight,因为他们知道无论现在还是将来HDInsight 与Apache Hadoop 都是100%兼容的。同时,HDInsight使的客户在几分钟内部署好群集,而不再需几小时或几天,从而简化了 Hadoop。这些集群可进行缩放以适应特定的要求并结合简单的基于 web 工具和 Api,来确保客户轻松地部署、 监控和关闭其基于云的群集。此外,Windows Azure HDInsight Service 集合了我们的business intelligence tools(包括 Excel、  PowerPivot 和Power View),使客户能够轻松地分析和解析数据,从而为公司获取有价值的信息。 微软在预览版阶段提供 Windows Azure HDInsight…

2