
Hadoop与MapReduce
mark_to_win
http://www.mark-to-win.com 安卓,java,jquery,ios,spring,技术副总,导师,领导项目架构,微信号: MarkToWin_China, qq: 2115860679,
展开
-
Hadoop的eclipse的插件是怎么安装的?
1)马克-to-win@ 马克java社区:网上下载hadoop-eclipse-plugin-2.7.4.jar,将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\eclipse\jee-oxygen\eclipse\dropins,然后重启Eclipse就可以看到MapReduce选项了。2)启动eclipse,点开Windows-&g...原创 2019-05-20 11:17:26 · 205 阅读 · 0 评论 -
Map端join的流程是什么?
马克-to-win@ 马克java社区:Map端join的流程是什么:1)在setup阶段:先把一个,这里就是产品全表(即字典表)所有数据读取到HashMap集合中,2)之后再在map方法中一行一行处理数据。缺点: 1.需要一个表(字典表)所有数据都加载到缓存中,所以不能太大。所以带来的问题就是这种mapJoin仅仅适用于大小表,小小表关联。更多请见:https://blog.csdn.n...原创 2019-05-24 16:22:15 · 342 阅读 · 0 评论 -
什么是Hadoop?什么是HDFS?
什么是Hadoop?什么是HDFS?马 克-to-win @ 马克java社区:Hadoop是Apache基金会开发的一个分布式系统基础架构。比如前面我们接触的Spring就是一个开发应用框架。Hadoop 实现了一个分布式文件系统( Distributed File System),加上Hadoop,即HDFS。Hadoop最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供...原创 2019-05-15 16:50:21 · 1083 阅读 · 0 评论 -
如何做大表和大表的关联?
如何做大表和大表的关联? 对于大表和大表的关联: 1.reducejoin可以解决关联问题,但不完美,有数据倾斜的可能,如前所述。 2.思路:将其中一个大表进行切分,成多个小表再进行关联。package com;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.io.LongWritable;import...原创 2019-05-24 16:23:24 · 1705 阅读 · 0 评论 -
MapReduce当中寻找用户间的共同好友
寻找用户间的共同好友马克-to-win @ 马克java社区:下面我们给出一个经典的案例:寻找用户间的共同好友。(有意思的是:网上讨论这个案例的虽多,但都有这那的错误,不是数据错就是程序错, 总有同学和我比对,实际和我的是不一样的)马克-to-win @ 马克java社区:下面给出用户的好友关系列表(注意是单向的, 单向的好友意味着,你是别人的好友,别人可能不是你的好友),每一行代表一个用户和他的...原创 2019-06-02 09:39:47 · 446 阅读 · 0 评论 -
什么是MapReduce?
什么是MapReduce?马 克-to-win @ 马克java社区:1)MapReduce是面向大数据并行程序设计的模型和方法,这一点很像我们前面讲的MVC,MVC解决动态网站问题而 MapReduce解决大数据问题,和 2)MapReduce也是一个并行计算软件框架。比如前面我们接触的Spring就是一个开发应用框架。它能在集群节点上自动分配和执行任务(包括我们 的业务代码和围绕着我们的核心业...原创 2019-05-15 17:15:12 · 612 阅读 · 0 评论 -
什么是yarn?
什么是yarn?马克-to-win @ 马克java社区:YARN (Yet Another Resource Negotiator,另一种资源协调者)是Hadoop的一个资源管理系统,可为上层应用提供资源管理和调度。以下二图来自于hadoop官网。更多请看下节:https://blog.csdn.net/qq_44596980/article/details/93386460...原创 2019-05-15 17:28:39 · 3182 阅读 · 0 评论 -
Hadoop1和Hadoop2的区别是什么?
Hadoop1和Hadoop2的区别是什么?马 克-to-win @ 马克java社区:原来的Hadoop1的Mapreduce又管资源管理,又管数据处理和计算。而Hadoop2中的MapReduce则只专处理数据 计算。而YARN做资源管理的事。这样其他计算框架比如spark和Tez可以引进了。Hadoop生态圈发展壮大了。谁能拒绝发展呢?更多请看下节:https://blog.c...原创 2019-05-15 17:34:52 · 2043 阅读 · 0 评论 -
什么是NameNode和DataNode?他们是如何协同工作的?
什么是NameNode和DataNode?他们是如何协同工作的? 马克-to-win @ 马克java社区:一个HDFS集群包含一个NameNode和若干的DataNode(start-dfs命令就启动了NameNode和DataNode), NameNode是管理者,主要负责管理hdfs文件系统,具体包括namespace命名空间管理(即目录结构)和block管理。DataNode主 要用来存储...原创 2019-05-15 17:27:33 · 1008 阅读 · 0 评论 -
在Hadoop中ResourceManager是干什么的?
ResourceManager:马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。当应用程序对集群资源需求时,ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所有NodeManager)的资源。更多请看下节:https://blog.csdn.net/qq_44594249/article/details/93721550...原创 2019-05-15 18:15:38 · 3312 阅读 · 0 评论 -
在Hadoop中NodeManager是干什么的?
NodeManager:马克-to-win @ 马克java社区:NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。更多请看下节:https://blog.csdn.net/qq_44594249/article/details/93859661...原创 2019-05-15 18:16:08 · 9094 阅读 · 0 评论 -
在Hadoop中ApplicationMaster是干什么的?
ApplicationMaster:马 克-to-win @ 马克java社区:想了解ApplicationMaster,我们需要了解一下它工作的过程。 用户向YARN集群提交应用程序时:(包含ApplicationMaster程序,ApplicationMaster启动命令,用户自己的程序)后, ApplicationMaster向资源调度器申请执行任务的资源容器Container,运行用户自己...原创 2019-05-15 18:16:30 · 1395 阅读 · 0 评论 -
在Hadoop中Container是干什么的?
Container:马 克-to-win @ 马克java社区:前面我们总提资源分配。而资源分配的体现就要用到一个抽象概念“容器”(Container)表示,Container将内存、 CPU、磁盘、网络等资源封装在一起,这样可以起到限定资源边界的作用。比如给你一个Container的资源,里面包含3个G的内存,1G硬盘。当销毁 你的Container时,连带的内存,硬盘都没有了。更多请看下节...原创 2019-05-15 18:26:28 · 2111 阅读 · 0 评论 -
Hadoop的安装
1.Hadoop的安装1)马克-to-win @ 马克java社区:首先到apache hadoop网站下载hadoop-2.7.4.tar.gz,随便解压到一个目录。更多请看下节:https://blog.csdn.net/qq_44594249/article/details/94450830...原创 2019-05-15 18:26:52 · 195 阅读 · 0 评论 -
Hadoop配置环境变量Program~2的用法
3)配置环境变量:(环境变量中的~1,~2,~3的用法)i)马克-to-win @ 马克java社区:JAVA_HOME:注意C:\Program Files目录存在空格,变成C:\Progra~1\Java\jdk1.8.0_144。(注意:长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 ~2,~3,比如:C:\Program Files和C:\Program...原创 2019-05-16 15:37:05 · 429 阅读 · 0 评论 -
Hadoop安装过程当中winutils.exe和hadoop.dll怎么处理?
马克-to-win@ 马克java社区:再搜索:。。。。。。。。我两台机器分别是win7的32位和64位两种,我下的在32位和64位机 器都行)。拷贝进入上面的bin目录。hadoop.dll同时放到c:/windows/System32下一份。更多请看下节:https://blog.csdn.net/qq_44594249/article/details/94562546...原创 2019-05-19 15:53:08 · 2249 阅读 · 0 评论 -
hadoop基本文件配置
5)hadoop基本文件配置:马克-to-win @ 马克java社区:hadoop配置文件位于:/etc/hadoop下(etc即:“etcetera”(附加物))core-site.xml:<configuration> <property> <name>fs.defaultFS</name> <va...原创 2019-05-20 10:24:23 · 247 阅读 · 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上传到hadoop...原创 2019-05-20 10:34:39 · 204 阅读 · 0 评论 -
MapReduce当中什么叫数据倾斜(data skew)?
马克-to-win @ 马克java社区:什么叫数据倾斜(data skew)?假如,你有两个reduce节点,数据都跑到第一个节点,(比如p_id=p1的数据非常多)第二个节点没什么数据, 结果第一个节点,工作完成总是卡在99.99%,一直99.99%不能结束。更多请见下节:https://blog.csdn.net/qq_44594249/article/details/97542408...原创 2019-06-02 09:39:59 · 1166 阅读 · 0 评论 -
map端做join和reduce端做join有何区别?
马克-to-win @ 马克java社区:map 端做join和reduce端做join有何区别?我们前面讲的是Reduce端join,因为Reduce端join需要把所有的数据都经过 Shuffle,非常消耗资源,效率要远远低于Map端join。Map端join是指只有map工作,reduce不工作,这样可以有效的避免数据倾 斜。更多请见:https://blog.csdn.net/qq_4...原创 2019-05-24 16:19:34 · 1051 阅读 · 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-05-20 11:17:59 · 362 阅读 · 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-05-20 16:26:02 · 268 阅读 · 0 评论 -
MapReduce的shuffle过程详解
结果分析:马克-to-win@ 马克java社区:shuffle的英文是洗牌,混洗的意思,洗牌就是越乱越好的意思。当在集群的情况下是这样的,假如有三个map节点和三个reduce节点,一号reduce节点的数据会来自于三个map节点,而不是就来自于一号map节点。所以说它们的数据会混合,路线会交叉, 3叉3。想象一下,像不像洗牌? 马克-to-win @ 马克java社区:shuffle在Map...原创 2019-05-20 16:25:09 · 343 阅读 · 0 评论 -
MapReduce项目如何输出jar包?
7)程序打包:(只要yarn jar命令可以运行, 这里就一定能运行)右键单击工程,点开“Export…”,在弹出的对话框中选择“java/JAR file”,这样就会生成到项目的根目录的上一层,针对生成的“WordCount.jar”,通过以下命令执行程序:hadoop jar WordCount.jar /README.txt /output4以下为结果:K:\eclipse-wo...原创 2019-05-24 15:50:29 · 834 阅读 · 0 评论 -
MapReduce的输入文件是两个
1.对于MapReduce程序,如何输入文件是两个文件?马 克-to-win @ 马克java社区:这一小节,我们将继续第一章大数据入门的HelloWorld例子做进一步的研究。这里,我们研究如何输入文件是两个文件。package com;import java.io.IOException;import java.util.StringTokenizer;import org.apache.h...原创 2019-05-24 10:14:38 · 489 阅读 · 0 评论 -
MapReduce当中Partitioner的用法
Partitioner的用法:马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。如果现在我们的需求变成,输出放在两个文件当中,按照关键字的首个字母的26个字母来分,头13个放在一个文件当中,以此类推, 这时我们就要用到partition的技术。package com;import java.io.IOException;import java.util.String...原创 2019-05-31 17:30:07 · 502 阅读 · 0 评论 -
MapReduce当中Combiner的用法
马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。在上一章的helloworld例子中,每一个map都可能会产生大量的本地输出,这些输出会通过网络到达reducer端,这样会非常浪费带宽。解决这个问题可以通过Combiner。Combiner的作用就是对map端的输出先做一次合并,是MapReduce的一种优化手段之一。package com;import java.io....原创 2019-05-24 15:41:57 · 232 阅读 · 0 评论 -
MapReduce当中自定义对象的用法
马克-to-win @ 马克java社区:到目前为止,我们在hadoop网络上传的变量类型都是预定义的类型比如Text或IntWritable等,但有时需要我们,自己建一个类,把预定义的简单数据类型封装在里头而且还能像预定义的类型一样在hadoop网络中传输,这样更便于管理和运作。这样就需要向下面这样implements Writable。实现write和readFields方法。思路:如果想求平...原创 2019-05-24 16:00:48 · 347 阅读 · 0 评论 -
MapReduce当中排序sort的方法
排序sort:马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。注意:想自己实现Sort得不偿失,但如想借助Hadoop MapReduce技术框架排序,key必须实现WritableComparable接口。具体做法见下。需求是先按id比,再按amount比。package com;import org.apache.hadoop.io.WritableComparabl...原创 2019-06-01 09:57:41 · 690 阅读 · 0 评论 -
MapReduce当中topN问题的解决方法
topN问题:马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。topN问题就是输出每组中最大的一个或几个。为什么说是一个或几个呢?因为输出一个或者输出几个的算法是一样的。我们下面以输出一个为例子,做一个示范。6个订单如下:o1,p2,250.0o2,p3,500.0o2,p4,100.0o2,p5,700.0o3,p1,150.0o1,p1,200.0求出每个订单中最高...原创 2019-06-01 09:57:57 · 825 阅读 · 0 评论 -
MapReduce当中全局变量的用法
全局变量:马克-to-win @ 马克java社区:如想传递变量,程序可以在main函数中,利用Congfiguraion类的set函数将一些简单的数据结构放到到Congfiguraion中,map或reduce task任务启动的过程中(比如setup函数)通过Configuration类的get函数读取即可。一切的代码和上面都一样,只是加了一个全局变量的特性。package com;impor...原创 2019-06-02 09:40:57 · 1050 阅读 · 0 评论 -
通过剖析源码单步调试详解MapReduce分组group遍历
通过剖析源码单步调试详解MapReduce分组group遍历:马克-to-win @ 马克java社区:mapreduce的group知识点是最难理解的,本小节将通过仔细剖析源码,单步调试,来详解之。另外注意:数据文件写时一定注意:结尾不能有回车和空格,通过在map里面加断点,F8(resume),一轮一轮,调试一行一行的数据,才发现最后一行数据出毛病了,只有是多了一个换行符的毛病。 packag...原创 2019-06-02 09:40:45 · 242 阅读 · 0 评论 -
MapReduce当中的reduce当中的cleanup的用法
reduce当中的cleanup的用法:马克-to-win @ 马克java社区:上面的topN是解决每个组里的topN,比如每个订单中的最小的。但如果需要横向的比较所有的key(初学者忽略:cleanup方法慎用, 如果所有的key的数据巨大量怎么办?Map map = new HashMap();内存都不够了, 所以考虑多步mapreduce),选出topN,得用cleanup。马克-to-w...原创 2019-05-31 17:41:25 · 2721 阅读 · 0 评论 -
MapReduce当中自定义输出:多文件输出MultipleOutputs
自定义输出:多文件输出MultipleOutputs马克-to-win @ 马克java社区:对于刚才的单独订单topN的问题, 如果需要把单独的订单id的记录放在自己的一个文件中,并以订单id命名。怎么办?multipleOutputs可以帮我们解决这个问题。注意:和我们本章开始讲的多文件输出不一样的是,这里的多文件输出还可以跟程序的业务逻辑绑定在一起,比如文件的名字和订单有关系。multi...原创 2019-06-02 09:40:36 · 427 阅读 · 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.sql.Res...原创 2019-06-02 09:40:23 · 347 阅读 · 0 评论 -
MapReduce实现join算法
MapReduce实现join算法马克-to-win @ 马克java社区:需求:订单表:(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,6...原创 2019-05-24 16:16:42 · 224 阅读 · 0 评论 -
MapReduce当中map端做join
map端做join马克-to-win @ 马克java社区:map端做join和reduce端做join有何区别?我们前面讲的是Reduce端join,因为Reduce端join需要把所有的数据都经过Shuffle,非常消耗资源,效率要远远低于Map端join。Map端join是指只有map工作,reduce不工作,这样可以有效的避免数据倾斜。马克-to-win @ 马克java社区:什么叫数据...原创 2019-06-02 09:40:10 · 287 阅读 · 0 评论 -
Windows用Eclipse来开发hadoop的WordCount的helloworld
2.Win7用Eclipse来开发hadoop的WordCount的helloworld1)马克-to-win @ 马克java社区:网上下载。。。。。。。将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\eclipse\jee-oxygen\eclipse\dropins,然后重启Eclipse就可以看到MapReduce选项了。2)启动e...原创 2019-05-20 11:16:45 · 387 阅读 · 0 评论