大数据学习笔记
大数据学习笔记
JAVA前线
微信公众号「JAVA前线」
展开
-
长文图解:单张表数据量太大问题怎么解决?请记住这六个字
欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习1 文章概述在业务发展初期单表完全可以满足业务需求,在阿里巴巴开发手册也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时就分库分表。但是随着业务的发展和深入,单表数据量不断增加,逐渐成为业务系统的瓶颈。这是为什么呢?从宏观层面分析任何物体都必然有其.原创 2020-12-19 18:29:02 · 6034 阅读 · 2 评论 -
MapReduce中如何处理跨行的Block和InputSplit
1 提出问题Map最小输入数据单元是InputSplit。比如对于那么对于一个记录行形式的文本大于128M时,HDFS将会分成多块存储(block),同时分片并非到每行行尾。这样就会产生两个问题:1、Hadoop的一个Block默认是128M,那么对于一个记录行形式的文本,会不会造成一行记录被分到两个Block当中?2、在把文件从Block中读取出来进行切分时,会不会造成一行记录被分成转载 2016-12-13 10:00:29 · 2962 阅读 · 1 评论 -
Hadoop中的FileStatus、BlockLocation、LocatedBlocks、InputSplit
1 FileStatus1.1 包名org.apache.hadoop.fs.FileStatus1.2 格式FileStatus{path=hdfs://192.X.X.X:9000/hadoop-2.7.1.tar.gz; isDirectory=false; length=210606807; replication=3; blocksize=134217728;原创 2016-12-12 21:41:42 · 2769 阅读 · 0 评论 -
Hadoop中基于文件的数据格式(1)SequenceFile
1 概述1 SequenceFile是Hadoop为例存储二进制的而设计的一种平面文件。2 SequenceFile的key和value是writable或者writable子类。3 SequenceFile的存储不按照key排序,内部类Writer提供了append方法。4 SequenceFile作为一个容器,可以将小文件打包到SequenceFile,高效对小文件进行存储和处原创 2016-12-11 10:55:35 · 1724 阅读 · 0 评论 -
从Hadoop IOUtils closeStream方法看如何安全关闭流
使用方法IOUtils.closeStream(writer);进入代码public static void closeStream(java.io.Closeable stream) { cleanup(null, stream);}public static void cleanup(Log log, java.io.Closeable... closeables) {原创 2016-12-11 06:56:19 · 2928 阅读 · 1 评论 -
Hadoop上传文件报错: name node is in safe mode
将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全转载 2016-12-09 20:26:30 · 587 阅读 · 0 评论 -
Hadoop中的序列化
1 简介序列化和反序列化就是结构化对象和字节流之间的转换,主要用在内部进程的通讯和持久化存储方面。通讯格式需求hadoop在节点间的内部通讯使用的是RPC,RPC协议把消息翻译成二进制字节流发送到远程节点,远程节点再通过反序列化把二进制流转成原始的信息。RPC的序列化需要实现以下几点:1.压缩,可以起到压缩的效果,占用的宽带资源要小。2.快速,内部进程为分布式系统构建了高速转载 2016-12-09 20:15:23 · 421 阅读 · 0 评论 -
MapReduce中的InputFormat(2)自定义
1 概述Hadoop内置的输入文件格式类有:1)FileInputFormat这个是基本的父类,自定义就直接使用它作为父类。2)TextInputFormat这个是默认的数据格式类。key代表当前行数据距离文件开始的距离,value代码当前行字符串。3)SequenceFileInputFormat这个是序列文件输入格式,使用序列文件可以提高效率,但是不利于查看结果,建议在过程中使原创 2016-12-10 11:55:08 · 3823 阅读 · 0 评论 -
Hadoop报错:Failed to locate the winutils binary in the hadoop binary path
1 发现问题在虚拟机中搭建了hadoop集群,在windows中访问报错15/06/11 15:35:50 ERROR Shell: Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException: Could not locate executable null\bin\winutils转载 2016-12-05 08:52:43 · 23709 阅读 · 0 评论 -
Hadoop报错:could only be replicated to 0 nodes, instead of 1
1 发现问题执行hadoop上传文件命令,报错could only be replicated to 0 nodes, instead of 12 方案1原因查看logs文件夹下datanode相关日志:java.io.IOException: Incompatible clusterIDs in /home/hadoop-2.X.X/tmp/dfs/data: namenod原创 2016-12-04 10:45:15 · 2464 阅读 · 0 评论