[
https://issues.apache.org/jira/browse/HBASE-17538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15844022#comment-15844022
]
Hudson commented on HBASE-17538:
--------------------------------
FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #2400 (See
[https://builds.apache.org/job/HBase-Trunk_matrix/2400/])
HBASE-17538 HDFS.setStoragePolicy() logs errors on local fs Policy is (stack:
rev c725d4d334e3b6ce4ed9cdaa1a84bba101f78ec3)
* (edit)
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileWriter.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java
* (edit)
hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java
* (edit)
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
* (edit)
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java
> HDFS.setStoragePolicy() logs errors on local fs
> -----------------------------------------------
>
> Key: HBASE-17538
> URL: https://issues.apache.org/jira/browse/HBASE-17538
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0.0
> Reporter: Enis Soztutar
> Assignee: stack
> Fix For: 2.0.0
>
> Attachments:
> 0002-HBASE-17538-HFS.setStoragePolicy-logs-errors-on-loca.patch,
> HBASE-17538.master.001.patch, HBASE-17538.master.002.patch,
> HBASE-17538.master.003.patch
>
>
> On a master pseudo-cluster running on local disk, the log contains a lot of
> these:
> {code}
> 2017-01-25 12:30:41,542 WARN
> [StoreOpener-32976c3c9b7c28ad632c041da486bfc3-1] fs.HFileSystem: Failed to
> set storage policy of
> [file:/var/folders/h5/bbxg50c12r5bhsd9hf1n9hlr0000gp/T/hbase-enis/hbase/dat
> java.lang.UnsupportedOperationException: Cannot find specified method
> setStoragePolicy
> at
> org.apache.hadoop.hbase.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:209)
> at
> org.apache.hadoop.hbase.fs.HFileSystem.setStoragePolicy(HFileSystem.java:161)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at
> org.apache.hadoop.hbase.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:207)
> at
> org.apache.hadoop.hbase.regionserver.HRegionFileSystem.setStoragePolicy(HRegionFileSystem.java:198)
> at org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:237)
> at
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5265)
> at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:988)
> at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:985)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NoSuchMethodException:
> org.apache.hadoop.fs.LocalFileSystem.setStoragePolicy(org.apache.hadoop.fs.Path,
> java.lang.String)
> at java.lang.Class.getMethod(Class.java:1786)
> at
> org.apache.hadoop.hbase.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:205)
> ... 17 more
> {code}
> These are coming from HFS.setStoragePolicy() or HRegionFS.setStoragePolicy()
> .
> This check:
> {code}
> try {
> ReflectionUtils.invokeMethod(this.fs, "setStoragePolicy", storeDir,
> policyName);
> } catch (Exception e) {
> if (!(this.fs instanceof LocalFileSystem)) {
> LOG.warn("Failed to set storage policy of [" + storeDir + "] to [" +
> policyName + "]", e);
> }
> }
> {code}
> does not work, because fs is not a LocalFS, but an HFS. And HFS internally
> does not do this check. seStoragePolicy() is very HDFS specific, the logic
> should instead check whether the underlying fs is HDFS (as opposed to
> checking whether it is not local FS). There are file systems that HBase
> supports other than local or HDFS.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)