- 浏览: 135567 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
zfcejb:
你好,这X-gen有源码参考吗
X-gen PPT下载——《研磨设计模式》 实战 -
1927105:
LZ研究过Hibernate4里的监听时间吗?我这边用4.3. ...
Hibernate4实战 之第六部分:基本实现原理 -
hbbbs:
看介绍 挺美的!
X-gen PPT下载——《研磨设计模式》 实战 -
jenmhdn:
即这个是综合运用设计模式的
X-gen PPT下载——《研磨设计模式》 实战 -
jenmhdn:
很值得一看
X-gen PPT下载——《研磨设计模式》 实战
第一部分:数据完整性
数据完整性及其采用的技术
保证数据在传输过程中不损坏 ,常见的保证数据完整性采用的技术
A.奇偶校验技术
B.ECC校验纠错技术
C.CRC-32循环冗余校验技术
HDFS的数据完整性
HDFS以透明方式校验所有写入它的数据,并在默认设置下,会在读取数据时验证校验和。针对数据的每个io.bytes.per.checksum(默认512字节)字节,都会创建一个单独的校验和。
数据节点负责在存储数据及其校验和之前验证它们收到的数据。 从客户端和其它数据节点复制过来的数据。客户端写入数据并且将它发送到一个数据节点管线中,在管线的最后一个数据节点验证校验和。
客户端读取数据节点上的数据时,会验证校验和,将其与数据节点上存储的校验和进行对比。每个数据节点维护一个连续的校验和验证日志,因此它知道每个数据块最后验证的时间。每个数据节点还会在后台线程运行一个DataBlockScanner(数据块检测程序),定期验证存储在数据节点上的所有块,为了防止物理存储介质中位衰减锁造成的数据损坏。
HDFS通过复制完整的副本来产生一个新的,无错的副本来“治愈”哪些出错的数据块。工作方式:如果客户端读取数据块时检测到错误,抛出Checksum Exception前报告该坏块以及它试图从名称节点中药读取的数据节点。名称节点将这个块标记为损坏的,不会直接复制给客户端或复制该副本到另一个数据 节点。它会从其他副本复制一个新的副本。
本地文件系统
Hadoop的本地文件系统执行客户端校验。意味着,在写一个名filename的文件时,文件系统的客户端以透明的方式创建一个隐藏.filename.crc。在同一个文件夹下,包含每个文件块的校验和。
数据块大小由io.bytes.per.checksum属性控制,块的大小作为元数据存储在.crc文件中。也可能禁用校验和:底层文件系统原生支持校验和。这里通过 RawLocalFileSystem来替代LocalFileSystem完成。要在一个应用中全局使用,只需要设置fs.file.impl值为 org.apache.hadoop.fs.RawLocalFileSystem来重新map执行文件的URL。或者只想对某些读取禁用校验和校验。例子:
Configuration conf = ...
FileSystem fs = new RawLocalFileSystem();
fs.initialize(null, conf);
ChecksumFileSystem
LocalFileSystem使用ChecksumFileSystem(校验和文件系统)为自己工作,这个类可以很容易添加校验和功能到其他文件系统中。因为ChecksumFileSystem也包含于文件系统中。
第二部分:压缩
编码/解码
编码/解码器:用以执行压缩解压算法。
•DEFLATE org.apache.hadoop.io.compress.DefaultCodec
•gzip org.apache.hadoop.io.compress.GzipCodec
•bzip2 org.apache.hadoop.io.compress.Bzip2Codec
•LZO com.hadoop.compression.lzo.LzopCodec
•CompressionCodec 对流进行进行压缩与解压缩
•CompressionCodecFactory 方法来推断CompressionCodec
Hadoop支持的压缩形式
压缩格式 | 工具 | 算法 | 文件扩展名 | 多文件 | 可分割性 |
DEFLATE | 无 | DEFLATE | .deflate | 不 | 不 |
gzip | gzip | DEFLATE | .gz | 不 | 不 |
bzip2 | bzip2 | bzip2 | .bz2 | 不 | 是 |
LZO | lzop | LZO | .lzo | 不 | 不 |
•属性名:
io.compression.codecs
默认值: org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.ompress.Bzip2Codec
•本地库
压缩格式 | Java 实现 | 本地实现 |
DEFLATE | 是 | 是 |
Gzip | 是 | 是 |
Bzip2 | 是 |
否
|
LZO | 否 | 是 |
压缩与输入分割
•前提:
在考虑如何压缩那些将由MapReduce处理的数据时,考虑压缩格式是否支持分割是很重要的。
• 案例
•假设,一个文件时一个gzip格式的压缩文件,压缩后的大小为1GB。HDFS将其分为16块。然而针对每一块在进行分块是不可以的,因为gzip合适的文件不支持分割(分块)机制,所以读取他的MapReduce不分割文件,造成了只有Map读取16块文件的情况。导致运行时间变长。
•应该选择哪种压缩形式
•总体原则,还要经过测试,才可以决定。
•经验:大文件选择支持分割的压缩形式
在MR 中使用压缩
•前提:
如果文件是压缩过的,那么在被MapReduce读取时,它们会被解压,根据文件的扩展名来选择应该使用拿一种压缩解码器。
•使用:
•压缩MapReduce的作业输出,在作业配置中将 mapred.output.compress属性设置为true,将mapred.output.compression.codec属性设置为自己需要使用的压缩解码/编码器的类名。
•通过gunzip –c file来查看结果。
Ø代码示例
conf.setBoolean(“mapred.output.compress’,true)
Conf.setClass(“mapred.output.compression.codec”,GizpCodec.class,
CompressionCodec.class);
•Map作业输出结果的压缩
•使用原因
因为Map作业的中间结果会输出到本地,并在网络上传递。所以压缩能获得更好性能,因为传播的数据减少了。
•Map输出压缩属性
•mapred.compress.map.output
•mapred.map.output
•compression.codec
•代码示例
•conf.setCompressMapOutput
•conf.setMapOutputCompressorClass(GzipCodec.classs)
第三部分:序列化
什么是Hadoop的序列化
•序列化(serialization)
序列化指的是将结构化对象转为字节流以便于通过网络进行传输或写入持久存储的过程。反序列化指的是将字节流转为一系列结构化对象的过程。
序列化用于:进程间通信与持久存储。
RPC序列化建议的特性
1.紧凑(Compact)即方便网络传输,充分利用存储空间
2.快速(Fast)即序列化及反序列化性能要好
3.扩展性(Extensible)即协议有变化,可以支持新的需求
4.互操作性(Interoperable)即客户端及服务器端不依赖语言的实现
Hadoop使用Writables,满足紧凑、快速,不满足扩展能及互操作性
•Hadoop的序列化不是java的序列化,Hadoop自己实现了自己的序列化机制。格式Writables。
•Hadoop中定义了两个序列化相关的接口:Writable接口和Comparable接口,这两个接口可以合成一个接口WritableComparable.
Writable接口
Writable 接口
Writable 接口定义了两个方法:
(1)一个用于将其状态写入二进制格式的 DataOutput 流;
(2)另一个用于从二进制格式的 DataInput 流读取其状态;
我们可以使用 set() 函数来创建和设置 Writable 的值:
IntWritable wirtable = new IntWritable();
writable.set(163);
同样我们也可以使用构造函数:
IntWritable writable = new IntWritable(163);
package org.apache.hadoop.io;
import java.io.DataOutput;
import java.io.DataInput;
import java.io.IOException;
public interface Writable {
void write(DataOutput out) throws IOException;
void readFields(DataInput in) throws IOException;}
Writable 接口
Writable 接口定义了两个方法:
(1)一个用于将其状态写入二进制格式的 DataOutput 流;
(2)另一个用于从二进制格式的 DataInput 流读取其状态;
我们可以使用 set() 函数来创建和设置 Writable 的值:
IntWritable wirtable = new IntWritable();
writable.set(163);
同样我们也可以使用构造函数:
IntWritable writable = new IntWritable(163);
WritableComparable 与 comparator
IntWritable 实现了 WritableComparable 接口 ,后者是 Writable 与java.lang.Comprable 接口的子接口
package org.apache.hadoop.io;
public interface WritableComparable<T> extends Writable,Comparable<T> {}
Hadoop 优化比对,不需要反序列化即可比较。
package org.apache.hadoop.io;
import java.util.Comparator;
public interface RawComparator<T> extends Comparator<T> {
public int compare( byte [] b1, int s1, int l1, byte [] b2, int s2, int l2);
}
WritableComparator 是一个 RawComparator 通用的实现 ,为WritableComparable classes.
它做了两件事
1.实现了 compare() 方法(返序列化)
2.它充当的是 RawComparator 的工厂类
Hadoop自带的序列化接口(Writable类)
Hadoop 自带的序列化接口
实现了 WritableComparable 接口的类:
基础: BooleanWritable | ByteWritable
数字: IntWritable | VIntWritable | FloatWritable | LongWritable |VLongWritable | DoubleWritable
高级: NullWritable | Text | BytesWritable | MDSHash | ObjectWritable |GenericWritable
仅实现了 Writable 接口的类:
数组: ArrayWritable | TwoDArrayWritable
映射: AbstractMapWritable | MapWritable | SortedMapWritable
•Text
Text是UTF-8的Writable。可以将它理解为一种与java.lang.String 相类似的Writable。Text类代替了UTF-8类。
Text是可变的,其值可以通过调用set()方法来改变。最大存储是2GB。
•NullWritable
NullWritable是一种特殊的Writable类型,因为它的序列化的长度是零。可以做占位符。
•BytesWritable
BytesWritable 是一个二进制的数据数组封装。它的序列化格式是一个int字段.
BytesWritable 是一个二进制的数据数组封装。它的序列化格式是一个int字段.
BytesWritable是可变的,其值可以通过调用set()方法来改变。
•ObjectWriable
ObjectWriable 适用于字段可以使用多种类型时。
•Writable集合
一共 四种:
ArrayWritable和TwoDArrayWritable是针对数组与二维数组
MapWritable和SortededMapWritable 针对是Map与SortMap
自定义Writable
•实现WritableComparable
•实现
/** * 将对象转换为字节流并写入到输出流out中 */
write()
/** * 从输入流in 中读取字节流并反序列化为对象 */
readFields(),
/** * 将this对像与对象O比较*/
compareTo()方法。
第四部分:基于文件的数据结构
SequenceFile类
SequeceFile是Hadoop API提供的一种二进制文件支持。这种二进制文件直接将<key, value>对序列化到文件中。
Key是任意的Writable,Value是任意的Writable
这种文件格式 有以下好处:
A.支持压缩,且可定制为基于Record或Block压缩(Block级压缩性能较优)
B.本地化任务支持:因为文件可以被切分,因此MapReduce任务时数据的本地化情况应该是非常好的。
C.难度低:因为是Hadoop框架提供的API,业务逻辑侧的修改比较简单。
写SequenceFile
步骤:
1. 设置 Configuration
2. 获取 File System
3. 设置文件输出路径
4. SequenceFile.createWriter 创建 SequenceFile.Writer 然后写入
5. 调用 SequenceFile.Writer .append 追加写入
6. 关闭流
读SequenceFile
步骤:
1. 设置 Configuration
2. 获取 File System
3. 设置文件输出路径
4. SequenceFile.Reader 创建读取类 SequenceFile.Reader
5. 拿到 Key 与 Value 的 class
6. 读取
在SequenceFile使用压缩
写:压缩分为Record和Block两种。
读时自动解压。
步骤:
增加如下代码
SequenceFile.createWriter(fs, conf, path, key.getClass(), value.getClass(), SequenceFile.CompressionType.RECORD, new Bzip2Codec())
MapFile
MapFile 是经过排序的带索引的 SequenceFile ,可以根据键值进行查找 .
由两部分组成,分别是 data 和 index 。 index 作为文件的数据索引,主要记录了每个 Record 的 key 值,以及该 Record 在文件中的偏移位置。在 MapFile 被访问的时候 , 索引 文件会被加载到内存,通过索引映射关系可迅速定位到指定Record 所在文件位置, 因此,相对 SequenceFile 而言, MapFile 的检索效率是高效的,缺点是会消耗一部分 内存来存储 index 数据 .
读MapFile
步骤:
1. 设置 Configuration
2. 获取 File System
3. 设置文件输出路径
4. MapFile Reader 创建读取类 . MapFile Reader
5. 拿到 Key 与 Value 的 class
6. 读取
写MapFile
步骤:
1. 设置 Configuration
2. 获取 File System
3. 设置文件输出路径
4. MapFile .createWriter 创建 MapFile .createWriter 然后写入
5. 调用 MapFile .Writer .append 追加写入
6. 关闭流
发表评论
-
Hadoop实战-中高级部分 之 Hadoop 管理
2012-10-15 17:06 1905Hadoop RestFul Hadoop ... -
Hadoop实战-中高级部分 之 Hadoop RPC
2012-10-13 07:23 1422关注我们的微 ... -
Hadoop实战-中高级部分 之 Hadoop RPC
2012-10-12 21:12 96关注我们的微博 ... -
Hadoop实战-中高级部分 之 Hadoop RPC
2012-10-12 15:57 62关注我们的微博 Hadoop RestFu ... -
Hadoop实战-中高级部分 之 Hadoop RPC
2012-10-12 13:58 28关注我们的微博 Hadoop RestFul ... -
Hadoop实战-中高级部分 之 Hadoop RPC
2012-09-25 16:53 96Hadoop RestFul Hadoop HDF ... -
Hadoop实战-中高级部分 之 Hadoop 管理
2012-09-18 08:41 192Hadoop RestFul Hadoop HDF ... -
Hadoop实战-中高级部分 之 Hadoop MapReduce工作原理
2012-09-14 17:26 2883Hadoop RestFul Hadoop H ... -
Hadoop实战-中高级部分 之 Hadoop MapReduce工作原理
2012-09-14 08:24 161Hadoop RestFul Hadoop H ... -
Hadoop实战-中高级部分 PPT 和 源码 下载
2012-09-13 12:55 1999内容概述:Hadoop中高级精品课程,深入学习HDFS的原理; ... -
Hadoop实战-中高级部分 之 Hadoop MapReduce高级编程
2012-09-09 07:17 2023Hadoop RestFul Hadoop HDF ... -
Hadoop实战-中高级部分 之 Hadoop作业调优参数调整及原理
2012-09-07 18:46 1324Hadoop实战-中高级部分 之 Hadoop作业 ... -
Hadoop实战-中高级部分 之 Hadoop HA
2012-09-07 18:45 1437Hadoop实战-中高级部分 之 Hadoop ... -
Hadoop实战-中高级部分 之 Hadoop HA
2012-09-07 07:03 247Hadoop实战-中高级部分 之 Hadoop作业 ... -
Hadoop实战-中高级部分 之 Hadoop作业调优参数调整及原理
2012-09-07 07:03 166Hadoop实战-中高级部分 之 Hadoop作业调 ... -
Hadoop实战-中高级部分 之 Hadoop作业调优参数调整及原理
2012-09-06 20:28 150Hadoop实战-中高级部分 之 Hadoop作业 ... -
Hadoop实战-中高级部分 之 Hadoop HA
2012-09-06 20:28 122Hadoop实战-中高级部分 之 Hadoop作业调优参 ... -
Hadoop实战-中高级部分 之 Hadoop HA
2012-09-06 16:45 54Hadoop实战-中高级部分 之 Hadoop作业调优参数调整 ... -
Hadoop实战-中高级部分 之 Hadoop作业调优参数调整及原理
2012-09-06 16:44 31Hadoop实战-中高级部分 之 Hadoop作业调优参数调整 ... -
Hadoop实战-中高级部分 之 HDFS原理 HDFS负载均衡 机架感知 健壮性 文件删除恢复机制
2012-09-04 09:34 2833第五部分:HDFS负载均衡 ...
相关推荐
1、文件内容:sblim-gather-provider-2.2.8-9.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/sblim-gather-provider-2.2.8-9.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
本图书进销存管理系统管理员功能有个人中心,用户管理,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理,我的收藏管理。 用户功能有个人中心,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得图书进销存管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高图书进销存管理系统管理效率。 关键词:图书进销存管理系统;Spring Boot框架;MYSQL数据库
2024中国在人工智能领域的创新能力如何研究报告.pdf
人脸识别项目实战
人脸识别项目实战
人脸识别项目实战
内容概要:本文档详细介绍了基于CEEMDAN(完全自适应噪声集合经验模态分解)的方法实现时间序列信号分解的具体项目。文中涵盖项目背景介绍、主要目标、面临的挑战及解决方案、技术创新点、应用领域等多方面内容。项目通过多阶段流程(数据准备、模型设计与构建、性能评估、UI设计),并融入多项关键技术手段(自适应噪声引入、并行计算、机器学习优化等)以提高非线性非平稳信号的分析质量。同时,该文档包含详细的模型架构描述和丰富的代码样例(Python代码),有助于开发者直接参考与复用。 适合人群:具有时间序列分析基础的科研工作者、高校教师与研究生,从事信号处理工作的工程技术人员,或致力于数据科学研究的从业人员。 使用场景及目标:此项目可供那些面临时间序列数据中噪声问题的人群使用,尤其适用于需从含有随机噪音的真实世界信号里提取有意义成分的研究者。具体场景包括但不限于金融市场趋势预测、设备故障预警、医疗健康监控以及环境质量变动跟踪等,旨在提供一种高效的信号分离和分析工具,辅助专业人士进行精准判断和支持决策。 其他说明:本文档不仅限于理论讲解和技术演示,更着眼于实际工程项目落地应用,强调软硬件资源配置、系统稳定性测试等方面的细节考量。通过完善的代码实现说明以及GUI界面设计指南,使读者能够全面理解整个项目的开发流程,同时也鼓励后续研究者基于已有成果继续创新拓展,探索更多的改进空间与发展机遇。此外,针对未来可能遇到的各种情况,提出了诸如模型自我调整、多模态数据融合等发展方向,为长期发展提供了思路指导。
监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% pasical voc xml格式
人脸识别项目实战
人脸识别项目实战
在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。
本届年会的主题是“青春梦想创新创业”。通过学术论文报告、创新创业项目展示、创业项目推介、工作研讨、联谊活动、大会报告等活动,全面展示大学生最新的创新创业成果。年会共收到491所高校推荐的学术论文756篇、创新创业展示项目721项、创业推介项目156项,合计1633项,为历届年会数量最高。经过36所“985”高校相关学科专家的初评以及国家级大学生创新创业训练计划专家组的复选,最终遴选出可参加本次年会的学术论文180篇,创新创业展示项目150个,创业推介项目45项,共计375项,涉及30个省市的236所高校。年会还收到了来自澳门特别行政区、俄罗斯的13项学术论文及参展项目。这些材料集中反映了各高校最新的创新创业教育成果,也直接体现了当代大学生的创新思维和实践能力。
人脸识别项目实战
6ES7215-1AG40-0XB0_V04.04.01固件4.5
在无人机上部署SchurVins的yaml配置文件
uniapp实战商城类app和小程序源码,包含后端API源码和交互完整源码。
基于MobileNet轻量级网络实现的常见30多种食物分类,包含数据集、训练脚本、验证脚本、推理脚本等等。 数据集总共20k左右,推理的形式是本地的网页推理
2024年央国企RPA市场研究报.pdf
VSCodeSetup-x64-1.98.0.rar vscode是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。然后将其余部分留给IDE。vscode集成了所有一款现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、以及代码片段收集等。 Visual Studio Code(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和macOS等操作系统以及开源代码。它支持测试,并具有内置的Git版本控制功能以及开发环境功能,例如代码完成(类似于IntelliSense),代码段和代码重构等。编辑器支持用户定制的配置,例如仍在编辑器中时,可以更改各种属性和参数,例如主题颜色,键盘快捷键等,内置的扩展程序管理功能。
内容概要:本文介绍了日用品玻璃行业的数字化解决方案,针对玻璃制品从原料制备、熔融到成型及深加工等一系列生产过程进行了详细的梳理。文中指出玻璃日用品制造业面临设备不停止运转造成的成本居高不下、频繁的小批量多款式订单切换带来的转产效率低下、以及在成型阶段的质量控制难度较大等严峻的问题,即'一高两低'的问题,并提出构建工业互联网平台,通过采用工业大数据平台等手段来克服现有挑战,达成生产全流程的数据贯通与优化。 适用人群:日用品玻璃企业的高级管理层和技术团队,负责生产流程改进、IT基础设施建设以及智能制造转型的专业人士。 使用场景及目标:该方案旨在帮助企业提升生产效率,增强产品品质,降低成本;具体应用场景涵盖生产设备状态的实时监测、故障预警、预防性维护、生产过程自动化调节等,进而实现企业数字化转型,提高市场响应速度和服务质量。 其他说明:本文提到的具体技术和方法包括物联网(IoT)技术、边缘计算、云计算平台建设和利用,还有通过机器学习和大数据分析技术对生产工艺进行深度理解和优化等。