hadoop
文章平均质量分 78
小桥
活泼开朗 ,乐于帮助他人
展开
-
hadoop 一个Job多个MAP与REDUCE的执行
在hadoop 中一个Job中可以按顺序运行多个mapper对数据进行前期的处理,再进行reduce,经reduce后的结果可经个经多个按顺序执行的mapper进行后期的处理,这样的Job是不会保存中间结果的,并大大减少了I/O操作。例如:在一个Job中,按顺序执行 MAP1->MAP2->REDUCE->MAP3->MAP4 在这种链式结构中,要将MAP2与REDUCE看成这个MAPRE转载 2014-08-14 23:46:27 · 2641 阅读 · 0 评论 -
Hadoop中一个distcp
hadoop中有一个叫做distcp(分布式复制)的有用程序,能从hadoop的文件系统并行复制大量数据。distcp一般用于在两个HDFS集群中传输数据。如果集群在hadoop的同一版本上运行,就适合使用hdfs方案: % hadoop distcp hdfs://namenode1/foo hdfs://namenode2/bar 这将从第一个集群中复制/foo目录(和它的内容转载 2014-01-13 17:07:02 · 1186 阅读 · 0 评论 -
Hadoop压缩API应用实例 org.hadoopinternal.compress
本节介绍使用编码/解码器的典型实例(代码在org.hadoopinternal.compress包中)。其中,compress()方法接受一个字符串参数,用于指定编码/解码器,并用对应的压缩算法对文本文件README.txt进行压缩。字符串参数使用Java的反射机制创建对应的编码/解码器对象,通过CompressionCodec对象,进一步使用它的createOutputStream()方法构造一转载 2014-01-07 15:06:05 · 1328 阅读 · 0 评论 -
Hadoop和HBase集群的JMX监控
说到对Hadoop和HBase的集群监控,大家知道的和用的最多的可能还是第三方的监控工具,cacti,ganglia,zabbix之类的。玩的深一些的,会用zenoss之类的。这些工具确实不错,也能发挥很大的作用,但时间长了总感觉监控粒度还是比较粗,不够详细。毕竟是第三方的监控,即便Hadoop自带了ganglia的接口,也还是觉得不够。其实Hadoop本身是带有监控接口的,各公司的发转载 2013-07-10 15:39:09 · 1379 阅读 · 1 评论 -
Hadoop收集作业执行状态信息
最近一个项目需要收集hadoop作业的执行状态的信息,我给出了以下的解决策略:1、从Hadoop提供的jobtracker.jsp获取需要的信息,这里遇到的一个问题是里面使用了application作用域JobTracker tracker = (JobTracker) application.getAttribute("job.tracker");而Jetty服务器是嵌入到Had转载 2013-11-12 20:47:36 · 940 阅读 · 0 评论 -
HDFS之FileStatus
任何文件系统的一个重要特性都是提供其目录结构浏览和检索它所存文件和目录相关信息的功能。FileStatus对象封装了文件系统中文件和目录的元数据,包括文件的长度、块大小、备份数、修改时间、所有者以及权限等信息。 FileStatus对象由FileSystem的getFileStatus()方法获得,调用该方法的时候要把文件的Path传进去。 例子:打印输出某个文件的所有信息转载 2013-11-24 21:48:22 · 2052 阅读 · 0 评论 -
Hadoop HDFS文件操作 Java实现类
1、创建HDFS目录[java] view plaincopyprint?import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.转载 2013-11-07 15:01:05 · 738 阅读 · 0 评论 -
hadoop最基本配置及build(ant代理)
网上的大多数都是hadoop-site.xml20的版本,分成了3个配置文件,core-site.xml,hdfs-site.xml,mapred-site.xml,默认的在core.jar里面,源码在hadoop-0.20.2\src\core\core-default.xmlhadoop-0.20.2\src\mapred\mapred-default.xmlhadoop-转载 2013-11-07 15:35:33 · 951 阅读 · 0 评论 -
Hadoop,MapReduce,参数
下面介绍MapReduce的主要的六个类,只有了解了这六个类的作用,才能在编写程序中知道哪个类是要自己实现,哪些类可以调用默认的类,才能真正的做到游刃有余,关于需要自己编写的类(用户制定类)可以参考:http://www.cnblogs.com/liqizhou/archive/2012/05/14/2499498.htmlInputFormat类。该类的作用是将输入的文件和数据分割成许多转载 2013-11-03 00:16:37 · 745 阅读 · 0 评论 -
HDFS中文件的压缩与解压
文件的压缩有两大好处:1、可以减少存储文件所需要的磁盘空间;2、可以加速数据在网络和磁盘上的传输。尤其是在处理大数据时,这两大好处是相当重要的。 下面是一个使用gzip工具压缩文件的例子。将文件/user/hadoop/aa.txt进行压缩,压缩后为/user/hadoop/text.gz 1 package com.hdfs; 2 3 import java.io.IOE转载 2013-10-30 17:27:27 · 1371 阅读 · 0 评论 -
机架感知(Rack Awareness)机制浅述
机架感知(RackAwareness)通常,大型Hadoop集群会分布在很多机架上。在这种情况下, -- 希望不同节点之间的通信能够尽量发生在同一个机架之内,而不是跨机架。 -- 为了提高容错能力,名称节点会尽可能把数据块的副本放到多个机架上。综合考虑这两点的基础上Hadoop设计了机架感知功能。机架感知设计思想首转载 2013-10-12 17:50:30 · 1368 阅读 · 0 评论 -
《转载》hadoop cdh3u3 eclipse插件编译
1. 编译环境操作系统:debian6 amd64,安装ant和maven2这两个java打包工具。hadoop:hadoop-0.20.2-cdh3u3.tar.gzeclipse:eclipse-java-indigo-SR2-win32.zip2. 编译hadoop解压源码hadoop-0.20.2-cdh3u3.tar.gz并进入,执行ant,自动下载依赖并编译。3转载 2013-10-11 20:46:55 · 1018 阅读 · 0 评论 -
Hadoop中DBInputFormat和DBOutputFormat使用
一、背景 为了方便MapReduce直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。二、技术细节1、DBInputFormat(Mys转载 2013-08-13 10:03:21 · 997 阅读 · 0 评论 -
MapReuce 编程总结-多MapReduce执行
学习hadoop,必不可少的就是写MapReduce程序,当然,对于简单的分析程序,我们只需一个MapReduce就能搞定,这里就不提单MapReuce的情况了,网上例子很多,大家可以百度Google一下。对于比较复杂的分析程序,我们可能需要多个Job或者多个Map或者Reduce进行分析计算。 多Job或者多MapReduce的编程形式有以下几种:1、迭代式MapReduc转载 2014-01-26 16:02:05 · 765 阅读 · 0 评论 -
如何编译Apache Hadoop2.2.0源代码
hadoop2的学习资料很少,只有官网的少数文档。如果想更深入的研究hadoop2,除了仅看官网的文档外,还要学习如何看源码,通过不断的调试跟踪源码,学习hadoop的运行机制。1.安装CentOS我使用的是CentOS6.5,下载地址是http://mirror.neu.edu.cn/centos/6.5/isos/x86_64/,选择CentOS-6.5-x86_64-bin-DV转载 2014-02-17 11:04:46 · 779 阅读 · 0 评论 -
hadoop用MultipleInputs/MultiInputFormat实现一个mapreduce job中读取不同格式的文件
hadoop中提供了 MultiOutputFormat 能将结果数据输出到不同的目录,也提供了 FileInputFormat 来一次读取多个目录的数据,但是默认一个job只能使用 job.setInputFormatClass 设置使用一个inputfomat处理一种格式的数据。如果需要实现 在一个job中同时读取来自不同目录的不同格式文件 的功能,就需要自己实现一个 MultiInput转载 2014-08-14 23:49:30 · 2050 阅读 · 0 评论 -
如何使用Hadoop的ChainMapper和ChainReducer
Hadoop的MR作业支持链式处理,类似在一个生产牛奶的流水线上,每一个阶段都有特定的任务要处理,比如提供牛奶盒,装入牛奶,封盒,打印出厂日期,等等,通过这样进一步的分工,从而提高了生产效率,那么在我们的Hadoop的MapReduce中也是如此,支持链式的处理方式,这些Mapper像Linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线,而这一点与L转载 2014-08-14 23:47:25 · 638 阅读 · 0 评论 -
Hadoop web编程--REST API
1 介绍 Hadoop提供了一个Java native API来支持对文件系统进行创建,重命名,删除文件或者目录,打开读取或者写文件,设置文件权限等操作。这对于运行在hadoop集群中的应用程序来说是挺棒的,但是,也有许多外部的应用程序需要操作HDFS的情况,怎么办?如果解决这种问题呢?Hortonworks 开发了一些额外的API来支持这些基于标准REST功能的需求。转载 2014-08-25 22:29:52 · 1076 阅读 · 0 评论 -
国内第一篇详细讲解hadoop2的automatic HA+Federation+Yarn配置的教程
前言 hadoop是分布式系统,运行在linux之上,配置起来相对复杂。对于hadoop1,很多同学就因为不能搭建正确的运行环境,导致学习兴趣锐减。不过,我有免费的学习视频下载,请点击这里。 hadoop2出来后,解决了hadoop1的几个固有缺陷,比如单点故障、资源利用率低、支持作业类型少等问题,结构发生了很大变化,是hadoop未来使用的一个趋势。当然,配置也更加复杂转载 2014-08-21 14:27:39 · 971 阅读 · 0 评论 -
[MapReduce] 如何向map和reduce脚本传递参数,加载文件和目录
本文主要讲解三个问题: 1 使用Java编写MapReduce程序时,如何向map、reduce函数传递参数。 2 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map、reduce脚本传递参数。 3 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何转载 2014-04-28 21:30:03 · 7076 阅读 · 0 评论 -
hadoop集群配置机架感知
自己搭建的hadoop集群一般默认不具备机架感知能力,为了提高hadoop集群的网络性能,我们常常需要配置机架感知。下面是以下步骤:一、修改配置文件core-site.xml,添加配置属性: topology.script.file.name/home/r203/hadoop-0.20.2/rackaware.py 二、编写自己的脚本rackaware.py:转载 2014-05-15 13:26:41 · 1105 阅读 · 0 评论 -
HDFS 的Trash回收站功能的配置、使用
文件的删除和恢复 和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期,也就是当系统回收站中的文件/目录在一段时间之后没有被用户回复的话,HDFS就会自动的把这个文件/目录彻底删除,之后,用户就永远也找不回这个文件/目录了。在HDFS内部的具体实现就转载 2014-05-15 13:26:06 · 1335 阅读 · 0 评论 -
HDFS中文件的压缩与解压
文件的压缩有两大好处:1、可以减少存储文件所需要的磁盘空间;2、可以加速数据在网络和磁盘上的传输。尤其是在处理大数据时,这两大好处是相当重要的。 下面是一个使用gzip工具压缩文件的例子。将文件/user/hadoop/aa.txt进行压缩,压缩后为/user/hadoop/text.gz转载 2014-04-21 17:10:37 · 6083 阅读 · 1 评论 -
hadoop使用lzo压缩文件笔记 (CDH3u1)
LZO性能 编译LZO下载: http://www.oberhumer.com/opensource/lzo/download/ wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz 安装:tar -zxf lzo-2.06.转载 2014-05-06 14:37:51 · 1403 阅读 · 0 评论 -
MapReduce的自制Writable分组输出及组内排序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://computerdragon.blog.51cto.com/6235984/1287721问题描述:输入文件格式如下:name1 2name3 4name1 6name1 1name3 3转载 2014-05-06 14:26:22 · 809 阅读 · 0 评论 -
Mapreduce中的RCFile输出RCFileOutputFormat实现及其应用
自定义实现RCFileOutputFormat.java 1.import java.io.IOException; 2. 3.import org.apache.Hadoop.conf.Configuration; 4.import org.apache.hadoop.fs.FileSystem; 5.import org.apache.hadoop.fs.P转载 2014-04-21 10:43:02 · 1127 阅读 · 0 评论 -
如何使用Hadoop的MultipleOutputs进行多文件输出
有时候,我们使用Hadoop处理数据时,在Reduce阶段,我们可能想对每一个输出的key进行单独输出一个目录或文件,这样方便数据分析,比如根据某个时间段对日志文件进行时间段归类等等。这时候我们就可以使用MultipleOutputs类,来搞定这件事, 下面,先来看下散仙的测试数据: Java代码 中国;我们 美国;他们 中国;123 中转载 2014-05-06 14:01:57 · 1600 阅读 · 0 评论 -
hadoop作业调优参数整理及原理
1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的 部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存 buffer(MapOutputBuf转载 2013-08-09 15:13:41 · 590 阅读 · 0 评论 -
MapReduce Join联结实现
一、背景早在8月份的时候,我就做了一些MR的Join查询,但是发现回北京之后,2个月不用,居然有点生疏,所以今天早上又花时间好好看了一下,顺便写下这个文档,以供以后查阅。二、环境JDK 1.6、Linux操作系统、hadoop0.20.2三、资料数据在做这个Join查询的时候,必然涉及数据,我这里设计了2张表,分别较data.txt和info.txt,字段之间以\t划分。d转载 2013-08-09 15:06:50 · 701 阅读 · 0 评论 -
在Hadoop中使用MRUnit进行单元测试
本文地址:博客园 逖靖寒 http://gpcuster.cnblogs.com前提1. 了解JUnit4.x的使用。2. 了解Mock的概念在单元测试中的应用。3. 了解Hadoop中MapReduce的编程模型。如果您对Junit和Mock不了解,可以先阅读[翻译]Unit testing with JUnit 4.x and EasyMock in Eclipse -转载 2013-08-08 15:36:05 · 1066 阅读 · 0 评论 -
Hadoop源码 – ipc.Server
1、前言昨天分析了ipc包下的RPC、Client类,今天来分析下ipc.Server。Server类因为是Hadoop自己使用,所以代码结构以及流程都很清晰,可以清楚的看到实例化、停止、运行等过程。2、Server类结构上面是Server的五个内部类,分别介绍一下:1)Call用以存储客户端发来的请求,这个请求会放入一个BlockQueue转载 2013-04-16 18:15:09 · 962 阅读 · 0 评论 -
Hadoop ssh配置设置
一. 配置机器名 配置/etc/hosts和/etc/sysconfig/network注意:NameNode的hosts文件必须有其slaves指定的所有节点的机器名二. ssh设置 (hadoop中需要在namenode 和 datanode 中直接连接集群内的机器,需要配置ssh)NameNode节点运行ssh-keygen -t dsa -P '' -f ~/.原创 2013-01-21 16:51:01 · 923 阅读 · 0 评论 -
hadoop hdfs 上传下载文件
上传文件:package uploadfile;import java.io.*;import java.net.URI;import java.util.Date;import org.apache.hadoop.fs.*;import org.apache.hadoop.io.IOUtils;import org.apache.hadoop.conf.Con原创 2013-04-22 11:02:40 · 2088 阅读 · 1 评论 -
Hadoop中自定义计数器
一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、最近写MR的代码,总在想统计一些错误的数据出现的次数,发现如果都写在reduce的输出里太难看了,所以想找办法专门输出一些统计数字。2、翻看《hadoop权威指南》第8章第1节的时候发现能够自定义计数器,但都是基于0.19版本写的,好多函数都不对,改动相对较大。3、基于上面2个理由,写个文档转载 2013-04-22 11:01:02 · 599 阅读 · 0 评论 -
HDFS文件操作命令
Hadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。并且支持通配符,如*。1. 查看文件列表查看hdfs中/user/admin/hdfs目录下的文件。a. 进入HADOOP_HOME目录。b. 执行sh bin/hadoop fs -ls /user/admin/hdfs查看hdfs中/user/admin/hdfs目录下的所有文件(包转载 2013-03-22 15:16:44 · 977 阅读 · 0 评论 -
Hadoop基于Shell命令与底层Unix操作系统的交互
在阅读Hadoop源代码过程中,在org.apache.hadoop.security.UnixUserGroupInformation类中,需要获取到Unix系统的用户名和所属组的信息,就需要通过执行Shell命令得到相应的结果,这里,通过阅读Hadoop项目org.apache.hadoop.util包、org.apache.hadoop.fs.shell包、org.apache.hadoop转载 2013-03-20 16:50:31 · 1061 阅读 · 0 评论 -
hadoop启动和运行中的error总结和处理方法
错误一:2010-11-09 16:59:07,307 INFO org.apache.hadoop.ipc.Server: Error register getProtocolVersionjava.lang.IllegalArgumentException: Duplicate metricsName:getProtocolVersion at org.apach转载 2013-04-02 10:15:16 · 1898 阅读 · 1 评论 -
hadoop SecondaryNameNode和NameNode
1.概述光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程。其实不是。snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中 ,要配置好转载 2013-04-02 10:34:44 · 688 阅读 · 0 评论 -
Hadoop Job Tuning
Hadoop平台已经成为了大多数公司的分布式数据处理平台,随着数据规模的越来越大,对集群的压力也越来越大,集群的每个节点负担自然就会加重,而且集群内部的网络带宽有限,数据交换吞吐量也在面临考验,由此引发了人们对大规模数据处理进行优化的思考。本文仅从实践经验出发,针对Hadoop Job优化提出了一些观点,不包含HDFS的优化。Job Tracker Related严格来说,转载 2013-03-31 16:16:17 · 759 阅读 · 0 评论 -
Hadoop 性能调优 重要参数设置技巧
这一两个月在做mapreduce的性能调优,有些心得,还是要记下来的,以郷后人~这里主要涉及的参数包括:HDFS:dfs.block.sizeMapredure:io.sort.mbio.sort.spill.percentmapred.local.dirmapred.map.tasks & mapred.tasktracker.map.tasks.maximummapred.re转载 2013-03-31 12:12:11 · 1734 阅读 · 1 评论