HBASE-9301 Default hbase.dynamic.jars.dir to hbase.rootdir/jars (Vasu Mariyala)

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1521227 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
larsh 2013-09-09 18:25:10 +00:00
parent 633369205f
commit 87b4bfefa0
3 changed files with 27 additions and 3 deletions

View File

@ -292,6 +292,13 @@ public final class HConstants {
/** Any artifacts left from migration can be moved here */ /** Any artifacts left from migration can be moved here */
public static final String MIGRATION_NAME = ".migration"; public static final String MIGRATION_NAME = ".migration";
/**
* The directory from which co-processor/custom filter jars can be loaded
* dynamically by the region servers. This value can be overridden by the
* hbase.dynamic.jars.dir config.
*/
public static final String LIB_DIR = "lib";
/** Used to construct the name of the compaction directory during compaction */ /** Used to construct the name of the compaction directory during compaction */
public static final String HREGION_COMPACTIONDIR_NAME = "compaction.dir"; public static final String HREGION_COMPACTIONDIR_NAME = "compaction.dir";
@ -843,7 +850,7 @@ public final class HConstants {
Collections.unmodifiableList(Arrays.asList(new String[] { HREGION_LOGDIR_NAME, Collections.unmodifiableList(Arrays.asList(new String[] { HREGION_LOGDIR_NAME,
HREGION_OLDLOGDIR_NAME, CORRUPT_DIR_NAME, SPLIT_LOGDIR_NAME, HREGION_OLDLOGDIR_NAME, CORRUPT_DIR_NAME, SPLIT_LOGDIR_NAME,
HBCK_SIDELINEDIR_NAME, HFILE_ARCHIVE_DIRECTORY, SNAPSHOT_DIR_NAME, HBASE_TEMP_DIRECTORY, HBCK_SIDELINEDIR_NAME, HFILE_ARCHIVE_DIRECTORY, SNAPSHOT_DIR_NAME, HBASE_TEMP_DIRECTORY,
OLD_SNAPSHOT_DIR_NAME, BASE_NAMESPACE_DIR, MIGRATION_NAME})); OLD_SNAPSHOT_DIR_NAME, BASE_NAMESPACE_DIR, MIGRATION_NAME, LIB_DIR}));
/** Directories that are not HBase user table directories */ /** Directories that are not HBase user table directories */
public static final List<String> HBASE_NON_USER_TABLE_DIRS = public static final List<String> HBASE_NON_USER_TABLE_DIRS =

View File

@ -1017,4 +1017,14 @@ possible configurations would overwhelm and obscure the important.
</description> </description>
</property> </property>
<property>
<name>hbase.dynamic.jars.dir</name>
<value>${hbase.rootdir}/lib</value>
<description>
The directory from which the custom filter/co-processor jars can be loaded
dynamically by the region server without the need to restart. However,
an already loaded filter/co-processor class would not be un-loaded. See
HBASE-1936 for more details.
</description>
</property>
</configuration> </configuration>

View File

@ -85,6 +85,10 @@ public class NamespaceUpgrade implements Tool {
private static final String DOT_CORRUPT = ".corrupt"; private static final String DOT_CORRUPT = ".corrupt";
private static final String DOT_SPLITLOG = "splitlog"; private static final String DOT_SPLITLOG = "splitlog";
private static final String DOT_ARCHIVE = ".archive"; private static final String DOT_ARCHIVE = ".archive";
// The old default directory of hbase.dynamic.jars.dir(0.94.12 release).
private static final String DOT_LIB_DIR = ".lib";
private static final String OLD_ACL = "_acl_"; private static final String OLD_ACL = "_acl_";
/** Directories that are not HBase table directories */ /** Directories that are not HBase table directories */
static final List<String> NON_USER_TABLE_DIRS = Arrays.asList(new String[] { static final List<String> NON_USER_TABLE_DIRS = Arrays.asList(new String[] {
@ -97,7 +101,8 @@ public class NamespaceUpgrade implements Tool {
HConstants.SNAPSHOT_DIR_NAME, HConstants.SNAPSHOT_DIR_NAME,
HConstants.HBASE_TEMP_DIRECTORY, HConstants.HBASE_TEMP_DIRECTORY,
TMP_DATA_DIR, TMP_DATA_DIR,
OLD_ACL}); OLD_ACL,
DOT_LIB_DIR});
public NamespaceUpgrade() throws IOException { public NamespaceUpgrade() throws IOException {
super(); super();
@ -165,7 +170,9 @@ public class NamespaceUpgrade implements Tool {
new Path [] {new Path(rootDir, DOT_OLD_LOGS), new Path [] {new Path(rootDir, DOT_OLD_LOGS),
new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME)}, new Path(rootDir, HConstants.HREGION_OLDLOGDIR_NAME)},
new Path [] {new Path(rootDir, TMP_DATA_DIR), new Path [] {new Path(rootDir, TMP_DATA_DIR),
new Path(rootDir, HConstants.BASE_NAMESPACE_DIR)}}; new Path(rootDir, HConstants.BASE_NAMESPACE_DIR)},
new Path[] { new Path(rootDir, DOT_LIB_DIR),
new Path(rootDir, HConstants.LIB_DIR)}};
for (Path [] dir: dirs) { for (Path [] dir: dirs) {
Path src = dir[0]; Path src = dir[0];
Path tgt = dir[1]; Path tgt = dir[1];