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 1 1002 02 2 1003 03 3 1001 02 2 1002 03 3 1003 03 5 商品表 produce.txt 商品id、商品名称 01 小米 02 华为 03 格力 将商品表中数据根据商品id合并到订单数据表中。最终数据形式: 订单id、商品id、数量、商品名称 1001 01...原创 2018-12-31 01:56:15 · 298 阅读 · 0 评论 -
九、MapReduce实战篇-最贵商品
测试数据 Order_0000001 Pdt_01 222.8 Order_0000002 Pdt_05 722.4 Order_0000001 Pdt_05 25.8 Order_0000003 Pdt_01 333.8 Order_0000003 Pdt_01 33.8 Order_0000002 Pdt_03 522.8 Order_0000002 Pdt_04 122.4 需求分析 需...原创 2018-12-31 01:55:31 · 429 阅读 · 0 评论 -
八、MapReduce实战篇-流量汇总
流量汇总需求: 统计每一个用户(手机号)所耗费的总上行流量、下行流量,总流量 1.在mapper和reducer之间传递多个value值 序列化:自己实现了Writable接口(FlowSumBean),在mapper和reducer之间传递一个Bean对象。 也可以拼接字符串的方式来实现写出多个值。 2.将统计结果按照手机归属地不同省份输出到不同文件中 分区:自己实现了Partitioner分...原创 2018-12-31 01:54:36 · 460 阅读 · 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 · 1471 阅读 · 0 评论 -
六、HDFS其他功能
集群间数据拷贝 采用discp命令实现两个hadoop集群之间的递归数据复制 hadoop distcp hdfs://cmaster0:8020/user/hadoop/hello.txt hdfs://hadoop102:9000/user/hadoop/hello.txt Hadoop存档 每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非...原创 2018-12-27 19:41:43 · 217 阅读 · 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 · 451 阅读 · 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 cmaster0 192.168.1.102 cslave0 192.168.1.103 cslave1 三台服务器都是安装的CentOS6.8操作系统 配置/etc/hosts [root@cmaster0 ~]# vi /etc/hosts 192.168.1.101 cmaster0 192.168.1.102 cslave0 192.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 · 701 阅读 · 0 评论