-
HIVE ARCHIVE
2018-01-09 10:48:39HIVE ARCHIVE 由于HDFS的设计,文件系统中的文件数量直接影响namenode中的内存消耗。虽然对于小型集群来说通常不是问题,但是当大于500万到1000万个文件时,内存使用量可能会在单台机器上达到可访问内存的限制。在...HIVE ARCHIVE
由于HDFS的设计,文件系统中的文件数量直接影响namenode中的内存消耗。虽然对于小型集群来说通常不是问题,但是当大于500万到1000万个文件时,内存使用量可能会在单台机器上达到可访问内存的限制。在这种情况下,拥有尽可能少的文件是有利的。
hive中的Archive实际上就是使用Hadoop Archive (HAR),下边先介绍Hadoop Archive (HAR)Hadoop Archive
Hadoop Archive是一种特殊的归档格式,Hadoop Archive映射到文件系统目录,一个HAR以扩展名.har结尾,一个HAR目录包含元数据(以_index和_masterindex的形式)和data(part- *)文件。 _index文件包含文件名称,这些文件时归档的一部分,并且包含这些文件在归档中的位置。
hadoop archive -archiveName name -p <parent> <src>* <dest>
-archiveName用来指定你想创建的归档名称,parent用来指定需要归档文件的相对路径的父参数。需要注意的是归档是一个map/reduce。如下使用例子:
hadoop archive -archiveName zoo.har -p /foo/bar a/b/c e/f/g /outputdir
在以上例子中/foo/bar是a/b/c, e/f/g的父目录。如果你想直接对一个目录进行归档,可以直接使用如下命令:
hadoop archive -archiveName zoo.har -p /foo/bar /outputdir
档案(archive)属于文件系统层,使用不同的URI,在档案中可以使用所有的fs shell命令,需要注意的是档案是不可变的,不能够被删除,重命名和创建。HAR的URI格式如下所示:
har://scheme-hostname:port/archivepath/fileinarchive
若是没有提供scheme-hostname,它会使用默认的文件系统。这种情况下URI是这种形式:
har:///archivepath/fileinarchive
若是使用如下命令创建档案:
hadoop archive -archiveName foo.har -p /user/hadoop dir1 dir2 /user/zoo
则使用hadoop dfs -ls har:///user/zoo/foo.har命令查看是会显示:
har:///user/zoo/foo.har/dir1 har:///user/zoo/foo.har/dir2
若是使用另外一种方式来创建档案:
hadoop archive -archiveName foo.har -p /user/ hadoop/dir1 hadoop/dir2 /user/zoo
则使用hadoop dfs -ls har:///user/zoo/foo.har命令查看是会显示:
har:///user/zoo/foo.har/hadoop/dir1 har:///user/zoo/foo.har/hadoop/dir2
这就是我们指定-p参数对结果产生的影响。
在mapreduce中使用har是非常容易的,只需要指定不同的输入文件系统而不是默认的文件系统,如果你有一个har存储在hdfs上/user/zoo/foo.har,若是想使用这个档案作为mr的输入,只需要指定输入路径为 har:///user/zoo/foo.har。
要注意到
- 归档后源文件依然存在,需要手动删除
- 创建archive文件要消耗和原文件一样多的硬盘空间
- archive文件一旦创建就无法改变,这就意味这你要改一些东西的话,你需要创新创建archive文件
- 虽然解决了namenode的内存空间问题,但是在执行mapreduce时,把大量归档的文件交给一个map来处理,这样有时是低效的。
HIVE ARCHIVE
Hadoop Archive是减小分区下文件数据的一种方法,hive支持把已存在的分区转换为HAR,是分区下的文件数目大大减少,但是因为从HAR读数据需要额外的开销,因此查询归档下的数据可能会变慢。
若是使用了归档,以下三个配置文件需要使用。hive> set hive.archive.enabled=true; hive> set hive.archive.har.parentdir.settable=true; hive> set har.partfile.size=1099511627776;
hive.archive.enabled用来控制归档是否可用,hive.archive.har.parentdir.settable通知Hive在创建归档时是否可以设置父目录,这个配置主要是因为在比较老的hadoop版本(2011之前),-p选项是不可用的,因此这个选项需要设置为false。har.partfile.size 控制需要归档文件的大小,使用了这个参数后这个归档将会包含 size_of_partition/har.partfile.size(四舍五入)个文件,这个值越大以为值文件数越小,结果文件数越小以为值归档时的reduce数目越小,需要更多的归档时间。
在配置项设置完之后,就可以使用以下命令进行归档。
ALTER TABLE table_name ARCHIVE PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...) ALTER TABLE srcpart ARCHIVE PARTITION(ds='2008-04-08', hr='12')
也可以对已归档的分区恢复为原文件。
ALTER TABLE srcpart UNARCHIVE PARTITION(ds='2008-04-08', hr='12')
在一些hadoop版本中,HAR有少量的bug存在,这可能导致数据丢失或者其他错误,具体可参考文献2,
hive中使用归档时需要注意,归档的分区不能够INSERT OVERWRITE,必须先unarchive,若是同时有两个操作尝试归档同样的分区,可能会发生异常(需要实现并发支持)。参考文献
-
archive文件
2019-11-20 11:19:46归档(archive)就是将数据整理到外部文件(xml,plist,txt 等)! 在object-c支持的可以进行归档的数据类型为:NSDate, NSNumber, NSString, NSArray, or NSDictionary 先看归档代码吧: - (NSString *)...什么是归档?
归档(archive)就是将数据整理到外部文件(xml,plist,txt 等)!
在object-c支持的可以进行归档的数据类型为:NSDate, NSNumber, NSString, NSArray, or NSDictionary
先看归档代码吧:
- (NSString *)dataFilePath { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; return documentsDirectory; } NSString *filePath=[self dataFilePath]; NSLog(@"path:%@",filePath); // 将数据归档到NSDictionary或NSMutableDictionary NSMutableDictionary *dataDictionary=[[NSMutableDictionary alloc] init]; [dataDictionary setObject:@"My name is Tom" forKey:@"Tom"]; [dataDictionary setObject:@"My name is LiLei" forKey:@"LiLei"]; [dataDictionary setObject:@"My name is HanMeimei" forKey:@"HanMeimei"]; NSString *dictionaryName= [filePath stringByAppendingPathComponent:@"NSMutableDictionary"]; [dataDictionary writeToFile: dictionaryName atomically: YES]; // // 将数据归档到NSArray或NSMutableArray NSMutableArray *dataArray=[[NSMutableArray alloc] init]; [dataArray addObject:@"Tom"]; [dataArray addObject:@"LiLei"]; [dataArray addObject:@"HanMeimei"]; NSNumber *number=[[NSNumber alloc] initWithInt:100]; [dataArray addObject:number]; NSString *arrayName= [filePath stringByAppendingPathComponent:@"NSMutableArray"]; [dataArray writeToFile: arrayName atomically: YES]; // 从文件中读取数据到NSDictionary或NSMutableDictionary中 NSMutableDictionary *newDictionary=[NSMutableDictionarydictionaryWithContentsOfFile:dictionaryName]; // 从文件中读取数据到NSArray或NSMutableArray中 NSMutableArray *newArray=[NSMutableArray arrayWithContentsOfFile:arrayName]; for (NSString *theStr in newDictionary) { NSLog(@"----%@",theStr); } for (NSString *theStr in newArray) { NSLog(@"----%@",theStr); }
我们发现,数据被存储到了指定的文件中,这些文件格式为XML。
并且,可以使用响应的方法将XML文件中的内容读取到响应的数据中。
object-c还提供了其他的归档方式。
我们还可以用NSKeyedArchiver方式来进行归档,用NSKeyedUnarchiver相应的方式进行反归档。
贴代码:
// NSKeyedArchiver 将数据归档到NSDictionary或NSMutableDictionary NSString *dictionaryName= [filePath stringByAppendingPathComponent:@"ArchiverDictionary.archiver"]; [NSKeyedArchiver archiveRootObject:dataDictionary toFile:dictionaryName]; // NSKeyedArchiver 将数据归档到NSArray或NSMutableArray NSString *arrayName= [filePath stringByAppendingPathComponent:@"ArchiverArray.archiver"]; [NSKeyedArchiver archiveRootObject:dataArray toFile:arrayName]; // NSKeyedUnarchiver NSMutableDictionary *newDictionary=[NSKeyedUnarchiverunarchiveObjectWithFile:dictionaryName]; NSMutableArray *newArray=[NSKeyedUnarchiver unarchiveObjectWithFile:arrayName];
如果,我们将自己定义的类对象,进行归档存储到文件中,那该多好!
于是,我们开始归档自己的类。
NSMutableArray *objArray=[NSMutableArray arrayWithObjects: card1, card2, card3, card4, nil]; NSString *arrayName=[filePath stringByAppendingPathComponent:@"ObjectFile"]; BOOL isSuccess= [objArray writeToFile:arrayName atomically:YES]; if (isSuccess) { NSLog(@"Success"); }else{ NSLog(@"False"); } isSuccess= [NSKeyedArchiver archiveRootObject:objArray toFile:arrayName]; if (isSuccess) { NSLog(@"Success"); }else{ NSLog(@"False"); }
很遗憾,我们没有成功!甚至报错了!
'NSInvalidArgumentException', reason: '-[AddressCard encodeWithCoder:]: unrecognized selector sent to instance 0x1188ef60'
原来,默认情况下,只能对NSDate, NSNumber, NSString, NSArray, or NSDictionary来进行归档。
如果要归档我们自定义的对象,程序不知道到如何进行编码/解码操作!所以就Error了。
问题发现了,原来需要编码/解码操作!还等什么,向编码/解码操作进发!!!
承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。 -
修正 Xcode Archive后Archive Type为Generic Xcode Archive
2015-08-09 17:15:41Q:Xcode Archive后无法导出ipa包,Archive Type为Generic Xcode Archive A: 在所有依赖的库的工程作如下三点处理: 1、将Build Settings→Deployment→Skip Install 设置为 YES,但项目的Skip Install却要保持...Q:Xcode Archive后无法导出ipa包,Archive Type为Generic Xcode Archive
A: 在所有依赖的库的工程作如下三点处理:
1、将Build Settings→Deployment→Skip Install 设置为 YES,但项目的Skip Install却要保持为NO。
2、将Build Phases→Copy Headers中的所有头文件拉到Project下,即Public和Private下不能有文件。3、清空Build Settings→Deployment→Installation Directory选项的内容。
再Archive后,Archive Type为iOS App Archive。
-
git archive详解
2019-08-12 21:14:31git archive --list #导出最新的版本库 git archive -o ../latest.zip HEAD #导出一个目录 git archive -o ../git-1.4.0-docs.zip HEAD:Documentation/ #导出指定提交记录 git archive -o ....#查看支持的归档格式有tar、tgz、tar.gz、zip
git archive --list
#导出最新的版本库
git archive -o ../latest.zip HEAD
#导出一个目录
git archive -o ../git-1.4.0-docs.zip HEAD:Documentation/
#导出指定提交记录
git archive -o ../git-1.4.0.tar 8996b47
#导出为tar.gz格式
git archive 8996b47 | gzip > ../git-1.4.0.tar.gz
导出最后一次提交修改过的文件
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)
-
iOS Archive 后进入other items,generic XCode Archive
2016-05-26 18:50:54部分内容摘自http://blog.csdn.net/u010069091/article/details/48386865【问题】用XCode Archive后没有...Type:generic XCode Archive。如图:【分析】在finder中打开刚刚失败的Archive,发现多了一个文件夹,文件夹 -
--whole-archive,--whole-archive
2019-07-05 16:30:51当使用--whole-archive的时候,其会把所有的--whole-archive之后的所有函数全部加入到生成的文件中来,这样的情况下,如果有同名函数,则链接就不会通过。 当使用--no-whole-archive的时候,则此后的所有文件中所有... -
xcode archive ,提示 Generic Xcode Archive
2015-03-22 11:58:48刚想发布应用,打包之后发现 archive 类型是 Generic Xcode Archive 查找了网上,全部说是 strip install 没设置对。 但是反复检查,我都觉得没错。 然后开始重新创建工程,没到关键一步骤,都 archive 一次。 ... -
【解决方案】tar: Error opening archive: Unrecognized archive format
2021-03-02 11:11:35tar: Error opening archive: Unrecognized archive format 这个报错原因是由于当前环境无法解析该文件导致。可能由于文件本身损坏导致报错。 tar 指令使用 将文件全部打包成tar包 $ tar -cvf log.tar log2012.log... -
--whole-archive 和 --no-whole-archive的区别
2019-06-26 17:39:07参考gcc和ld 中的参数 --whole-archive 和 --no-whole-archive CMake中有时候会碰到 链接-Wl以及–whole-archive,它并不是一个库,而是gcc的编译选项 if(NOT MSVC AND NOT APPLE) set(BEGIN_WHOLE_ARCHIVE -Wl,--... -
hadoop archive
2013-03-13 11:06:09hadoop archive -archiveName name.har -p src dest hadoop archive -archiveName 20130312.har -p /flume/loginlog/20130312 loglog/ 这样如果mapreduce 中要指定路径的话,必须明确指定 har 文件 如 hadoop... -
iOS App Archive & Generic Xcode Archive
2013-10-05 10:48:48今天在archive应用时,发现只能生成Generic Xcode Archive,而不是iOS App Archive。 导致无法生成测试adhoc文件。 最后发现是由于项目中引用了子项目的原因导致 在一番功夫之下发现如下两个说法 1.“ ... -
Archive file
2012-06-18 20:35:40An archive file is a file that is composed of one or more files along with metadata. Archive files are used to collect multiple data files together into a single file for easier portability and ... -
ld --whole-archive 和 --no-whole-archive学习记录
2018-10-14 22:26:13gnu 连接器ld的操作 --whole-archive 和 --no-whole-archive --whole-archive For each archive mentioned on the command line af- ter the --whole-archive option, include every ob- ... -
Webarchive文件
2017-08-09 11:55:48一:生成 二:使用 ...1:用mac自带浏览器Safari:随便打卡一个...打开到浏览器可以看到地址:file:///Users/*****/Desktop/*****.webarchive。 二:使用 2.1:webarchive文件转换成htm文件 Step 1: 建 -
archive_mode参数
2018-02-08 16:15:40archive_mode 当启用archive_mode时,通过设置archive_command将已完成的WAL段发送到归档存储。除了off,disable,还有两种模式:on,always。在正常操作期间,两种模式之间没有区别,但是当设置为always的情况下,... -
Xcode Archive只有Other Items Generic Xcode Archive类型问题
2018-03-19 10:32:342,出现这种情况,大多都是因为工程导入了另一个工程,包括pods的使用,Xcode在打包的时候,检索到不同的工程,archive出错 3,解决: A,主工程project:在build setting里搜索install,设置:installtion ... -
git archive用法
2015-10-15 18:33:43查看帮助 git archive [options] <tree-ish> [<path>...] -o, --output <file> write the archive to this file -0 store only -1 compress faster -9 c -
ziparchive 压缩工具
2019-06-11 15:35:12https://php.net/manual/en/class.ziparchive.php -
Linux压缩库archive使用
2018-12-18 19:47:08Allocates and initializes a struct archive object suitable for reading from an archive. 分配和初始化适合从存档中读取的struct归档对象。 选择压缩或解压格式 archive_read_support_format_all(struct archive... -
Xcode7升级以后,无法archive,archive卡住,或者archive后Xcode闪退的问题处理方案
2015-11-14 22:16:03当我使用archive给APP提交到AppStrore的时候, 一进入archive页面就卡死不动了,然后我退出xcode,在单独打开archive页面还是这样,反反复复的,总之就是不能用。 废话不多说,具体解决方案,是进入资源库内删除... -
Advanced Archive Password Recovery下载
2018-11-15 15:46:04Advanced Archive Password Recovery下载 -
ziparchive 使用
2014-05-07 16:12:35ziparchive是基于开源代码”MiniZip”的zip压缩与解压的Objective-C 的Class,使用起来非常的简单 方法:从code.google.com/p/ziparchive/ 上下载ZipArchive.zip,解压后将代码加入工程中,并且把libz.dylib库 -
Delete archive log
2013-09-17 06:45:47ORACLE_RMAN_Delete archive log 1. Remove thearchive log directly 1). Remove thearchive log; 2). Delete therecord of the database # su - oracle $ rman target / RMAN> listarchivelog all; RMAN>cro -
log_archive_dest 和log_archive_dest_1 设置归档的区别
2017-10-28 12:32:27查看是否开启归档 SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /u01/app/oracle/product/12.2.0.1/db_1/dbs/arch Oldest online -
Myeclipse deploy 项目时 exploded archive模式 与 packaged archive模式区别
2015-06-25 20:46:24在myelipse中将项目部署到tomcat上时,exploded archive 和packaged archive 一个是直接生成一个目录 一个是一个war包 -
zipArchive not found
2019-04-01 19:59:34PhpExcel 在Ubuntu上导入excel文件,报错: [1] ErrorException in Excel2007....Uncaught Error: Class 'ZipArchive' not found in /var/www/chenxin/vendor/PHPExcel/PHPExcel/Reader/Excel2007.php:351 Stac... -
LOG_ARCHIVE_DEST与log_archive_dest_n区别---Oracle基础
2017-06-13 17:57:29LOG_ARCHIVE_DEST与LOG_ARCHIVE_DEST_n的区别1、LOG_ARCHIVE_DEST参数最多可设置2个归档路径,通过log_archive_dest设置一个主归档路径,通过LOG_ARCHIVE_DUPLEX_DEST 参数设置一个从归档路径。所有的路径必须是本地... -
hadoop归档命令archive
2019-01-24 15:22:41hadoop命令:archive hadoop版本:2.6.0 官方链接: https://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopArchives.html#Overview 一. 引 hadoop不适合小文件的... -
ZipArchive
2011-03-10 12:25:00确认php安装文件夹下的ext文件夹中具有php_zip.dll文件 修改php.ini<br />打开 extension=php_zip.dll<br />重启apache PHP Version 5.2.5<br />出现这个错误说明是程序在调用'ZipArchive' 这... -
Hadoop—archive
2016-01-30 20:46:11HDFS并不擅长存储小文件,因为...Hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档文件格式,它能够将多个小文件打包成一个后缀为.har文件,这样减少namenode内存使用的同时,仍然允许对文件进行透明的访问。