简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  hadoop

1 2 3 4 5 6 下一页

记一下hadoop那点事儿
摘要:前言前阵子,公司的hadoop从hadoop1.02升级到hadoop2.4.1,记录下升级的步骤和遇到的问题,和大家分享,希望别人可以少走一些弯路技术选型 当前使用版本: apache hadoop 1.0.2 hive 0.10 升级目标版本 Apache hadoop 2.4.1 H... 阅读全文
posted @ 2014-09-17 15:49 ggjucheng 阅读(14053) 评论(8) 推荐(6) 编辑

摘要:本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客。1. 表的设计1.1 Pre-Creating Regions默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。有关预分区,详情参见:Table Cre 阅读全文
posted @ 2013-10-22 09:50 ggjucheng 阅读(3633) 评论(0) 推荐(0) 编辑

摘要:因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正。配置优化zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.调优:这个timeout决定了Regio 阅读全文
posted @ 2013-10-22 09:49 ggjucheng 阅读(6540) 评论(0) 推荐(1) 编辑

摘要:HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api。import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor; 阅读全文
posted @ 2013-10-21 20:39 ggjucheng 阅读(52442) 评论(0) 推荐(4) 编辑

摘要:几个相关类与HBase数据模型之间的对应关系java类HBase数据模型HBaseAdmin数据库(DataBase)HBaseConfigurationHTable表(Table)HTableDescriptor列族(Column Family)Put列修饰符(Column Qualifier)GetScanner一、HBaseConfiguration关系:org.apache.hadoop.hbase.HBaseConfiguration作用:对HBase进行配置返回值函数描述voidaddResource(Path file)通过给定的路径所指的文件来添加资源voidclear()清. 阅读全文
posted @ 2013-10-21 11:26 ggjucheng 阅读(11621) 评论(0) 推荐(1) 编辑

摘要:HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegion Server)群和HBase Master服务器(HBase Master Server)构成。HBase Master服务器负责管理所有的HRegion服务器,而HBase中所有的服务器都是通过ZooKeeper来进行协调,并处理HBase服务器运行期间可能遇到的错误。HBase Master Server本身不存储HBase中的任何数据,HBase逻辑上的表可能会被划分为多个HRegion,然后存储到HRegion Server群中,HBase Master Server中存储的是从数据到HReg 阅读全文
posted @ 2013-10-21 11:08 ggjucheng 阅读(5903) 评论(0) 推荐(2) 编辑

摘要:HBase shell的基本用法hbase提供了一个shell的终端给用户交互。使用命令hbase shell进入命令界面。通过执行 help可以看到命令的帮助信息。以网上的一个学生成绩表的例子来演示hbase的用法。namegradcoursemathartTom59787Jim48980这里grad对于表来说是一个只有它自己的列族,course对于表来说是一个有两个列的列族,这个列族由两个列组成math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics等相应的列添加入course列族。(1)建立一个表scores,有两个列族grad和co 阅读全文
posted @ 2013-10-20 21:56 ggjucheng 阅读(20540) 评论(0) 推荐(1) 编辑

摘要:HBase使用场景和成功案例有时候了解软件产品的最好方法是看看它是怎么用的。它可以解决什么问题和这些解决方案如何适用于大型应用架构,能够告诉你很多。因为HBase有许多公开的产品部署,我们正好可以这么做。本章节将详细介绍一些人们成功使用HBase的使用场景。注意:不要自我限制,认为HBase只能解决这些使用场景。它是一个初生的技术,根据使用场景进行创新正驱动着系统的发展。如果你有新想法,认为可以受益于HBase提供的功能,试试吧。社区很乐于帮助你,也会从你的经验中学习。这正是开源软件精神。HBase仿效了Google的BigTable,让我们开始探索典型的BigTable问题:存储互联网。典型 阅读全文
posted @ 2013-10-20 20:46 ggjucheng 阅读(28790) 评论(0) 推荐(2) 编辑

摘要:本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。Zookeeper的通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而leader主要承担事务的协调,当然leader也可以承担接收客户请求的功能,为了方便描述,后面的描述都是client与Follower之间的通信,如果Zookeeper的配置支持leader接收client的请求,clie 阅读全文
posted @ 2013-10-18 18:13 ggjucheng 阅读(9364) 评论(0) 推荐(2) 编辑

摘要:Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。在看完ZK Client的大致架构以后我希望能有一种简单的方式描述ZK Client的基本结构,想来想去我觉得还是图片比较能反映情况,于是我画了这张大致的结构图:我想既然我画了这张图,就让我们从这张图开始讲起吧。模块:我们可以认为ZK的Client由三个主要模块组成:Zookeeper, WatcherManager, ClientC 阅读全文
posted @ 2013-10-18 18:07 ggjucheng 阅读(16621) 评论(0) 推荐(1) 编辑

摘要:原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Pax 阅读全文
posted @ 2013-10-18 17:59 ggjucheng 阅读(3620) 评论(0) 推荐(1) 编辑

