
Hadoop学习与使用
文章平均质量分 60
对hadoop的学习研究,及在工作中使用心得
架构师思考实践
大数据、实时计算、离线计算
展开
-
Hadoop源码分析---TextInputFormat、FileInputFormat、LineRecordReader
作用:1、将输入切分成split,确定split大小,map个数。 由getSplits方法实现。 2、为mapper提供输入数据,key/value形式。getRecordReader方法核心算法:1、文件切分算作用:确定split个数。概念: globalSize: totalsize/numSplits ; minSize: InputSplit 最小值 配原创 2015-08-19 22:36:21 · 1745 阅读 · 0 评论 -
hadoop HDFS Federation
参考文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/Federation.html原创 2017-07-10 21:28:35 · 463 阅读 · 0 评论 -
Hadoop partitioner及自定义partitioner
一、hadoop partitioner所有partitioner都继承自抽象类Partitioner ,实现getPartition(KEY var1, VALUE var2, intvar3),hadoop自带的partitioner有:(1)TotalOrderPartitioner(2)KeyFieldBasedPartitioner(3)BinaryPartiti原创 2017-07-10 21:06:07 · 816 阅读 · 0 评论 -
hadoop2.7配置HA,使用zk和journal
本文使用前提:从noha到ha机器分配:nn1namenode,DFSZKFailoverControllernn2namenode,DFSZKFailoverControllerslave1datanode,zookeeper,journalnodeslave2datanode,zookeeper,journalnode原创 2015-08-29 13:14:46 · 4173 阅读 · 2 评论 -
hadoop异常之 reduce拉取数据失败 (error in shuffle in fetcher)
主要错误信息:Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#43解决办法:限制reduce的shuffle内存使用 hive:set mapreduce.reduce.shuffle.memory.li原创 2015-03-08 15:36:25 · 8907 阅读 · 1 评论 -
HDFS 读取、写入、遍历目录获取文件全路径、append
1、从HDFS中读取数据Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSystem.get(conf); FSDataInputStream fsin= fs.open(path ); BufferedReader br =null; Strin原创 2014-07-08 20:58:05 · 15187 阅读 · 0 评论 -
Java线程池管理及分布式Hadoop调度框架搭建
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发工程师却在这个上面吃了不少苦头。怎么做一套简便的线程开发模式框架让大家从单线程开发快速转入多线程开发,这确实是个比较难搞的工程。那具体什么是线程呢?首先看看进程是什么,进程就是系统中执行的一个程序,这个程序可以使用内存、处理器、文件系统等相关资源。例如转载 2014-04-16 22:55:14 · 948 阅读 · 0 评论 -
hadoop 作业调优参数整理及原理
1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的 部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存 buffer(MapOut转载 2014-04-14 11:46:39 · 873 阅读 · 0 评论 -
玩转Hadoop的几个小技巧
Hadoop添加节点的方法 自己实际添加节点过程:1. 先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝;2. 将新的datanode的host加到集群namenode及其他datanode中去;3. 将新的datanode的ip加到master的conf/slaves中;4. 重启cluster,在cluster中看到新的datanod转载 2013-12-05 12:27:04 · 1087 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法(转载)
1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-outAnswer:程序 里面需要打开多个文件 ,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。修改办法:修改2个文件。 /etc/security/limits.conf转载 2013-12-05 12:23:15 · 1199 阅读 · 0 评论 -
Hadoop Shell命令
FS Shell调用文件系统(FS)Shell命令应使用bin/hadoop fs 的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认sche转载 2013-12-05 12:21:22 · 775 阅读 · 0 评论 -
淘宝应对"双11"的技术架构分析
把这个帖子转过来吸收吸收双“11”最热门的话题是TB ,最近正好和阿里的一个朋友聊淘宝的技术架构,发现很多有意思的地方,分享一下他们的解析资料: 淘宝海量数据产品技术架构 数据产品的一个最大特点是数据的非实时写入,正因为如此,我们可以认为,在一定的时间段内,整个系统的数据是只读的。这为我们设计缓存奠定了非常重要的基础。 图1 淘宝海量数据产品转载 2013-11-23 21:43:51 · 1190 阅读 · 0 评论 -
Hdfs NameNode 启动优化
总结: NameNode启动时,从fsimage中加载目录树,同时合并edits和fsimage secondNameNode负责定时合并edits和fsimage原文:http://sid1211.iteye.com/blog/870142对于生产集群,含有上千万文件,每次启动时间将会长达几十分钟,缩小启动时间将大大提高生产力。所以对启动时的各转载 2013-11-14 19:23:06 · 1866 阅读 · 0 评论 -
最近跑hadoop遇到的一些问题
一、[#|2013-09-16T18:19:02.663+0800|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=23364;_ThreadName=Thread-2;|2013-09-1618:19:02,663 WARN DataStreamerExc原创 2013-09-22 18:29:53 · 2074 阅读 · 0 评论 -
Hadoop常用命令
启动Hadoop进入HADOOP_HOME目录。执行sh bin/start-all.sh关闭Hadoop进入HADOOP_HOME目录。执行sh bin/stop-all.sh 1、查看指定目录下内容hadoop dfs –ls [文件目录]eg: hadoop dfs –ls /user/wangkai.pt2、打开某个已存在文件转载 2013-09-10 22:09:01 · 752 阅读 · 0 评论 -
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
1、HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理转载 2013-07-19 15:04:51 · 916 阅读 · 0 评论 -
云计算学习笔记---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
1、Hadoop简介1、hadoop的诞生l Nutch和Lucene之父Doug Cutting在2006年完成Hadoop项目。l Hadoop并不是一个单词,它来源于Doug Cutting小儿子对所玩的小象玩具牙牙学语的称呼。就像是google也是由小孩子命名一样。l 后又经过5年的开发,hadoop在所有云计算系统是稳居第一。l Hadoo转载 2013-04-17 22:58:39 · 1007 阅读 · 0 评论 -
HDFS 写流程
待写,敬请期待原创 2017-07-10 21:30:02 · 499 阅读 · 0 评论 -
Hadoop MapReduce 修改输出文件名 MultipleOutputs
需求:修改mapreduce的输出文件名称 为自己想要的名字工具:MultipleOutputs默认文件名:part-r-xxx 或者000178_0修改后为: 自定义名字-r-xxx 后边的r-xxx还没有去掉主要流程:声明 multipleOutputs在setup方法中初始化在reduce方法中调用 public voidwrite(KEYOUT key, VALUEOUT value, String baseOutputPath)在cleanup放中close原创 2017-07-07 22:45:49 · 2516 阅读 · 0 评论 -
hadoop 无法查看job信息 8088无法访问
需要配置一些8088The http address of the RM web application.yarn.resourcemanager.webapp.address${yarn.resourcemanager.hostname}:8088原创 2015-09-12 23:24:33 · 11462 阅读 · 0 评论 -
hadoop 计算 pv uv
使用hadoop 进行页面的pv uv 计算不推荐的做法 将访问者的cookie放在hashmap中进行去重计算uv,因为当访问量大时,会将hashmap撑爆,报出java.lang.OutOfMemoryError: Java heap space推荐做法:使用textpair 将cookie作为second key 进行排序,在reduce中进行判断,如果上一个co原创 2015-01-18 10:44:21 · 3196 阅读 · 0 评论 -
hadoop 计数器
一、hadoop有很多自带的计数器,详细看过运行log的都会看到各种数据二、用户自定义计数器在开发中经常需要记录错误的数据条数,就可以用计数器来解决。1、定义:用一个枚举来定义一组计数器,枚举中的每个元素都是一个计数器在main类中定义enum RecordsCounter{ RIGHT_COUNTER, WRONG_COUNTER };2、使用原创 2014-10-28 22:42:41 · 1327 阅读 · 0 评论 -
Hadoop多目录输入,join,进入reduce,数据流分析
前言在做需求时,经常遇到多个目录,也就是多个维度进行join,这里分析一下,数据是怎么流动的。1、多目录输入使用MultipleInputs.addInputPath() 对多目录制定格式和map2、数据流分析map按行读入数据,需要对不同的输入目录,打上不同的标记(这个方法又叫reduce端连接),map在输出后会进行partition和sort,按照key进行排序,然后输原创 2014-06-28 19:00:12 · 1927 阅读 · 0 评论 -
hadoop 多目录输入,map到reduce如何排序
使用MultipleInputs.addInputPath 对多个路径输入现在假设有三个目录,并使用了三个mapper去处理,经过map处理后,输出的结果会根据key 进行join,如果使用TextPair,会根据第一个字段jion,第二个字段排序然后在作为reduce的输入,进行计算原创 2014-06-25 22:14:33 · 1738 阅读 · 0 评论 -
Hadoop 中 获取 输入文件名
旧API获取输入路径 String path=((FileSplit)reporter.getInputSplit()).getPath().toString();新API获取文件名InputSplit inputSplit = context.getInputSplit();String fileName = ((FileSplit) inputSplit)原创 2014-04-09 23:07:34 · 2513 阅读 · 0 评论 -
hadoop 处理不同的输入文件,文件关联
类型一: 一一对应file1:a 1b 2c 3file2:1 !2 @3 #file1和file2进行关联,想要的结果:a !b @3 #思路:1、标记不同输入文件2、将file1的key、value颠倒 ;file1和file2的key相同,file1的value做key,file2的value做v原创 2014-04-10 00:07:10 · 2033 阅读 · 0 评论 -
hadoop 输入乱码,非utf-8乱码
hadoop默认为utf-8格式,输入中文汉字时会乱码。解决办法,转为gbk:String line=new String(value.getBytes(),0,value.getLength(),"GBK");原创 2014-04-10 00:09:08 · 2417 阅读 · 0 评论 -
hadoop MapReduce运行异常:Unknown protocol to name node: org.apache.hadoop.mapred.JobSubmissionProtocol
描述:job 配置错误异常:14/03/26 22:23:27 ERROR security.UserGroupInformation: PriviledgedActionException as:allencause:org.apache.hadoop.ipc.RemoteException: java.io.IOException: Unknown protocol to na原创 2014-03-26 23:41:38 · 3466 阅读 · 0 评论 -
[hadoop异常] eclipse中运行mapreduce 异常 --java.lang.OutOfMemoryError: Java heap space
描述:内存溢出,堆不够用异常:14/03/26 23:11:36 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable14/03/26 23:11:36 WARN mapred.原创 2014-03-26 23:35:57 · 2600 阅读 · 0 评论 -
MapReduce运行异常-- org.apache.hadoop.mapred.FileAlreadyExistsException
描述: 输出文件已经存在异常:14/03/26 23:00:52 WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).14/03/26 23:00:52 INFO mapred.JobClien原创 2014-03-26 23:29:52 · 13778 阅读 · 0 评论 -
hadoop 数据排序
1、输入file1.txt238243423423435655file2.txt12324456785678102562399999999992、问题、思路问题:将上面两个文件,排序,结果要求:每行两个数 第一个是序号,第二个是数值思路:map阶段进行取词,reduce接受到原创 2014-03-26 23:22:27 · 2358 阅读 · 2 评论 -
Hadoop 使用 MapReduce 排序 思路、全局排序
本文主要讲对key的排序,主要利用hadoop的机制进行排序。1、Partitionpartition作用是将map的结果分发到多个Reduce上。当然多个reduce才能体现分布式的优势。2、思路由于每个partition内部是有序的,所以只要保证各partition间有序,即可保证全部有序。3、问题有了思路,如何定义partition的边界,这是个问题。解决办法:h原创 2014-03-23 23:09:17 · 2235 阅读 · 0 评论 -
hadoop wordcount 代码
写个wordcount,刚入门的同学可以参考一下。直接贴程序了package WordCount;import java.io.IOException;import java.util.Iterator;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org原创 2014-03-23 12:44:51 · 1889 阅读 · 0 评论 -
MapReduce API基本概念 序列化,Reporter参数,回调机制 ---《hadoop技术内幕》读书笔记
这些概念相信很多码农都了解,可以直接跳过。1、序列化概念:将结构化的对象转为字节流 ;目的是为了网络传输和持久化存储。相应的反序列化就是倒过来。在MR中作用:永久存储和进程间通信。实现Writable 接口 可以序列化;实现Comparable 接口可以对key对象排序。2、Reporter参数应用程序可以用Reporter来实现 progress(报原创 2014-03-10 22:02:04 · 1932 阅读 · 0 评论 -
MapReduce编程模型--接口体系结构--架构设计--《hadoop技术内幕》读书笔记
编程接口介于 用户程序层 和 MapReduce Runtime之间。又可以分为:工具层和编程接口层(java)工具层主要有:JobControl,chainMapper/ChainReducer 其他的提供多语言支持,这里不介绍了编程接口层: 就是开发程序时的要实现的接口:InputFormat , Mapper , Partitioner , Reducer ,Outpu原创 2014-03-09 22:33:41 · 1850 阅读 · 0 评论 -
JobConrol实现原理 ---《hadoop技术内幕》读书笔记
JobControl : 在实际场景中,作业可能比较复杂,相互之间存在依赖关系,这些作业构成有向图(DAG),jobControl可以实现作业间的调度关系。主要通过addDepending()方法来设置作业间的依赖关系。设计原理:JobControl由两个类组成:Job 和 Jobcontrol 。Job类 :封装了一个MR作业及其对应的依赖关系,主要负责监控各个依赖作业的运行状原创 2014-03-09 23:31:43 · 1801 阅读 · 4 评论 -
读书笔记--MapReduce 适用场景 及 常见应用
1、MR解决的问题的特点MR是应大数据的背景产生,其解决的问题的共性为:大问题可以被分解为许多子问题,且这些子问题相对独立,将这些子问题并行处理完后,大问题也就被解决。是用来分治、分解的思想。2、Google论文中提及的典型应用:URL访问率统计,分布式grep,分布式排序,倒序索引构建,Web连接图反转等。3、从书中看到的几个比较复杂的应用:(1)、TopK问题问题:在搜原创 2014-03-05 23:51:37 · 9169 阅读 · 0 评论 -
Hadoop常用命令
一、MR1、运行jar包nohup hadoop jar TestMR.jar test/hadoop/app/TestMR > mr_log &jar包名后面跟的是主类名2、杀死job hadoop job -kill job_id job_id去50030界面找二、HDFSHadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。原创 2014-02-10 16:54:17 · 2232 阅读 · 0 评论 -
查看hadoop管理页面,修改本地hosts,Browse the filesystem
问题:hadoop管理界面,ip:50070,中点击Browse the filesystem会出现网页无法访问,看地址栏,是集群中的主机名::50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/原因:浏览器找不到主机名对应的ip resolution:在本地hosts中配置ip和主机名的对应关系,hosts文件路径C:\Wi原创 2013-09-12 18:19:05 · 3015 阅读 · 0 评论 -
hadoop 提高hdfs删文件效率----hadoop删除文件流程解析
前言这段时间在用hdfs,由于要处理的文件比较多,要及时产出旧文件,但是发现hdfs的blocks数一直在上涨,经分析是hdfs写入的速度较快,而block回收较慢,所以分心了一下hadoop删文件的流程,并做了调优,希望对遇到此类问题的程序猿们有帮助。正文 经分析与查看源码发现,hdfs删除文件的流程是这样的:(1)java程序中的DFSClient调用delete函数,删原创 2013-10-26 23:32:47 · 6018 阅读 · 0 评论