![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MapReduce
文章平均质量分 56
dataee
解决方案咨询
大数据处理
系统架构
展开
-
Hadoop的MR中获取JobTracker配置
需求:在执行MR的时候需要获得JobTracker的配置实现:通过Configuration来获取hadoop的所有配置相关的信息,配置文件以key-value的形式存在,如获取JobTracker配置:String jobTracker = context.getConfiguration() .get("mapred.job.tracker");log.info...2014-10-21 15:39:07 · 804 阅读 · 0 评论 -
Hadoop之BloomFilter
BloomFilter概述:目的是检索元素是否在某个集合中,基于hash,速度比较快,不需要存储所有的元素,只需要按照某种方式存储hash值即可,因此比较节约内存,因此可以常驻内存加快查找速度。同时利用多个hash来解决hash冲突问题我们假定集合元素为一个列表,我们可以用一个bit列表来存储此元素是否存在,如下所示: 存在为1不存在为0,不过由于hash很容易冲突,那么可以基于多...2014-01-16 18:58:16 · 142 阅读 · 0 评论 -
HDFS Federation综述
HDFS Federation提出的背景:1.namenode单点且元数据受限于namenode的内存,且namenode没有办法水平扩展2.不支持多租户公用一个hdfs解决的问题:1.多个namenode尽管他们之间是相互独立,这样就水平扩展了namenode,使得元数据的规模不受限制2.每个namenode与所有的datanode交互这样就形成了读写负载3.每个nam...2014-01-07 18:59:48 · 144 阅读 · 0 评论 -
Hadoop获取文件的元数据信息
需求:需要获取hdfs文件的元数据信息,包括复制个数,是否为文件等实现:基于FileStatus,代码如下:String filePath = "/hadoop/yourfile";Configuration configuration = new Configuration();FileSystem hdfs = FileSystem.get(configuration...原创 2013-12-30 18:51:55 · 999 阅读 · 0 评论 -
Hadoop以某目录下的所有目录作为input源方式
需求:hadoop执行mr的时候以时间为名称在某固定目录下生成数据文件,比如日志,那么在对此做分析的时候需要把此目录下的所有目录作为input数据源来操作。实现:构建Path[]来作为数据源核心代码:Path inPath = new Path("/hadoop/bizlog/");FileStatus[] status = hdfs.listStatus(inPath);...2013-12-27 11:08:40 · 484 阅读 · 0 评论 -
Hadoop中map reduce和client共享数据源的方式
需求:hadoop执行mr job的时候需要在map reduce 以及client三处相互共享数据比如在map某阶段设置一个标记位让reduce知道。方案:1.由于Configuration在client提交之后修改就无效了,因此不能基于Configuration来实现,那么可以通过三份数据源来实习比如db file等2.基于hdfs实现:基于hdfs写文件实现,核心...2013-12-27 11:03:24 · 194 阅读 · 0 评论 -
DataNode: Exception in BPOfferService for Block pool BP解决方法
问题描述:hadoop启动hdfs的时候namenode和datanode进程都存在,但是感觉不到datanode的存在,也就是Live Nodes和Dead Nodes 都是0,异常信息:datanode.DataNode: Exception in BPOfferService for Block pool BP解决方式:清空:hadoop.tmp.dir ...2013-12-10 16:48:07 · 533 阅读 · 0 评论 -
扩展词库构建设计方案
背景:我们可以看到蓝天和白云几乎是同时出现的,那么他们的关联就比较强,这样我们就认为蓝天是白云的扩展词,这样在做文本计算的时候可以强关联替换,类似同义词一样,来弥补文本挖掘的不足。 技术背景:基于Hadoop的MR 分析:1.基于常用文本进行切词从而组建扩展词;2.基于tf计算的时候要考虑词频的影响;3.扩展词库是否需要考虑支持度和置信度;4.约定每个文本...2013-07-08 16:32:42 · 433 阅读 · 0 评论 -
[YARN]Apache Hadoop 2.2.0YARN技术架构[翻译]
YARN架构MapReduce在Hadoop0.23的时候做了很大的改动,我们称之为MRv2或者YARN。MRv2的主要观点是把JobTracker,资源管理,任务调度执行功能拆分成几个独立的进程。也就是说有一个全局的RM和AM,一个应用程序是一个独立的job或者一组job。ResourceManager ,每个从节点,NodeManager 组成了一个数据计算框架,Resource...2013-11-28 17:47:16 · 75 阅读 · 0 评论 -
[MapReduce]Apache Hadoop 2.2.0MapReduce1.x向2.x迁移[翻译]
介绍此文档为用户把mr应用从1.x迁移到2.x上提供说明。在hadoop的2.x中我们引入了一个资源管理器,一个分布式应用的管理框架,同时MRv2仍然是一个纯净的分布式计算框架。总的来讲,以前的MR应用(MRv1)仍然支持不需要做任何修改。因此MRv2仍然大部分支持MRv1的应用,不过仍然需要代码改进和重构,一些api将被不推荐使用。余下部分将会讨论MRv2的向后兼容能力。二...2013-11-28 16:29:39 · 84 阅读 · 0 评论 -
[综合]Apache Hadoop 2.2.0文件系统shell(二)[翻译]
cp用法:hdfs dfs -cp [-f] URI [URI ...] <dest>从源文件拷贝到目标文件,支持多源文件操作不过目标需要是目录。-f选项如果目标存在就会覆盖。如:hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2hdfs dfs -cp /user/hadoop/file1 /user/hadoo...2013-11-27 19:37:57 · 83 阅读 · 0 评论 -
[综合]Apache Hadoop 2.2.0文件系统shell(一)[翻译]
概述文件系统shell包括各种跟shell类似的命令来跟hdfs交互,同时也支持其他的hadoop支持的文件系统如:本地FS, HFTP FS, S3 FS等,shell命令调用方式如下: bin/hadoop fs <args>所有的命令文件路径都作为参数传入,文件路径的格式如 scheme://authority/path。对于hdfs而言scheme为hdfs,...2013-11-26 22:33:13 · 79 阅读 · 0 评论 -
Hadoop之InputFormat
版本:2.2版描述:InputFormat是为了读取的时候设置的输入格式,比如我们如果打算在MR的时候读文件那么我们就需要知道文件的路径以及每次mapper多少,InputFormat正是基于这个需求提出来的,也就是定义读取规则。用途:1.怎么读2.从那读首先看下InputFormat抽象类的定义public abstract List<Inpu...2014-01-17 16:16:47 · 61 阅读 · 0 评论 -
hive安装部署之单用户模式
原料:1.hive-0.12.0-cdh5.0.02.hadoop集群已经安装完成3.系统用户为amba其他配置环境信息:HIVE_HOME=/home/amba/hive-0.12.0-cdh5.0.0HADOOP_HOME=/home/amba/hadoop-2.3.0-cdh5.0.0JAVA_HOME=/home/amba/jdk1.7.0_51安装部署:...2014-06-06 17:43:00 · 112 阅读 · 0 评论 -
yarn下的hdfs和mr性能调优参数一览表
mr核心的几个参数:conf/mapred-site.xml:mapreduce.task.io.sort.mb任务内部排序缓冲区大小默认100mmapreduce.map.sort.spill.percentMap阶段溢写文件的阈值(排序缓冲区大小的百分比)默认0.8mapreduce.reduce.shuffle.parallelcopiesReduce Task...2014-06-13 16:10:00 · 264 阅读 · 0 评论 -
Hadoop之SafeModeException问题解决
描述:Hadoop执行job的时候抛出SafeModeException,详情如下:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot delete /benchmarks/TestDFSIO. Name node is in sa...2014-04-16 10:05:49 · 866 阅读 · 0 评论 -
Hadoop之RandomTextWriter使用
作用:RandomTextWriter是为了mock数据集的,做压测等,MRv1和MRv2的参数值不一样,不过其参数标示含义一样,我们以MRv2来做说明:产生100G的数据:bin/hadoop jar share/hadoop/mapreduce2/hadoop-mapreduce-examples-xx.jar randomtextwriter -Dmapreduce.rand...2014-04-15 17:39:30 · 735 阅读 · 1 评论 -
Hadoop之RandomTextWriter说明
需求:需要mock一批数据,基于数据做测试或者分析,RandomTextWriter可以满足需求,不过MRv1和MRv2的参数不是很一致。详述:MRv1:<config> <property> <name>test.randomtextwrite.min_words_key</name> &...2014-04-15 17:31:20 · 677 阅读 · 0 评论 -
Hadoop之mrbench
需求:需要测试机器mr的执行性能,那么可以通过mrbench进行测试语法: bin/hadoop jar share/hadoop/mapreduceX/hadoop-test-XXX.jar mrbench[-baseDir <base DFS path for output/input, default is /benchmarks/MRBench>][-...2014-04-14 18:58:31 · 691 阅读 · 0 评论 -
Hadoop之TestDFSIO
概述:TestDFSIO为测试HDFS的IO性能,通过MR进行并发读写并做结果的统计。主要涉及,读,随机读,写,追加写,清空测试环境使用:清空:bin/hadoop jar share/hadoop/mapreduceX/hadoop-test-XXX.jar TestDFSIO -clean 写:bin/hadoop jar share/hadoop/mapreduc...2014-04-13 23:05:39 · 3119 阅读 · 0 评论 -
Hadoop之YARN安装部署
版本信息:Hadoop 2.3.0-cdh5.0.0节点分布:NameNode:compute-50-04 SecondaryNameNode:compute-50-04 ResourceManager :compute-50-03 NodeManager :compute-28-16compute-28-17compute-50-00compute-...2014-08-21 15:15:44 · 359 阅读 · 0 评论 -
Hadoop的MR读取外部资源的方案
背景:Hadoop在执行MR job的时候有时候需要访问一些资源,比如配置,共享数据文件等,那么实现的方案有如下几种:第一种:基于三方数据源1.存储在sql或者nosql(包括自身的hdfs)中然后在job的m或者r时根据需要读取相应的资源2.存储在某网络处,基于tcp方式在需要的时候获取第二种通过自身机制1.org.apache.hadoop.conf.Configur...2013-09-16 10:24:05 · 177 阅读 · 0 评论 -
Yarn下的YarnChild启动个数决定参数
Yarn下的mapper和reducer并发执行个数有什么决定的呢?由调度的资源决定的,也就是说启动的YarnChild个数多少取决于资源的分配和free的资源量参数说明:conf/yarn-site.xmlyarn.nodemanager.resource.memory-mbNodeManager总的可用物理内存,默认值是8192MB,一般情况下不要修改yarn.no...2014-06-23 17:41:38 · 398 阅读 · 0 评论 -
HDFS超租约异常(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
异常信息:org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on ***.lzo File does not exist. Holder ** does not have any open files. ...2014-06-19 17:35:25 · 944 阅读 · 0 评论 -
hive执行hql脚本
需求:基于hive做hdfs的统计分析涉及点:1.基于hive 执行hql脚本:hive -f /home/usr/my.sql2.基于hive执行hql命令:bin/hive -e "select count(1) from tab;"3.安静模式执行,不打印mrjob的进度:hive -S -f /home/usr/my.sql4.执行结果存入一个txt文...2014-06-18 14:55:05 · 1217 阅读 · 0 评论 -
NNBench执行过程和参数说明
需求:基于NNBench测namenode的负载测试参数说明:-operation -maps mapper数-reduces reducer数-startTime 开始时间-blockSize block size-bytesToWrite 文件写入字节数单位为b-bytesPerChecksum 条件blockSize % bytesPerChecksu...2014-06-17 18:25:43 · 1745 阅读 · 0 评论 -
[综合]Apache Hadoop 2.2.0命令行参考手册[翻译]
概述所有的hadoop命令都是有 bin/hadoop调用执行的,执行hadoop脚本没有任何参数的时候他会输出所有命令的描述信息。用法:hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]hadoop有个输入选项解析框架可以利用在运行class的时候来解析参数COMMAND_OPTIO...2013-11-22 16:56:04 · 77 阅读 · 0 评论 -
Hadoop对输入路径的过滤问题解决方式
需求:数据格式如下:/data/input/news/old.dat/data/input/news/current.dat/data/input/news/20131001.txt....../data/input/news/20131030.txt/data/input/news/20131031.txt我们需要计算分析10月份的新闻,其他的暂时不计算,那么就...2013-11-22 15:26:12 · 253 阅读 · 0 评论 -
[综合]Apache Hadoop 2.2.0集群安装(2)[翻译]
NodeManager节点健康监控hadoop提供一个检测一个节点健康状态的机制,那就是管理员可以配置NodeManager去周期性执行一个脚本。管理员可以在这个脚本中做任何的状态监控从而决定此节点是否健康。如果某节点不健康了,那么他们会有一个标准的错误输出,NodeManager的脚本周期性检测输出,如果节点输出中包含了ERROR字符串,那么此节点会被上报为unhealthy ,并且此...2013-11-21 16:14:01 · 104 阅读 · 0 评论 -
Hadoop的failed to report status for 600 seconds. Killing!解决方案
Hadoop在执行MR的时候出现了自动kill任务的状况,原因是600秒状态响应超时,信息如下:failed to report status for 600 seconds. Killing!解决办法:需要在MR的时候告知你的状态信息,代码如下:context.progress(); ...2013-05-06 19:00:12 · 111 阅读 · 0 评论 -
AccessControlException: Can't continue with getBlockLocalPathInfo()解决方案
Hadoop的Job执行MR的时候抛AccessControlException异常,详情如下:org.apache.hadoop.hdfs.DFSClient: Short circuit access failed org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.Acce...2013-05-03 15:25:33 · 279 阅读 · 0 评论 -
mahout之MinHash实现
MinHash可用于聚类或者计算相似度,详情概述参见"MinHash概述及举例"博客,此处阐述mahout的MinHash实现,mahout用minhash来聚类。涉及主要类: org.apache.mahout.clustering.minhash.MinHashDriverorg.apache.mahout.clustering.minhash.MinHashMapper...2013-05-03 11:37:11 · 147 阅读 · 0 评论 -
MR中Hbase的Scan使用技巧
Hadoop的MR运算中,Hbase可以作为输入数据源参与运算,其中作为HTable的迭代器Scan有几个使用技巧涉及的方法如下:public void setBatch(int batch)public void setCaching(int caching)public void setCacheBlocks(boolean cacheBlocks)public vo...2013-04-25 17:44:32 · 448 阅读 · 0 评论 -
Hadoop常用的OutputFormat和InputFormat
InputFormat常用列表:org.apache.hadoop.mapreduce.lib.input.TextInputFormat;org.apache.hadoop.mapreduce.lib.input.SequenceFileAsBinaryInputFormat;org.apache.hadoop.mapreduce.lib.input.SequenceFileAsT...2013-04-11 16:30:34 · 83 阅读 · 0 评论 -
Hadoop中Writable和WritableComparable
Hadoop的key和value的传递序列化需要涉及两个重要的接口Writable和WritableComparableWritable:void write(DataOutput out) throws IOException;void readFields(DataInput in) throws IOException; 也就是读数据和写数据的方式WritableCom...2013-04-10 18:43:32 · 103 阅读 · 0 评论 -
Hadoop的OutputFormat和InputFormat
Hadoop用于数据的输入和输出,需要指定OutputFormat和InputFormat,这两个类的目的是为了指明读数据和写数据相关的包括格式等信息。InputFormat: public abstract List<InputSplit> getSplits(JobContext context ...2013-04-10 14:34:52 · 96 阅读 · 0 评论 -
Hadoop操作Hbase时自动kill任务相关说明
背景: 用Hadoop基于Hbase进行数据分析的时候,发现其会自动kill任务,但是job能够正常执行,结果也正确,只是Hbase的压力比较大。原因: Hadoop在执行task的时候采用预先计算的方法来加快整个处理过程。具体的就是当所有task都开始运行之后,Job Tracker会统计所有任务的平均进度,如果某个task所在的task node机器配置比较低...2013-04-03 11:38:12 · 601 阅读 · 0 评论 -
Hbase获取前几条记录
Hbase中hbse shell操作如下:scan 'Test',{LIMIT=>10}在java的api中可以通过过滤器来实现操,作如下:Configuration HBASE_CONFIG = new Configuration();HBASE_CONFIG.set("hbase.zookeeper.quorum", "XX.XX.XX.XX");HBASE_CO...2013-03-31 15:58:51 · 9890 阅读 · 1 评论 -
利用MapReduce的方式往固定表mock测试数据
场景: mysql有压力测试,会利用压测工具,mock一大批数据,但是hbase没有提供相应的功能,此时我们可以自己写一个mock工具,以满足我们的测试需求。分析:我们看下Mapper的源码:public void run(Context context) throws IOException, InterruptedException { setup(conte...2013-03-07 16:59:10 · 147 阅读 · 0 评论 -
MapReduce一个Mapper读Hbase表并且写Hbase方案
场景: 在MapReduce操作Hbase的时候有时候不需要reduce,只需要用Mapper的时候读A表,处理完之后写B表,也就是A表为输入表,B表为输出表。需求就是 A中的有一列E:E,把‘E:E’中为数字的数据保存到B表中。表说明: create A,'E' create B,'E'方案一:直接在mapper中打开B表,如果不是数字,那么直接...2013-03-07 14:48:24 · 266 阅读 · 0 评论