自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

什么样的才是好代码

一、背景说明 最近时间相对比较宽裕了,相对于前些时候,可以说轻松了很多。于是偷得浮生半日闲,写点东西吧。其实对于这个话题,我在2010年的5月份的时候就想写了,但是那个时候专注于hadoop的技术学习,所以没有太多的时间去关注这个话题,于是就搁置了,但是没想到这一搁置居然搁置了有半年多的时间,于是思考着,这个时候再不写,以后怕是又要忘记了。于是赶紧写出来。二、好代码要具备的基本条件 关...

2011-01-21 12:00:56 162

难忘2010

其实在2011元旦的时候就打算写些东西用以回顾2010年,但是由于时间上紧张,实在是抽不出时间来写点东西,因此拖延到现在才写。干IT这个行业也有些年头了,说实话,2010年是我最难忘的一年。在工作内容、发展方向以及个人经历上都有了和往年大为不同的经历。在这里先记下一些难忘的事,供以后自己翻看。第一季度的开心: 年初的时候,也就是2010年的1月--3月,开心的事比较多,主要就是3件。一是自己...

2011-01-21 12:00:26 211

原创 Hadoop的基准测试工具使用(部分转载)

一、背景由于以前没有细看hadoop提供的测试工具,只是在关注hadoop本身的内容,所以很多的性能测试都忽略了。最近花了一周的时间准备做个性能测试,但是都是采用自己的方法得出的抽象值。今天看淘宝的博客,提到hadoop自带的测试工具,遂试了一把,记录一下,供以后参考。二、使用我做基准测试主要是用了hadoop-0.20.2-test.jar这个工具jar包。主要是做了I/O的测试。在网上也找了一...

2011-01-21 11:58:55 248

原创 分布式集群中的硬件选择

一、背景最近2个月时间一直在一个阴暗的地下室的角落里工作,主要内容就是hadoop相关的应用。在这期间,Hadoop的应用确实得到认可,但是同时也带来了一些问题,软件方面我就不在这里说了,只说说一些物理方面的局限:1、众所周知,hadoop能够接受任何类型的机器加入集群,在多不在精。但是这带来一个问题,机房的空间开销以及电费。2、机器太多,人力维护成本也是增加的。机柜啊、物理空间都是个不小的负担和...

2011-01-21 11:58:23 231

Map/Reduce的内存使用设置

一、背景今天采用10台异构的机器做测试,对500G的数据进行运算分析,业务比较简单,集群机器的结构如下:A:双核CPU×1、500G硬盘×1,内存2G×1(Slaver),5台B:四核CPU×2、500G硬盘×2,内存4G×2(Slaver),4台C:四核CPU×2、500G硬盘×2,内存4G×8(Master),1台软件采用Hadoop 0.20.2,Linux操作系统。二、过程1、制造了500...

2011-01-21 11:57:34 233

原创 Hadoop开发常用的InputFormat和OutputFormat(转)

Hadoop中的Map Reduce框架依赖InputFormat提供数据,依赖OutputFormat输出数据;每一个Map Reduce程序都离不开他们。Hadoop提供了一系列InputFormat和OutputFormat方便开发,本文介绍几种常用的。 TextInputFormat 用于读取纯文本文件,文件被分为一系列以LF或者CR结束的行,key是每一行的位置(偏移量,LongWrit...

2011-01-21 11:55:48 124

SecondaryNamenode应用摘记

一、环境Hadoop 0.20.2、JDK 1.6、Linux操作系统二、背景上周五的时候,由于操作系统的原因,导致JDK出现莫名的段错误。无论是重启机器还是JDK重装都无济于事。更可悲的是,出问题的机器就是Master。当时心里就凉了半截,因为secondarynamenode配置也是在这个机器上(默认的,没改过)。不过万幸的是这个集群是测试环境,所以问题不大。借这个缘由,我将...

2010-11-04 15:54:26 293

原创 Shell脚本执行Hive语句

一、环境1、Hadoop 0.20.22、Hive 0.53、操作系统 Linux m131 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x86_64 x86_64 GNU/Linux二、步骤1、直接贴上脚本吧#!/bin/bash#give the params: name value tablenameif [ $#...

2010-10-27 09:50:41 474

原创 关于Hive建表需要注意的问题

一、环境1、Hadoop 0.20.22、Hive 0.5.03、JDK 1.64、操作系统:Linux m131 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x86_64 x86_64 GNU/Linux二、注意事项1、关于数字类型支持的位数类型 支持数字位数tinyint 3位数字smallint 5位数字int 1...

2010-10-27 09:50:17 564

原创 Hive-0.5中SerDe概述

一、背景1、当进程在进行远程通信时,彼此可以发送各种类型的数据,无论是什么类型的数据都会以二进制序列的形式在网络上传送。发送方需要把对象转化为字节序列才可在网络上传输,称为对象序列化;接收方则需要把字节序列恢复为对象,称为对象的反序列化。 2、Hive的反序列化是对key/value反序列化成hive table的每个列的值。 3、Hive可以方便的将数据加载到表中而不需要对数据进行转换,这样在处...

2010-10-27 09:49:54 124

原创 Hive0.5中Partition简述

一、背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。二、技术细节1、一个表可以拥有一个或者多个分区,...

2010-10-27 09:49:27 170

原创 Hive-0.5中UDF和UDAF简述

一、UDF1、背景:Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:a)文件格式:Text File,Sequence Fileb)内存中的数据格式: Java Integer/String, Hadoop IntWritable/Textc)用户提供的 map/reduce 脚本:不管什么语言,利用 stdin...

