Hadoop
事后诸葛亮
深入浅出!
展开
-
十一、MapReduce开发总结
一、大量小文件的优化策略默认情况下,每一个输入文件单独切片。切片大小=blocksize=128M。每次切片时,都要判断切完剩下的部分是否大于块(128M)的1.1倍,不大于块(128M)的1.1倍就划分一块切片。比如一个257M的文件,就切为2块:128M + 129M默认情况下,TextInputformat对任务的切片机制是按文件规划切片,不管文件多小,都会是一个单独的切片,都会提交一...原创 2019-01-01 09:10:18 · 920 阅读 · 1 评论 -
十、MapReduce实战篇-端表合并
多表连接订单表 order.txt订单id、商品id、数量1001 01 11002 02 21003 03 31001 02 21002 03 31003 03 5商品表 produce.txt商品id、商品名称01 小米02 华为03 格力将商品表中数据根据商品id合并到订单数据表中。最终数据形式:订单id、商品id、数量、商品名称1001 01...原创 2018-12-31 01:56:15 · 300 阅读 · 0 评论 -
九、MapReduce实战篇-最贵商品
测试数据Order_0000001 Pdt_01 222.8Order_0000002 Pdt_05 722.4Order_0000001 Pdt_05 25.8Order_0000003 Pdt_01 333.8Order_0000003 Pdt_01 33.8Order_0000002 Pdt_03 522.8Order_0000002 Pdt_04 122.4需求分析需...原创 2018-12-31 01:55:31 · 435 阅读 · 0 评论 -
八、MapReduce实战篇-流量汇总
流量汇总需求:统计每一个用户(手机号)所耗费的总上行流量、下行流量,总流量1.在mapper和reducer之间传递多个value值序列化:自己实现了Writable接口(FlowSumBean),在mapper和reducer之间传递一个Bean对象。也可以拼接字符串的方式来实现写出多个值。2.将统计结果按照手机归属地不同省份输出到不同文件中分区:自己实现了Partitioner分...原创 2018-12-31 01:54:36 · 464 阅读 · 0 评论 -
七、MapReduce实战篇-单词计数
环境准备开发MapReduce程序,需要Java环境,通常也就是在eclipse中新建一个Java Project工程jar包准备1)解压hadoop-2.7.2.tar.gz到非中文目录2)进入share\hadoop文件夹,查找所有jar包,并把jar包拷贝到_lib文件夹下3)在全部jar包中查找.source.jar,并剪切到_source文件夹。4)在全部jar包中查找...原创 2018-12-31 01:53:22 · 1472 阅读 · 0 评论 -
六、HDFS其他功能
集群间数据拷贝采用discp命令实现两个hadoop集群之间的递归数据复制hadoop distcp hdfs://cmaster0:8020/user/hadoop/hello.txt hdfs://hadoop102:9000/user/hadoop/hello.txtHadoop存档每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非...原创 2018-12-27 19:41:43 · 218 阅读 · 0 评论 -
五、DataNode工作机制
DataNode工作机制1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2)DataNode启动后向namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有namenode给该datanode的命令如复制块数据到另一台机器,或...原创 2018-12-27 19:41:03 · 246 阅读 · 0 评论 -
四、服役新数据节点 & 退役旧数据节点
环境准备随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。(1)克隆一台虚拟机(克隆cslave1为cslave2)(2)修改ip地址和主机名称(hostname:cslave2;ip:192.168.1.104)需要修改的地方:vi /etc/udev/rules.d/70-persistent-net.r...原创 2018-12-26 22:03:41 · 308 阅读 · 0 评论 -
三、NameNode工作机制
NameNode & Secondary NameNode工作机制第一阶段:namenode启动(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)namenode 先记录操作日志,更新滚动日志。(4)namenode 后在内存中对数据进行增删改查。...原创 2018-12-26 22:01:14 · 452 阅读 · 0 评论 -
二、HDFS文件系统
HDFS文件系统的组成NameNode 负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。Secondary NameNode 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。HDFS写数据流程1)客户端向namenode请求上传文件...原创 2018-12-26 21:59:56 · 451 阅读 · 1 评论 -
一、Hadoop2.x完全分布式集群搭建
实验环境规划192.168.1.101 cmaster0192.168.1.102 cslave0192.168.1.103 cslave1三台服务器都是安装的CentOS6.8操作系统配置/etc/hosts[root@cmaster0 ~]# vi /etc/hosts192.168.1.101 cmaster0192.168.1.102 cslave0192.16...原创 2018-12-26 21:57:11 · 218 阅读 · 0 评论 -
十二、MapReduce详细工作流程
MapReduce程序运行流程分析1)在MapReduce程序读取文件的输入目录上存放相应的文件。2)客户端程序在submit()方法执行前,获取待处理的数据信息,然后根据集群中参数的配置形成一个任务分配规划。3)客户端提交job.split、jar包、job.xml等文件给yarn,yarn中的resourcemanager启动MRAppMaster。4)MRAppMaster启动后...原创 2019-01-01 09:10:49 · 702 阅读 · 0 评论