![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie
文章平均质量分 73
tao_wei162
这个作者很懒,什么都没留下…
展开
-
在Map侧高效完成的join
看下如何在Map侧高效完成的join,因为在reduce侧进行join在shuffle阶段会消耗大量的时间,如果在Map端进行Join,那么就会节省大量的资源,当然,这也是有具体的应用场景的。 使用场景:一张表十分小、一张表很大。 用法:在提交作业的时候先将小表文件放到该作业的DistributedCache中,然后从DistributeCache中取出该小表进行join key / ...原创 2016-06-16 14:57:41 · 134 阅读 · 0 评论 -
Hadoop的Map侧join
写了关于Hadoop的Map侧join 和Reduce的join,今天我们就来在看另外一种比较中立的Join。 SemiJoin,一般称为半链接,其原理是在Map侧过滤掉了一些不需要join的数据,从而大大减少了reduce的shffule时间,因为我们知道,如果仅仅使用Reduce侧连接,那么如果一份数据中,存在大量的无效数据,而这些数据,在join中,并不需要,但是因为没有做过预处理,所以...原创 2016-06-16 14:57:59 · 126 阅读 · 0 评论 -
在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式
介绍了基于Hadoop的旧版API结合DataJoin工具类和MapReduce实现的侧连接,那么本次,散仙就来看下,如何在新版API(散仙的Hadoop是1.2版本,在2.x的hadoop版本里实现代码一样)中实现一个Reduce Side Join,在这之前,我们还是先来温故下Reduce侧连接的实现原理: 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的...原创 2016-06-16 14:59:28 · 126 阅读 · 0 评论 -
使用半链接的方式,来实现的表join
使用半链接的方式,来实现的表join,注意中间存储小表的key,是用HashSet实现的,也就是把数据存在内存里,在map侧,进行key过滤后,然后再Reduce侧,实现join,但如果数据量非常大的情况下,HashSet来存放海量的key可能就会出现OOM的情况,这时候,我们就可以采用另一种join方式,也就是今天散仙将要说的BloomFilter+Reduce Join的方式。 这两种方式...原创 2016-06-16 15:00:27 · 225 阅读 · 0 评论 -
Hadoop的MR作业支持链式处理
Hadoop的MR作业支持链式处理,类似在一个生产牛奶的流水线上,每一个阶段都有特定的任务要处理,比如提供牛奶盒,装入牛奶,封盒,打印出厂日期,等等,通过这样进一步的分工,从而提高了生产效率,那么在我们的Hadoop的MapReduce中也是如此,支持链式的处理方式,这些Mapper像Linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线,而这一点...原创 2016-06-16 15:00:47 · 182 阅读 · 0 评论 -
Elasticsearch、MongoDB和Hadoop比较
Elasticsearch、MongoDB和Hadoop比较IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个H...原创 2016-06-30 11:05:55 · 104 阅读 · 0 评论 -
使用Hadoop里面的MapReduce来处理海量数据
使用Hadoop里面的MapReduce来处理海量数据是非常简单方便的,但有时候我们的应用程序,往往需要多个MR作业,来计算结果,比如说一个最简单的使用MR提取海量搜索日志的TopN的问题,注意,这里面,其实涉及了两个MR作业,第一个是词频统计,第两个是排序求TopN,这显然是需要两个MapReduce作业来完成的。其他的还有,比如一些数据挖掘类的作业,常常需要迭代组合好几个作业才能完成,这类...原创 2016-07-11 19:07:33 · 595 阅读 · 0 评论 -
Elasticsearch、MongoDB和Hadoop比较
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配置完成很多同养的事...原创 2016-07-12 15:01:25 · 88 阅读 · 0 评论 -
spark,neo4j
Spark内存计算体现它可以将RDD常驻内存(内存不足也会溢写到磁盘的),这样可以减少磁盘IO。缺点的话我觉得在于1.资源调度方面,Spark和Hadoop不同,执行时采用的是多线程模式,Hadoop是多进程,多线程模式会减少启动时间,但也带来了无法细粒度资源分配的问题。但本质上讲其实这也不能算是Spark的缺点,只不过是tradeoff之后的结果而已。2.其实Spark这种利用内存计算的思想...原创 2016-07-18 14:37:19 · 957 阅读 · 0 评论 -
Elasticsearch、MongoDB和Hadoop比较
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配置完成很多同养的事情...原创 2016-07-20 10:31:34 · 112 阅读 · 0 评论 -
Ganglia是一款非常优秀的开源的监控框架
Ganglia是一款非常优秀的开源的监控框架,下面引自百科的解释: Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性...原创 2016-08-19 18:20:17 · 519 阅读 · 0 评论 -
Ganglia的安装
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。 Ganglia的安装,可以使用yum和rp...原创 2016-08-19 18:35:51 · 93 阅读 · 0 评论 -
Pig和Hive有什么不同
[size=xx-small][/size]Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。 Hive在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes...原创 2016-09-07 11:45:06 · 181 阅读 · 0 评论 -
使用32位的hadoop运行在64位的系统上,将会出现一些库不兼容的异常
hadoop2.x在apache官网直接下载的并没有64位直接能用的版本,如果我们想在64位系统使用,那么就需要重新编译hadoop,否则直接使用32位的hadoop运行在64位的系统上,将会出现一些库不兼容的异常。如下图所示,最直接的一个异常: 在这之前,散仙先用一个表格来描述下散仙的编译的环境的状况:序号描述备注1centos6.5系统64位linux环...原创 2016-09-11 00:57:54 · 312 阅读 · 0 评论 -
以表格的形式描述下伪分布式
下面,以表格的形式描述下伪分布式安装 系统环境如下: 序号名称描述1系统环境Centos6.52JAVA环境JDK1.73Haoop版本hadoop2.2.0安装步骤如下:序号步骤1解压hadoop,并配置环境变量2使用which hadoop命令,测试是否成功3配置core-site.xml...原创 2016-09-11 00:58:37 · 104 阅读 · 0 评论 -
如何在Centos6.5下,部署完全分布式集群
我们来看下,如何在Centos6.5下,部署完全分布式集群。 下面先来看下具体的系统环境 序号名称描述1系统环境Centos6.5最好在linux上部署2Hadoop版本Hadoop2.2.0Hadoop2.x中的第一个稳定版本3JAVA环境JDK1.764位(build 1.7.0_25-b15)部署情况序号IP地址节点名...原创 2016-09-18 01:15:30 · 236 阅读 · 0 评论 -
eclipse调试
已经讲了Hadoop的单机伪分布的部署,本篇,散仙就说下,如何eclipse中调试hadoop2.2.0,如果你使用的还是hadoop1.x的版本,那么,也没事,散仙在以前的博客里,也写过eclipse调试1.x的hadoop程序,两者最大的不同之处在于使用的eclipse插件不同,hadoop2.x与hadoop1.x的API,不太一致,所以插件也不一样,我们只需要使用分别对应的插件即可. ...原创 2016-09-18 01:17:56 · 91 阅读 · 0 评论 -
hadoop特点
Hadoop的优缺点介绍:(一) 优点:(一)高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖;(二)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。(三)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。(四)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将...原创 2016-09-19 14:38:23 · 1268 阅读 · 0 评论 -
Spark是什么
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark 是一种与 Hadoop 相似的开源...原创 2016-09-19 14:39:04 · 118 阅读 · 0 评论 -
流式大数据处理的三种框架:Storm,Spark和Samza
许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行。一个拓扑中包括s...原创 2016-09-27 18:02:15 · 110 阅读 · 0 评论 -
Apache Flink现在在大数据处理方面
我们是否还需要另外一个新的数据处理引擎?当我第一次听到flink的时候这是我是非常怀疑的。在大数据领域,现在已经不缺少数据处理框架了,但是没有一个框架能够完全满足不同的处理需求。自从Apache spark出现后,貌似已经成为当今把大部分的问题解决得最好的框架了,所以我对另外一款解决类似问题的框架持有很强烈的怀疑态度。不过因为好奇,我花费了数个星期在尝试了解flink。一开始仔细看了flink...原创 2016-09-29 14:25:17 · 698 阅读 · 0 评论 -
十大开源的大数据技术
大数据已然成为当今最热门的技术之一,正呈爆炸式增长。每天来自全球的新项目如雨后春笋般涌现。幸运地是,开源让越来越多的项目可以直接采用大数据技术,下面就来盘点最受欢迎的十大开源的大数据技术。 1.Hadoop——高效、可靠、可伸缩,能够为你的数据存储项目提供所需的YARN、HDFS和基础架构,并且运行主要的大数据服务和应用程序。 2.Spark——使用简单、支持所有重要的大数据语言(...原创 2016-09-29 14:28:34 · 163 阅读 · 0 评论 -
Thrift的工作原理
[align=center;] 代码3.1[/align] 图3.12.Thrift的RPC调用过程 代码3.2 图3.2 thrift的RPC调用过程[b] (1) [/b]通过IDL定义一个接口的thrift文件,然后通过thrift的多语言编译功能,将接口定义的thrift文件翻译成对应的语言版本的接口文件;[b] ...原创 2016-10-10 13:36:00 · 145 阅读 · 0 评论 -
MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce...原创 2016-10-12 10:33:23 · 856 阅读 · 0 评论 -
在eclipse中通过local的模式可以正确的调试hadoop2.2
已经在eclipse中通过local的模式可以正确的调试hadoop2.2,那么本篇,散仙将重点叙述下,如何在eclipse中,真真正正的提交作业到yarn上,开启分布式模式的调试,通过在eclipse上调试,hadoop的MapReduce程序,可以使我们学习Hadoop更加容易,清晰。 如果没有看过,散仙的如何在eclipse中使用local模式调试hadoop的文章,可以先看下上篇,熟悉...原创 2016-10-18 10:48:30 · 212 阅读 · 0 评论 -
HDFS 常用的文件操作命令
HDFS 常用的文件操作命令 1.-cat 使用方法:hadoop fs -cat URI 说明:将路径指定的文件输出到屏幕 示例: hadoop fs -cat hdfs://host1:port1/file hadoop fs -cat file:///file3 2.-copyFromLocal 使用方法:hadoop fs -copyFromLocal <localsrc>...原创 2016-10-18 10:51:12 · 221 阅读 · 0 评论 -
使用Hive如何和Hbase集成
主要讲的是使用Hive如何和Hbase集成,Hbase和Hive的底层存储都在HDFS上,都是hadoop生态系统中的重要一员,所以他们之间有着很亲密的联系,可以相互转换与操作。 hadoop,hbase和hive的搭建就不重复说了,不会的朋友,可以看散仙前面的博客,下面直接进入重点,关于hive集成hbase这一块,网上资料不算多,有的版本比较旧,散仙这里使用的版本是hive0.12和h...原创 2016-10-18 10:51:27 · 144 阅读 · 0 评论 -
把eclipse中的hadoop项目,换了一个工作空间,再次启动任务时
把eclipse中的hadoop项目,换了一个工作空间,再次启动任务时,发现报如下异常:Java代码 java.io.IOException: No FileSystem for scheme: hdfs at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2...原创 2016-10-18 10:51:54 · 129 阅读 · 0 评论 -
在Win上提交hadoop集群的作业
一直以来,都以为,想在Win上提交hadoop集群的作业,必须得在eclipse上安装hadoop-eclipse-plugin插件才可以提交,但最近与同事交流,发现其实,不一定必须安装hadoop的eclipse插件,才能提交。今天试了一把,发现果然可以不用安装插件也可以正确提交作业到集群上,故在此总结一下。 既然,无须安装hadoop的eclipse插件,就能提交hadoop作业,那为毛,...原创 2016-10-18 10:53:43 · 137 阅读 · 0 评论 -
自己搭建一套hadoop的运行环境
对于使用hadoop进行开发的朋友们,可能要自己搭建一套hadoop的运行环境,如果不是经常变动的还好,如果,经常搭建而且还是多台机器,那么我们一个个的安装,就显得有点捉襟见肘了,这也是这个脚本诞生的目的,主要帮助我们在快速搭建hadoop集群,以及安装底层的配置依赖环境如JDK,Maven,Ant等,在安装hadoop前,还有一些关于linux基础的工作需要做,包括SSH无密码登陆和批量用户...原创 2016-10-20 15:01:40 · 319 阅读 · 0 评论 -
本次装的hadoop版本是hadoop1.2的版本
要在沙箱的环境装一个hadoop的集群,用来建索引所需,装hadoop已经没啥难的了,后面,会把重要的配置信息,贴出来,本次装的hadoop版本是hadoop1.2的版本,如果不知道怎么装的,可以参考这篇文章,安装的具体步骤,散仙在这里不在重述,重点在于hadoop-nd,hadoop-dd,tmp目录的配置,下面是配置文件的示例: core-site.xml的配置:Java代码 ...原创 2016-10-20 15:01:56 · 111 阅读 · 0 评论 -
namenode的log时,散仙发现有如下的警告信息
刚装完的hadoop集群,在查看namenode的log时,发现有如下的警告信息:Java代码 2014-10-30 16:49:18,340 INFO org.apache.hadoop.hdfs.StateChange: STATE* Leaving safe mode after 2 secs 2014-10-30 16:49:18,340 INFO or...原创 2016-10-24 18:51:09 · 300 阅读 · 0 评论 -
用过eclipse直接向hadoop提交MR作业
用过eclipse直接向hadoop提交MR作业,也提交成功过,这次换了集群环境,提交作业时发现几个异常,特此整理一下,以防后面再出现类似问题。 主要的问题的有2个: 第一个问题,在win7上的eclipse向hadoop提交作业时,没有权限,异常信息如下: Java代码 Caused by: org.apache.hadoop.ipc.RemoteException...原创 2016-10-24 18:51:25 · 130 阅读 · 0 评论 -
在执行bin/hadoop checknative 命令时
刚装的hadoop2.2的集群,在执行bin/hadoop checknative 命令时,出现如下警告: bizip2的的本地压缩支持无效,整个编译过程,并没有出现任何错误,或异常,而且去cenots下的lib64位目录下,查看libbz2的so文件,发现也正常Java代码 [root@ph2 hadoop-2.2.0]# ll /lib64/libb* lr...原创 2016-10-24 19:01:31 · 2006 阅读 · 0 评论 -
MapReduce作业
MapReduce作业,目的是读数据库里面多个表的数据,然后在JAVA中根据具体的业务情况做过滤,并把符合数据的结果写入到HDFS上,在Eclipse里面提交作业进行调试的时候,发现在Reduce阶段,总是抛出Java heap space的异常,这异常明显,就是堆内存溢出造成的,然后散仙仔细看了下业务块的代码,在Reduce里读数据库的时候,有几个表的返回数据量比较大约有50万左右,因为具体...原创 2016-10-24 19:04:18 · 211 阅读 · 0 评论 -
去连接Linux系统上的HDFS
在Myeclipse构建的Java的Web项目里使用hadoop2.5的jar包,去连接Linux系统上的HDFS,做一个数据展示的工程,发生了一个莫名其妙的异常,信息如下:Java代码 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.MapMaker....原创 2016-10-25 10:10:40 · 644 阅读 · 0 评论 -
在eclipse中远程连接并读取数据
如何在eclipse中远程连接并读取数据,在网上搜的代码,大部分说的都比较复杂,其实如果只想连接HDFS读取一些数据话,这个是非常简单的,如果还要在Eclipse上远程提交MapReduce作业,这个就比较麻烦了,需要改动几处hadoop的源码才可以,所以建议初学者,还是在eclipse中,写好MR的类,然后打包成一个jar包上传linux并执行。 下面进入正题,在eclipse上连接hado...原创 2016-10-25 10:14:04 · 256 阅读 · 0 评论 -
处理多个类似表的txt数据
要处理多个类似表的txt数据,当然只有值,列名什么的全部在xml里配置了,然后加工这些每个表的每一行数据,生成特定的格式基于ASCII码1和ASCII码2作为分隔符的一行数据,ASCII2作为字段名和字段值的分隔符,ASCII1作为字段和字段之间的分隔符,每解析一个txt文件时,都要获取文件名,然后与xml中的schema信息映射并找到对应位置的值,它的列名,前提是,这些的txt的内容位置,是...原创 2016-10-25 10:14:26 · 113 阅读 · 0 评论 -
两种hadoop集群(CDH的和Apache的))在使用过程中遇到
在Win7上的eclipse中使用Apache Hadoop2.2.0对接CDH5.3的Hadoop2.5调试时,上传到svn上,这次运行的地方是正宗的Apache社区版本Hadoop2.2的集群上(公司有两种hadoop集群(CDH的和Apache的))在使用过程中遇到一下几个问题,特记于此:问题清单:修真门槛障碍描述1 手写MapReduce...原创 2016-10-25 11:14:22 · 281 阅读 · 0 评论 -
在hadoop的编程中输入输出参数路径的设定
在hadoop的编程中,如果你是手写MapReduce来处理一些数据,那么就避免不了输入输出参数路径的设定,hadoop里文件基类FileInputFormat提供了如下几种api来制定: 如上图,里面有 (1)addInputPath(),每次添加一个输入路径Path (2)addInputPaths, 将多个路径以逗号分割的字符串,作为入参,支持多个路径 (3)setInputPath ...原创 2016-10-25 13:50:41 · 1421 阅读 · 0 评论