摘要:如何使用Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使用示例。常用接口列表客户端要连接 Zookeeper 服务器可以通过创建 org.apache.zookeeper. ZooKeeper 的一个实例对象,然后调用这个 阅读全文
posted @ 2013-10-15 15:45 ggjucheng 阅读(79812) 评论(6) 推荐(13) 编辑

摘要:译自http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html1简介本文是为想要创建使用ZooKeeper协调服务优势的分布式应用的开发者准备的。本文包含理论信息和实践信息。本指南的前四节对各种ZooKeeper概念进行较高层次的讨论。这些概念对于理解ZooKeeper是如何工作的,以及如何使用ZooKeeper来进行工作都是必要的。这几节没有代码,但却要求读者对分布式计算相关的问题较为熟悉。这四节是:lZooKeeper数据模型lZooKeeper会话lZooKeeper观察l一致性保证接下来的四节提供了实际编程的信息。这四 阅读全文
posted @ 2013-10-15 14:55 ggjucheng 阅读(12520) 评论(0) 推荐(0) 编辑

摘要:译自http://zookeeper.apache.org/doc/trunk/zookeeperOver.htmlZooKeeper是一个用于分布式应用的开源分布式协调服务。它提供了简单的原语集合,分布式应用可在这些原语之上构建用于同步、配置维护、分组和命名的高层服务。ZooKeeper的设计使得编程容易,并且使用类似于广泛熟知的文件系统目录树结构的数据模型。它运行在Java环境中,但是有Java和C语言绑定。分布式协调服务是出了名的难得编写正确,很容易出现竞争条件和死锁之类的错误。ZooKeeper的动机是减轻为分布式应用开发协调服务的负担。1设计目标1.1简单ZooKeeper让分布式进 阅读全文
posted @ 2013-10-14 15:45 ggjucheng 阅读(5860) 评论(0) 推荐(0) 编辑

摘要:ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。因此,也非常欢迎读者分享你在ZK使用上的奇技淫巧。ZooKeeper典型应用场景一览数据发布与订阅(配置中心)发布与订阅模型,即所谓的 阅读全文
posted @ 2013-10-05 17:27 ggjucheng 阅读(6709) 评论(0) 推荐(3) 编辑

摘要:本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这方面,可以查看《ZooKeeper快速搭建》。1.部署本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容:系统环境集群模式的配置单机模式的配置系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境的ZK集群。如果仅仅是想在单机上将ZK运行起来,进行一些开发与测试,那么第三部 阅读全文
posted @ 2013-10-05 17:08 ggjucheng 阅读(33437) 评论(1) 推荐(1) 编辑

摘要:hadoop作业提交时可以指定相应的队列,例如:-Dmapred.job.queue.name=queue2通过对mapred-queue-acls.xml和mapred-site.xml配置可以对不同的队列实现不同用户的提交权限.先编辑mapred-site.xml,修改配置如下(增加四个队列): mapred.queue.names default,queue1,queue2,queue3,queue4 修改生效后通过jobtrack界面可以看到配置的队列信息。要对队列进行控制, 还需要编辑mapred-queue-acls.xml文件 mapred.queue.queue1.... 阅读全文
posted @ 2013-10-05 16:55 ggjucheng 阅读(4411) 评论(0) 推荐(0) 编辑

摘要:hadoop是一个分布式存储和分布式计算的框架。在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译、打包。下面将详细描述如何从svn上导入并对hadoop进行eclipse下编译。因项目使用的hadoop版本是0.20.2,所以我们基于hadoop-0.20.2来进行二次开发。(1)首先从svn上签出源代码,svn地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.2/ (2)在下载的过程中,准备开发和编译环境。windows下至少需要安装如下. 阅读全文
posted @ 2013-10-05 16:44 ggjucheng 阅读(5541) 评论(0) 推荐(0) 编辑

摘要:1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个buffer默认是100MB大小,但是这个大小是可以根据job提交时的参数设定来调整的,该参数即为:io. 阅读全文
posted @ 2013-10-05 16:25 ggjucheng 阅读(2343) 评论(0) 推荐(0) 编辑

摘要:前言由于项目中,需要统计每个业务组使用的计算机资源,如cpu,内存,io读写,网络流量。所以需要阅读源码查看hadoop的默认counter。MapReduce Counter可以观察MapReduce job运行期的一些细节数据,Counter有"组group"的概念,用于表示逻辑上相同范围的所有数值。cpu如何衡量mapreduce的任务的计算量呢,如果按照任务的运行时间,有些任务的大部分时间可能卡在最后一个reduce,或者运行期间有资源抢占问题,造成运行时间较高。如果按照任务的map数和reduce数,也是不准确的,因为有些map和reduce处理的数据量很少,运行 阅读全文
posted @ 2013-05-08 11:14 ggjucheng 阅读(5515) 评论(2) 推荐(3) 编辑

1 2 3 4 5 6 下一页