2010-10-27 09:48:47 129

原创 Hive的JDBC连接

一、环境Hadoop 0.20.2版本、Hive-0.5.0版本、JDK1.6二、使用目的1、一般来说我们对hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连接都存放一个元数据,各个之间都不相同,所以,对于这样的模式我建议是用来做一些测试比较合适,并不适合做产品的开发和应用。2、因此,就产生的JDBC连接的方式,当然还有其他的连接方式,比如ODBC等。三、连接...

2010-10-27 09:48:19 174

原创 Hive安装手册

一、安装准备1、下载hive-0.5.0-bin版本:http://apache.etoak.com/hadoop/hive/hive-0.5.0/2、JDK版本:jdk-6u20-linux-i586.bin 3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x86_64 x86_64 G...

2010-10-27 09:47:54 144

原创 Hive使用杂记

一、环境描述1、Hadoop版本0.20.2,操作系统Linux、JDK 1.62、Hive版本0.5.0二、元数据的存储1、如果之前进行了建表操作,但是后来对hdfs format后,通过Hive的cli来输入指令show tables查看表,表结构依然存在,但是hdfs文件系统中对应的目录却不存在。那是因为hive的元数据还存在原因导致。元数据默认存放在metastore_db中,删除这个文件...

2010-10-27 09:47:11 149

原创 HBase的条件查询

一、环境HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.6二、需求背景 在HBase中,进行条件查询,很多的文件都说过,但是大多数都是在说明如何设置合理的表结构以及如何设置rowkey进行查询检索,这样的结构设计可以在一定层度上通过rowkey来定位查询(速度很快),但是,如果我是已知某个列的值,需要看有多少行的列包含这个值,那么这样的需求...

2010-10-27 09:46:34 299

原创 配置HBase使用Map/Reduce

1、HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.62、如果想通过MR对hbase进行一些操作,首先是需要做一些配置内容的,配置的流程如下:a、默认安装完成了hadoop和hbaseb、首先引入环境变量(修改/etc/profile文件,在文件末尾追加下面内容):# set java environmentexport JAVA_HOME=/usr...

2010-10-27 09:44:57 189

原创 HBase中关于中文的处理

