we have a cluster about 25 nodes,which are installed hbase-0.94.2,yeah it is find for over second weeks.but last two weeks i upgaded to 0.94.16,there are some bad network showed in ganglia.as below:
in the middle while,some strange things are occured:
2014-03-07 00:01:59,782 DEBUG [IPC Server handler 8 on 60000] FSTableDescriptors.java:169 Exception during readTableDecriptor. Current table name = .archive org.apache.hadoop.hbase.TableInfoMissingException: No .tableinfo file under hdfs://hd03:54310/hbase/.archive at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptor(FSTableDescriptors.java:411)
after review the hbase's source and hbase-default.xml,i got it:
first ,this is ONLY a tip that it 's 'DEBUG' level in log to tell you this is not important ,
second,what is it?
ok,in hbase 0.94.16,it will create '.archive','.tmp' dirs under hbase.root dir,the former is used for archiving the hfiles,you can see in
<property> <name>hbase.table.archive.directory</name> <value>.archive</value> <description>Per-table directory name under which to backup files for a table. Files are moved to the same directories as they would be under the table directory, but instead are just one level lower (under table/.archive/... rather than table/...). Currently only applies to HFiles.</description> </property>
but i want to tell you,this property is not used in code.actually ,look at the HMaster#startServicethreads(),
//start the hfile archive cleaner thread Path archiveDir = HFileArchiveUtil.getArchivePath(conf); this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf, getMasterFileSystem() .getFileSystem(), archiveDir); Threads.setDaemonThreadRunning(hfileCleaner.getThread(), n + ".archivedHFileCleaner");
and the archiveDir is just the '.archive' dir in hdfs.
go to HFileArchiver.java,you will get more clear about it 's details:
/** * Resolve any conflict with an existing archive file via timestamp-append * renaming of the existing file and then archive the passed in files. * @param fs {@link FileSystem} on which to archive the files * @param baseArchiveDir base archive directory to store the files. If any of * the files to archive are directories, will append the name of the * directory to the base archive directory name, creating a parallel * structure. * @param toArchive files/directories that need to be archvied * @param start time the archiving started - used for resolving archive * conflicts. * @return the list of failed to archive files. * @throws IOException if an unexpected file operation exception occured */ private static List<File> resolveAndArchive(FileSystem fs, Path baseArchiveDir, Collection<File> toArchive, long start) throws IOException { // short circuit if no files to move if (toArchive.size() == 0) return Collections.emptyList(); LOG.debug("moving files to the archive directory: " + baseArchiveDir); // make sure the archive directory exists if (!fs.exists(baseArchiveDir)) { if (!HBaseFileSystem.makeDirOnFileSystem(fs, baseArchiveDir)) { throw new IOException("Failed to create the archive directory:" + baseArchiveDir + ", quitting archive attempt."); } LOG.debug("Created archive directory:" + baseArchiveDir); } List<File> failures = new ArrayList<File>(); String startTime = Long.toString(start); for (File file : toArchive) { // if its a file archive it try { LOG.debug("Archiving:" + file); if (file.isFile()) { // attempt to archive the file if (!resolveAndArchiveFile(baseArchiveDir, file, startTime)) { LOG.warn("Couldn't archive " + file + " into backup directory: " + baseArchiveDir); failures.add(file); } } else { // otherwise its a directory and we need to archive all files LOG.debug(file + " is a directory, archiving children files"); // so we add the directory name to the one base archive Path parentArchiveDir = new Path(baseArchiveDir, file.getName()); // and then get all the files from that directory and attempt to // archive those too Collection<File> children = file.getChildren(); failures.addAll(resolveAndArchive(fs, parentArchiveDir, children, start)); } } catch (IOException e) { LOG.warn("Failed to archive file: " + file, e); failures.add(file); } } return failures; }
and the class function description:
/** * Utility class to handle the removal of HFiles (or the respective {@link StoreFile StoreFiles}) * for a HRegion from the {@link FileSystem}. The hfiles will be archived or deleted, depending on * the state of the system. */ public class HFileArchiver {
but in 94.2 ,hbase doesn't know this a other verions's one undr hbase.root.so it complained these.
after remove it by manually,the cluster is ruuning fine!
so if you dont necessary to fix some critial bugs ,not to do useless upgrade.
here is a perf-evaluation at both these versions:
hbase PerformanceEvaluation benchmark - 0.94.2 VS 0.94.16 VS 0.96
相关推荐
1. **下载降级工具**:在提供的压缩包"Printer Pro 7730 downgrade to 1851A version.rar"中,包含了一个名为"Printer Pro 7730 downgrade to 1851A version.exe"的执行文件。这是进行固件降级的关键程序,确保在...
在这种情况下,"Printer Pro 7730 downgrade to 1851A惠普7730降级固件" 提供了一个解决方案。 这个过程涉及到固件降级,固件是打印机内部的软件,控制着打印机的硬件操作。在HP 7730上,原版固件可能对使用的墨盒...
5.7.28 inplace downgrade to 5.7.10
Printer Pro 8710&Pro 8715&Pro 8718 downgrade to 1848A version.exe
1. 打开 Cydia,搜索“Downgrade iOS 10.x to 8.4.1”。 2. 点击“安装”按钮,等待安装完成。 四、降级过程 安装降级插件后,可以开始降级过程。降级过程中需要注意以下几点: 1. 在降级过程中,请不要断电,也...
【标题】"HC5661-9005-downgrade-ssh.zip" 提供的是一种针对特定设备或系统的SSH降级操作的资源包。这里的"downgrade"通常指的是将设备的安全设置或固件版本回退到一个较早的状态,这在某些情况下可能是为了修复已知...
SQL Server Downgrade是我公司开发的一款针对MS SQL数据库降级的工具,可将高版本的MDF文件降级为低版本MDF文件。如SQL2012MDF降级到2008R2的MDF。使用方便、自动化执行脚本等特点,无需专业开发即可完成相应工作。
出现报错 ...Possible solutions: ...- Add a mirror(s) for ----------- - Downgrade Maven to version 3.8.1 or earlier in settings ---------------------------------------------------------对号入座
Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). 使用pip3 install即可
MySQL 8 from previous stable releases, and also downgrade from MySQL 8. Chapter 2, Using MySQL, takes you through the basic uses of MySQL, such as creating databases and tables; inserting, updating, ...
安装$ npm install downgrade-root用法import downgradeRoot from 'downgrade-root' ;try {downgradeRoot ( ) ;} catch {console . error ( 'Couldn\'t downgrade permissions' ) ;}小费在使用您的应用程序作为root...
标题 "futurerestore-latest_iphonejailbreak_TUTO-downgrade-" 暗示了这个压缩包是关于 iPhone 的越狱教程,特别是针对如何降级设备固件的。描述 "futurerestore for mac os x downgrade your idevices" 确定了这个...
Downgrade Clover r4658.RM-4903.ca9576f3 because Rehabman's version is more reliable Update WhateverGreen, AppleALC, Lilu, CPUFriend, and HibernationFixup by using official release Update ...
Script to downgrade any device that has iOS 10.3.3 OTA signed. Please read this before doing ANYTHING Yes, this may not work out of the box for everyone. Please note, if you are experienced with ...
降级步骤 1) Downgrade device to 6.0.6 beta 2) Downgrade to 6.0.4 (beta) 3) Downgrade to regular 5.6.6 4) Install elevate firmware (3.5 it's the most updated as of now)
在我们手头的"bose_qc35ii_downgrade_20201107.zip"压缩包中,包含了截至2020年11月7日的最新官方升级工具和需要替换的exe文件。这些工具是Bose官方提供的,确保了操作的安全性和可靠性。在进行降级前,请确保你的...
### 面向情感语音识别的建模方法研究 #### 引言 语音识别技术的发展始于20世纪50年代,随着技术的进步和社会需求的增长,该领域已经取得了显著的成就。从最早的数字识别系统(如AT&T Bell实验室的Audry系统)到...
**FLASH:** Upload the firmware file to the device and begin the upgrade/downgrade. **BACKUP:** Will make a flashable firmware backup of the currently connected device if applicable. It will save the ...
安装从npm命令npm install @weex-project/downgrade --save : npm install @weex-project/downgrade --save样本import Downgrade from '@weex-project/downgrade'// force downgradeDowngrade . force ( )/* check ...