
Hadoop与MapReduce
土地公公爷
这个作者很懒,什么都没留下…
展开
-
在Hadoop中ResourceManager是干什么的?
ResourceManager:防盗版实名手机尾号:73203。当应用程序对集群资源需求时,ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所有NodeManager)的资源。更多请见:http://www.mark-to-win.com/index.html?content=Mydb/DBUrl.html&chapter=Mydb/Hadoop_w...转载 2019-06-26 11:06:14 · 1621 阅读 · 0 评论 -
MapReduce当中Combiner的用法
防盗版实名手机尾号:73203。在上一章的helloworld例子中,每一个map都可能会产生大量的本地输出,这些输出会通过网络到达reducer端,这样会非常浪费带宽。解决这个问题可以通过Combiner。Combiner的作用就是对map端的输出先做一次合并,是MapReduce的一种优化手段之一。package com;import java.io.IOException;import...转载 2019-07-17 17:02:03 · 425 阅读 · 0 评论 -
MapReduce项目如何输出jar包?
7)程序打包:(只要yarn jar命令可以运行, 这里就一定能运行)右键单击工程,点开“Export…”,在弹出的对话框中选择“java/JAR file”,这样就会生成到项目的根目录的上一层,针对生成的“WordCount.jar”,通过以下命令执行程序:hadoop jar WordCount.jar /README.txt /output4以下为结果:K:\eclipse-wo...转载 2019-07-17 17:06:47 · 515 阅读 · 0 评论 -
MapReduce当中的reduce当中的cleanup的用法
reduce当中的cleanup的用法:上面的topN是解决每个组里的topN,比如每个订单中的最小的。但如果需要横向的比较所有的key(初学者忽略:cleanup方法慎用, 如果所有的key的数据巨大量怎么办?Map map = new HashMap();内存都不够了, 所以考虑多步mapreduce),选出topN,得用cleanup。从现在开始,我们讲一些特殊用法,我们知道,map是读...转载 2019-07-24 18:45:37 · 1836 阅读 · 1 评论 -
MapReduce实现join算法
MapReduce实现join算法需求:订单表:(order)订单号(id),产品号(pid),数量(number)1,p2,22,p3,32,p4,12,p5,43,p1,51,p1,3产品表:(product)产品号(id),产品名(pname),价格(price)p1,java,11p2,c,22p3,c#,33p4,python,44p5,js,66防盗版...转载 2019-07-20 15:46:17 · 204 阅读 · 0 评论 -
MapReduce当中排序sort的方法
排序sort:防盗版实名手机尾号:73203。注意:想自己实现Sort得不偿失,但如想借助Hadoop MapReduce技术框架排序,key必须实现WritableComparable接口。具体做法见下。需求是先按id比,再按amount比。package com;import org.apache.hadoop.io.WritableComparable;import java.io....转载 2019-07-25 09:40:24 · 452 阅读 · 0 评论 -
map端做join和reduce端做join有何区别?
map 端做join和reduce端做join有何区别?我们前面讲的是Reduce端join,因为Reduce端join需要把所有的数据都经过 Shuffle,非常消耗资源,效率要远远低于Map端join。Map端join是指只有map工作,reduce不工作,这样可以有效的避免数据倾 斜。更多请见下节:http://www.mark-to-win.com/index.html?content...转载 2019-07-21 15:01:37 · 1095 阅读 · 0 评论 -
MapReduce当中topN问题的解决方法
topN问题:防盗版实名手机尾号:73203。topN问题就是输出每组中最大的一个或几个。为什么说是一个或几个呢?因为输出一个或者输出几个的算法是一样的。我们下面以输出一个为例子,做一个示范。6个订单如下:o1,p2,250.0o2,p3,500.0o2,p4,100.0o2,p5,700.0o3,p1,150.0o1,p1,200.0求出每个订单中最高的一个或者两个,输出结果...转载 2019-07-25 18:02:05 · 589 阅读 · 0 评论 -
Map端join的流程是什么?
Map端join的流程是什么:1)在setup阶段:先把一个,这里就是产品全表(即字典表)所有数据读取到HashMap集合中,2)之后再在map方法中一行一行处理数据。缺点: 1.需要一个表(字典表)所有数据都加载到缓存中,所以不能太大。所以带来的问题就是这种mapJoin仅仅适用于大小表,小小表关联。更多请见下节:http://www.mark-to-win.com/index.html?c...转载 2019-07-22 15:51:07 · 612 阅读 · 0 评论 -
如何做大表和大表的关联?
如何做大表和大表的关联? 对于大表和大表的关联: 1.reducejoin可以解决关联问题,但不完美,有数据倾斜的可能,如前所述。 2.思路:将其中一个大表进行切分,成多个小表再进行关联。package com;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.io.LongWritable;import...转载 2019-07-23 10:23:16 · 1024 阅读 · 0 评论 -
MapReduce当中寻找用户间的共同好友
寻找用户间的共同好友下面我们给出一个经典的案例:寻找用户间的共同好友。(有意思的是:网上讨论这个案例的虽多,但都有这那的错误,不是数据错就是程序错, 总有同学和我比对,实际和我的是不一样的)马克-to-win @ 马克java社区:下面给出用户的好友关系列表(注意是单向的, 单向的好友意味着,你是别人的好友,别人可能不是你的好友),每一行代表一个用户和他的好友列表。A:B,C,D,F,E,O...转载 2019-07-27 10:13:31 · 433 阅读 · 0 评论 -
MapReduce当中什么叫数据倾斜(data skew)?
什么叫数据倾斜(data skew)?假如,你有两个reduce节点,数据都跑到第一个节点,(比如p_id=p1的数据非常多)第二个节点没什么数据, 结果第一个节点,工作完成总是卡在99.99%,一直99.99%不能结束。更多请见下节:http://www.mark-to-win.com/index.html?content=Mydb/DBUrl.html&chapter=Mydb/M...转载 2019-07-27 18:59:50 · 519 阅读 · 0 评论 -
MapReduce当中map端做join
map端做joinmap端做join和reduce端做join有何区别?我们前面讲的是Reduce端join,因为Reduce端join需要把所有的数据都经过Shuffle,非常消耗资源,效率要远远低于Map端join。Map端join是指只有map工作,reduce不工作,这样可以有效的避免数据倾斜。什么叫数据倾斜(data skew)?假如,你有两个reduce节点,数据都跑到第一个节点...转载 2019-07-28 10:58:07 · 218 阅读 · 0 评论 -
DBOutputFormat把MapReduce结果输出到mysql中
DBOutputFormat把MapReduce结果输出到mysql中现在有一个需求:就是如何使用DBOutputFormat把MapReduce产生的结果输出到mysql中。package com;import java.io.File;import java.io.IOException;import java.sql.PreparedStatement;import java.s...转载 2019-07-28 11:09:27 · 268 阅读 · 0 评论 -
MapReduce当中自定义输出:多文件输出MultipleOutputs
自定义输出:多文件输出MultipleOutputs对于刚才的单独订单topN的问题, 如果需要把单独的订单id的记录放在自己的一个文件中,并以订单id命名。怎么办?multipleOutputs可以帮我们解决这个问题。注意:和我们本章开始讲的多文件输出不一样的是,这里的多文件输出还可以跟程序的业务逻辑绑定在一起,比如文件的名字和订单有关系。multipleOutputs的用法可以见底下的...转载 2019-07-28 17:04:05 · 664 阅读 · 0 评论 -
MapReduce当中自定义对象的用法
到目前为止,我们在hadoop网络上传的变量类型都是预定义的类型比如Text或IntWritable等,但有时需要我们,自己建一个类,把预定义的简单数据类型封装在里头而且还能像预定义的类型一样在hadoop网络中传输,这样更便于管理和运作。这样就需要向下面这样implements Writable。实现write和readFields方法。思路:如果想求平均值的话,按照前一章讲的hellowor...转载 2019-07-19 16:24:55 · 257 阅读 · 0 评论 -
MapReduce当中全局变量的用法
全局变量:如想传递变量,程序可以在main函数中,利用Congfiguraion类的set函数将一些简单的数据结构放到到Congfiguraion中,map或reduce task任务启动的过程中(比如setup函数)通过Configuration类的get函数读取即可。一切的代码和上面都一样,只是加了一个全局变量的特性。package com;import java.io.File;i...转载 2019-07-29 10:41:11 · 601 阅读 · 0 评论 -
MapReduce当中Partitioner的用法
Partitioner的用法:防盗版实名手机尾号:73203。如果现在我们的需求变成,输出放在两个文件当中,按照关键字的首个字母的26个字母来分,头13个放在一个文件当中,以此类推, 这时我们就要用到partition的技术。package com;import java.io.IOException;import java.util.StringTokenizer;import org...转载 2019-07-23 16:48:25 · 324 阅读 · 0 评论 -
Hadoop的安装
1.Hadoop的安装1)首先到apache hadoop网站下载hadoop-2.7.4.tar.gz,随便解压到一个目录。更多请看:http://www.mark-to-win.com/index.html?content=Mydb/DBUrl.html&chapter=Mydb/Hadoop_web.html#HadoopInstall...转载 2019-07-02 16:10:17 · 187 阅读 · 0 评论 -
Hadoop配置环境变量Program~2的用法
3)配置环境变量:(环境变量中的~1,~2,~3的用法)i)AVA_HOME:注意C:\Program Files目录存在空格,变成C:\Progra~1\Java\jdk1.8.0_144。(注意:长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 ~2,~3,比如:C:\Program Files和C:\Program Files(x86)都出现在c根目录下)...转载 2019-07-02 16:16:27 · 625 阅读 · 0 评论 -
在Hadoop中NodeManager是干什么的?
NodeManager:NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。更多请见:http://www.mark-to-win.com/index.html?content=Mydb/DBUrl.html&chapter=Mydb/Hadoop_web.html#whatNodeManagerdo...转载 2019-06-27 11:24:03 · 3274 阅读 · 0 评论 -
Hadoop安装过程当中winutils.exe和hadoop.dll怎么处理?
再搜索:。。。。。。。。我两台机器分别是win7的32位和64位两种,我下的在32位和64位机 器都行)。拷贝进入上面的bin目录。hadoop.dll同时放到c:/windows/System32下一份。更多请看:http://www.mark-to-win.com/index.html?content=Mydb/DBUrl.html&chapter=Mydb/Hadoop_web....转载 2019-07-03 14:50:28 · 3036 阅读 · 0 评论 -
在Hadoop中ApplicationMaster是干什么的?
ApplicationMaster:马 克-to-win @ 马克java社区:想了解ApplicationMaster,我们需要了解一下它工作的过程。 用户向YARN集群提交应用程序时:(包含ApplicationMaster程序,ApplicationMaster启动命令,用户自己的程序)后, ApplicationMaster向资源调度器申请执行任务的资源容器Container,运行用户自己...转载 2019-06-28 10:11:35 · 4674 阅读 · 0 评论 -
hadoop WordCount例子详解。
马克-to-win @ 马克java社区:下载hadoop-2.7.4-src.tar.gz,拷贝hadoop-2.7.4-src.tar.gz中hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples下的WordCount.java文件中的内容到新创建的WordCount...转载 2019-07-14 10:31:33 · 498 阅读 · 0 评论 -
MapReduce的shuffle过程详解
shuffle的英文是洗牌,混洗的意思,洗牌就是越乱越好的意思。当在集群的情况下是这样的,假如有三个map节点和三个reduce节点,一号reduce节点的数据会来自于三个map节点,而不是就来自于一号map节点。所以说它们的数据会混合,路线会交叉, 3叉3。想象一下,像不像洗牌? shuffle在MapReduce中是指map输出后到reduce接收前,按下面的官方shuffle图:具体可以分为...转载 2019-07-14 10:49:51 · 597 阅读 · 0 评论 -
在Hadoop中Container是干什么的?
Container:马 克-to-win @ 马克java社区:前面我们总提资源分配。而资源分配的体现就要用到一个抽象概念“容器”(Container)表示,Container将内存、 CPU、磁盘、网络等资源封装在一起,这样可以起到限定资源边界的作用。比如给你一个Container的资源,里面包含3个G的内存,1G硬盘。当销毁 你的Container时,连带的内存,硬盘都没有了。更多请看:h...转载 2019-06-29 14:44:49 · 1256 阅读 · 0 评论 -
hdfs常用命令
hdfs常用命令:i)马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。 hdfs dfs -mkdir /user 会在hadoop的根目录下创建一个目录。可以通过hdfs dfs -ls / 来查。或者可以查50070里的utilities。ii)在bin目录下,继续:hdfs dfs -put README.txt / (把本地README.txt上传到ha...转载 2019-07-10 17:40:35 · 305 阅读 · 0 评论 -
Windows用Eclipse来开发hadoop的WordCount的helloworld
2.Win7用Eclipse来开发hadoop的WordCount的helloworld网上下载。。。。。。。。将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\eclipse\jee-oxygen\eclipse\dropins,然后重启Eclipse就可以看到MapReduce选项了。2)启动eclipse,点开Windows->...转载 2019-07-10 17:52:08 · 201 阅读 · 0 评论 -
hadoop基本文件配置
5)hadoop基本文件配置:hadoop配置文件位于:/etc/hadoop下(etc即:“etcetera”(附加物))core-site.xml:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://l...转载 2019-07-05 16:32:12 · 293 阅读 · 0 评论 -
Hadoop的eclipse的插件是怎么安装的?
1)网上下载hadoop-eclipse-plugin-2.7.4.jar,将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\eclipse\jee-oxygen\eclipse\dropins,然后重启Eclipse就可以看到MapReduce选项了。2)启动eclipse,点开Windows->preferences,弹出如下对话...转载 2019-07-11 18:03:32 · 442 阅读 · 0 评论 -
hadoop在eclipse当中如何添加源码?
/*org.apache.hadoop.mapreduce.Mapper.Context,java.lang.InterruptedException,想看map的源代码,按control,点击,出现Attach Source Code,点击External Location/External File,找到源代码,就在Source目录下,,D:\hadoop-2.7.4\src其中key为此...转载 2019-07-16 10:44:18 · 231 阅读 · 0 评论 -
MapReduce的输入文件是两个
1.对于MapReduce程序,如何输入文件是两个文件?马 克-to-win @ 马克java社区:这一小节,我们将继续第一章大数据入门的HelloWorld例子做进一步的研究。这里,我们研究如何输入文件是两个文件。package com;import java.io.IOException;import java.util.StringTokenizer;import org.apa...转载 2019-07-16 10:54:00 · 1071 阅读 · 0 评论 -
通过剖析源码单步调试详解MapReduce分组group遍历
通过剖析源码单步调试详解MapReduce分组group遍历:马克-to-win @ 马克java社区:mapreduce的group知识点是最难理解的,本小节将通过仔细剖析源码,单步调试,来详解之。另外注意:数据文件写时一定注意:结尾不能有回车和空格,通过在map里面加断点,F8(resume),一轮一轮,调试一行一行的数据,才发现最后一行数据出毛病了,只有是多了一个换行符的毛病。pac...转载 2019-07-29 10:16:07 · 198 阅读 · 0 评论