1、HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.62、在HBase中创建了表,如果想通过控制台使用命令写入含有汉字的数据,录入是不成功的。3、如果想对汉字进行录入,可以通过代码实现,这里我使用的是java,代码如下: /** * 向指定的表插入单个Put对象 * * @param tablename * @param c...

2010-10-27 09:42:58 1099 1

原创 HBase分布式安装手册

一、安装准备1、下载HBASE 0.20.5版本:http://www.apache.org/dist/hbase/hbase-0.20.5/2、JDK版本:jdk-6u20-linux-i586.bin 3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x86_64 x86_64 GNU/...

2010-10-27 09:42:29 155

原创 Zookeeper分布式安装手册

一、安装准备1、下载zookeeper-3.3.1,地址:http://www.apache.org/dist/hadoop/zookeeper/zookeeper-3.3.1/2、JDK版本:jdk-6u20-linux-i586.bin3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x...

2010-10-27 09:41:36 132

原创 Hadoop分布式安装

一、安装准备1、下载hadoop 0.20.2,地址:http://www.apache.org/dist/hadoop/core/hadoop-0.20.2/2、JDK版本:jdk-6u20-linux-i586.bin (必须是1.6)3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x...

2010-10-27 09:41:06 113

原创 Map/Reduce使用杂记

一、硬件环境1、CPU:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz2、内存:2G3、硬盘:500G4、网卡:百兆电卡5、网络:局域网络6、集群数量:10台机器,1个master,10个slaves(master也做slave了!呵呵)二、关于同时运行的map和reduce数量。1、同时运行的数量通过mapred.tasktracker.map.t...

2010-10-27 09:40:38 145

原创 Hadoop中自定义计数器

一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、最近写MR的代码,总在想统计一些错误的数据出现的次数,发现如果都写在reduce的输出里太难看了,所以想找办法专门输出一些统计数字。2、翻看《hadoop权威指南》第8章第1节的时候发现能够自定义计数器,但都是基于0.19版本写的,好多函数都不对,改动相对较大。3、基于上面2个理由,写个文档,记录一下。三、实现1、前提:写入一...

2010-10-27 09:40:11 205

原创 Map/Reduce中的Partiotioner使用

一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。2、结果能够直观,同时做到对数据结果的简单的统计分析。三、实现1、输入的数据文件内容如下(1条数据内容少,1条数据内容超长,3条数据内容正常):kaka 1 28hua 0 26chao ...

2010-10-27 09:39:44 179

原创 Map/Reduce中的Combiner的使用

一、作用1、combiner最基本是实现本地key的聚合,对map输出的key排序,value进行迭代。如下所示:map: (K1, V1) → list(K2, V2) combine: (K2, list(V2)) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3)2、combiner还具有类似本地的reduce功能.例如hadoop自带的...

2010-10-27 09:38:53 131

原创 Hadoop中DBInputFormat和DBOutputFormat使用

一、背景 为了方便MapReduce直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。二、技术细节1、DBInputFormat(Mysql为例),先创建表:CRE...

2010-10-27 09:38:27 168

原创 Hadoop的MultipleOutputFormat使用

一、背景 Hadoop的MapReduce中多文件输出默认是TextOutFormat,输出为part-r- 00000和part-r-00001依次递增的文件名。hadoop提供了MultipleOutputFormat类,重写该类可实现定制自定义的文件名。二、技术细节1.环境:hadoop 0.19(目前hadoop 0.20.2对MultipleOutputFormat支持不好),li...

2010-10-27 09:37:57 175

原创 Map/Reduce中公平调度器配置

一、背景一般来说,JOB的执行就是FIFO的过程(先进先出),这样的方式资源得不到充分的使用。所以配置了一下公平调度。二、配置实现1、环境:hadoop0.20.22、拷贝/jz/hadoop-0.20.2/contrib/fairscheduler/hadoop-0.20.2-fairscheduler.jar到hadoop的lib目录下,并复制到集群所有机器上。3、修改mapred-site....

2010-10-27 09:37:27 130

原创 无法启动Datanode的问题

一、背景早上由于误删namenode上的hadoop文件夹,在主节点上重新安装hadoop之后,发现有2个datanode无法启动,经过排查,解决了这个问题,记下。二、现象及解决办法1、2个节点的Tasktracker启动了,但datanode死活起不来。2、使用sh hadoop-daemon.sh命令单独也无法启动。3、错误信息如下:2010-08-10 10:51:23,413 ERROR ...

2010-10-27 09:37:00 231

原创 Map/Reduce的GroupingComparator排序简述

一、背景排序对于MR来说是个核心内容,如何做好排序十分的重要,这几天写了一些,总结一下,以供以后读阅。二、准备1、hadoop版本是0.20.22、输入的数据格式(这个很重要,看清楚格式),名称是secondary.txt:abc 123acb 124cbd 523abc 234nbc 563fds 235khi 234cbd 675...

2010-10-27 09:36:34 139

原创 Map/Reduce中分区和分组的问题

一、为什么写分区和分组在排序中的作用是不一样的,今天早上看书,又有点心得体会,记录一下。二、什么是分区1、还是举书上的例子,在8.2.4章节的二次排序过程中,用气温举例,所以这里我也将这个例子说一下。源数据内容1900 35°C1900 34°C1900 34°C...1901 36°C1901 35°C书上的例子是为了去除一年当中气温最高的值,那么将年份和气温做了一个复合的key.2、通过设置了...

2010-10-27 09:35:57 148

原创 关于Map和Reduce最大的并发数设置

一、环境1、hadoop 0.20.22、操作系统 Linux二、设置1、因为hadoop的集群所有的机器不可能完全的配置一样,所以,不同节点机器上并发的最大map和reduce数量最好也不要相同。2、在对应的节点机器上修改mapreduce-sit.xml文件,添加参数如下:<property> <name>mapred.tasktracker.map.tasks.ma...

2010-10-27 09:34:31 505

原创 关于集群数据负载均衡

一、环境1、hadoop 0.20.22、操作系统 Linux二、关于负载均衡1、一般情况下,数据在录入集群的时候就进行负载均衡,根据各个节点的情况来做数据平衡分发存放。2、但是如果在新增节点之后,如果想做到负载均衡则需要使用balancer的命令。对于这个命令,一般是有一个阀值,默认是10%也就是说,节点之间差额不过10%,集群认为就是均衡的。3、当然,负载的越平均,查询相对也较快,但是均衡的过...

2010-10-27 09:33:49 159

原创 Map/Reduce执行流程简述

一、背景最近总在弄MR的东西,所以写点关于这个方面的内容,总结一下吧二、流程描述说实话,文字描述比较苍白,画了个图,贴出来,大家看看,有问题欢迎指出三、总结1、值得提出的是,一个map结束就马上会进行分区的操作。并非是等所有的map都结束才做分区的操作。2、分组的操作是对key的值进行比较分组。(可以是复合key,也可以是单一的key)3、关于job.setSortComparatorCl...

2010-10-27 09:33:23 195

原创 Hadoop集群中关于SSH认证权限的问题

今天回北京了,想把在外地做的集群移植回来,需要修改ip地址和一些配置参数,结果在配置的过程中,总是会有一些提示,说是我的机器之间的认证权限有问题。所以对照以前写的安装手册,把ssh重新配置了一遍。但是发现在启动的时候还是有提示,说是我的ssh有错误,还是需要输入yes和密码来登录。总结了一下,内容如下:1、hadoop的ssh配置namenode无密码访问datanode需要配置各个机器,详细步骤...

2010-10-27 09:32:36 171

Hadoop节点热拔插

一、 Hadoop节点热拔插在Hadoop集群中经常会进行增添节点操作,即实现节点的热拔插。在这些操作中不希望对集群进行重启。2.在集群中添加节点:a. 把新节点IP或者主机名字加入到主节点的slaves文件。b. 登录到新节点,执行:cd $HADOOP_HOME && bin/hadoop-daemon.sh start datanode && bin/hado...

2010-10-27 09:32:10 142

Eclipse下配置使用Hadoop插件

一、环境配置1、Eclipse 版本 3.3.X2、Hadoop版本 0.20.2二、配置流程1、将\hadoop-0.20.2\hadoop-0.20.2\contrib\eclipse-plugin\下的hadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse-SDK-3.3.2-win32\eclipse\plugins\下。2、启动eclipse,点击Windo...

2010-10-27 09:31:36 170

原创 Hadoop应用设计的思考

 最近的事确实很多,但大部分精力都放在了项目的设计方面,最近几天才完成了一些初步的编码的工作。在这个阶段,我发现,需要对数据的录入和Job执行的管理做细致的规划,否则在后期的扩展性上将有很大的局限。我设计的框架大体如下:在这个结构里面,可以明显的看到我采用了2种Client,一个是数据录入层,一个是Job管理层。这里我说明一下为什么需要这2种Client。1、数据录入主要接收数据,数据有多...

2010-10-27 09:27:31 144

原创 通过Hadoop的API对Job进行管理

一、需求背景由于我们在做一些业务的时候,可能需要多个Job来组合才能满足一个也许需求,而每个Job之间都有依赖关系,所以产生了需要对Job顺序的控制。总结一下需求,大体如下:1、Job之间有先后的顺序执行问题。2、需要对每个Job的状态进行监控(是否完成以及失败情况处理等等)3、对可以并发执行的Job调整。4、每个Job处理时的信息的采集以及记录。5...

2010-10-27 09:24:02 131

原创 JobClient应用概述

一、应用背景由于在设计中有一个模块是对Job的管理,所以,在这里我采用了JobClinet来进行简单的控制。二、应用点JobClient指的是org.apache.hadoop.mapred.JobClient这个类。里面有不少的方法,我这里列举一些我用到的和一些需要注意的方法。1、JobClient的实例化。这里有2中方法,一种是new JobClient(new...

2010-10-27 09:23:27 390

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除