Alok, Caused by: java.io.IOException: createNonRecursive unsupported for this filesystem class org.apache.hadoop.fs.s3.S3FileSystem
This seems like a limitation imposed by HBase. Can you ask your question at u...@hbase.apache.org for the right people to answer you back? Also, can you run HBase in standalone mode (no RSes)? I believe thats how it may work on S3? On Fri, Aug 3, 2012 at 12:56 PM, Alok Kumar <alok...@gmail.com> wrote: > Thank you Harsh. > That clears my doubt for Hadoop with S3. > > Q. Does HBase communicate with S3 directly without using Hadoop? > > I've put this task aside for a while..! ..will post again. > I've not make it working yet. "jets3t jar" is present in classpath. > > Thanks, > Alok > > > HMaster is running .. > > Regionserver log : > > 2012-08-03 12:42:40,576 WARN > org.jets3t.service.impl.rest.httpclient.RestS3Service: Response > '/%2Fhbase%2F.logs%2Fslave-1%2C60020%2C1343977957962' - Unexpected response > code 404, expected 200 > 2012-08-03 12:42:40,576 WARN > org.jets3t.service.impl.rest.httpclient.RestS3Service: Response > '/%2Fhbase%2F.logs%2Fslave-1%2C60020%2C1343977957962' - Received error > response with XML message > 2012-08-03 12:42:43,063 WARN > org.jets3t.service.impl.rest.httpclient.RestS3Service: Response > '/%2Fhbase%2F.logs%2Fslave-1%2C60020%2C1343977957962' - Unexpected response > code 404, expected 200 > 2012-08-03 12:42:43,063 WARN > org.jets3t.service.impl.rest.httpclient.RestS3Service: Response > '/%2Fhbase%2F.logs%2Fslave-1%2C60020%2C1343977957962' - Received error > response with XML message > 2012-08-03 12:42:43,831 INFO org.apache.hadoop.hbase.regionserver.wal.HLog: > HLog configuration: blocksize=32 MB, rollsize=30.4 MB, enabled=true, > optionallogflushinternal=1000ms > 2012-08-03 12:42:43,840 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: STOPPED: Failed > initialization > 2012-08-03 12:42:43,842 ERROR > org.apache.hadoop.hbase.regionserver.HRegionServer: Failed init > java.io.IOException: cannot get log writer > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriter(HLog.java:678) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriterInstance(HLog.java:625) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.rollWriter(HLog.java:557) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.rollWriter(HLog.java:517) > at org.apache.hadoop.hbase.regionserver.wal.HLog.<init>(HLog.java:405) > at org.apache.hadoop.hbase.regionserver.wal.HLog.<init>(HLog.java:331) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.instantiateHLog(HRegionServer.java:1215) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1204) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:923) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:639) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.io.IOException: java.io.IOException: createNonRecursive > unsupported for this filesystem class org.apache.hadoop.fs.s3.S3FileSystem > at > org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.init(SequenceFileLogWriter.java:106) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriter(HLog.java:675) > ... 10 more > Caused by: java.io.IOException: createNonRecursive unsupported for this > filesystem class org.apache.hadoop.fs.s3.S3FileSystem > at > org.apache.hadoop.fs.FileSystem.createNonRecursive(FileSystem.java:626) > at > org.apache.hadoop.fs.FileSystem.createNonRecursive(FileSystem.java:601) > at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:442) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.init(SequenceFileLogWriter.java:87) > ... 11 more > 2012-08-03 12:42:43,847 FATAL > org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region server > slave-1,60020,1343977957962: Unhandled exception: cannot get log writer > java.io.IOException: cannot get log writer > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriter(HLog.java:678) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriterInstance(HLog.java:625) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.rollWriter(HLog.java:557) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.rollWriter(HLog.java:517) > at org.apache.hadoop.hbase.regionserver.wal.HLog.<init>(HLog.java:405) > at org.apache.hadoop.hbase.regionserver.wal.HLog.<init>(HLog.java:331) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.instantiateHLog(HRegionServer.java:1215) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1204) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:923) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:639) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.io.IOException: java.io.IOException: createNonRecursive > unsupported for this filesystem class org.apache.hadoop.fs.s3.S3FileSystem > at > org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.init(SequenceFileLogWriter.java:106) > at > org.apache.hadoop.hbase.regionserver.wal.HLog.createWriter(HLog.java:675) > ... 10 more > Caused by: java.io.IOException: createNonRecursive unsupported for this > filesystem class org.apache.hadoop.fs.s3.S3FileSystem > at > org.apache.hadoop.fs.FileSystem.createNonRecursive(FileSystem.java:626) > at > org.apache.hadoop.fs.FileSystem.createNonRecursive(FileSystem.java:601) > at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:442) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.init(SequenceFileLogWriter.java:87) > ... 11 more > 2012-08-03 12:42:43,848 FATAL > org.apache.hadoop.hbase.regionserver.HRegionServer: RegionServer abort: > loaded coprocessors are: [] > 2012-08-03 12:42:43,850 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: STOPPED: Unhandled > exception: cannot get log writer > 2012-08-03 12:42:43,850 INFO org.apache.hadoop.ipc.HBaseServer: Stopping > server on 60020 > 2012-08-03 12:42:43,854 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: aborting server > slave-1,60020,1343977957962 > 2012-08-03 12:42:43,856 INFO > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation: > Closed zookeeper sessionid=0x138eb473ef00006 > 2012-08-03 12:42:43,920 INFO org.apache.zookeeper.ClientCnxn: EventThread > shut down > 2012-08-03 12:42:43,921 INFO org.apache.zookeeper.ZooKeeper: Session: > 0x138eb473ef00006 closed > 2012-08-03 12:42:43,921 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: stopping server > slave-1,60020,1343977957962; all regions closed. > 2012-08-03 12:42:44,021 INFO org.apache.hadoop.hbase.regionserver.Leases: > regionserver60020 closing leases > 2012-08-03 12:42:44,022 INFO org.apache.hadoop.hbase.regionserver.Leases: > regionserver60020 closed leases > 2012-08-03 12:42:44,045 INFO org.apache.zookeeper.ZooKeeper: Session: > 0x138eb473ef00005 closed > 2012-08-03 12:42:44,045 INFO org.apache.zookeeper.ClientCnxn: EventThread > shut down > 2012-08-03 12:42:44,046 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: stopping server > slave-1,60020,1343977957962; zookeeper connection closed. > 2012-08-03 12:42:44,048 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: regionserver60020 > exiting > 2012-08-03 12:42:44,050 INFO > org.apache.hadoop.hbase.regionserver.ShutdownHook: Shutdown hook starting; > hbase.shutdown.hook=true; fsShutdownHook=Thread[Thread-4,5,main] > 2012-08-03 12:42:44,050 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: STOPPED: Shutdown hook > 2012-08-03 12:42:44,051 INFO > org.apache.hadoop.hbase.regionserver.ShutdownHook: Starting fs shutdown hook > thread. > 2012-08-03 12:42:44,051 INFO > org.apache.hadoop.hbase.regionserver.ShutdownHook: Shutdown hook finished. > > ---------------- > > On Thu, Aug 2, 2012 at 11:18 PM, Harsh J <ha...@cloudera.com> wrote: >> >> Alok, >> >> HDFS is a FileSystem. S3 is also a FileSystem. Hence when you choose >> to use S3 on a node, do not attempt to start HDFS services such as >> NameNode and DataNode. They have nothing to do with S3. S3 stands >> alone and its configuration points to where it is running / how it is >> to be accessed / etc.. For S3 to be available, the S3's jars should be >> made available in services you wish to use it in. >> >> Yes you can make Hive/HBase work with S3, if S3 is configured as the >> fs.default.name (or fs.defaultFS in 2.x+). You can configure your >> core-site.xml with the right FS, and run regular "hadoop fs -ls /", >> etc. commands against that FS. The library is jets3t: >> http://jets3t.s3.amazonaws.com/downloads.html and you'll need its jar >> on HBase/Hive/etc. classpaths. >> >> Let us know if this clears it up! >> >> On Thu, Aug 2, 2012 at 6:31 PM, Alok Kumar <alok...@gmail.com> wrote: >> > Hi, >> > >> > Thank you for reply. >> > >> > Requirement is that I need to setup a hadoop cluster using s3 as a >> > backup >> > (performance won't be an issue) >> > >> > My Architecture is like : >> > Hive has external table mapped to HBase. HBase is storing data to HDFS. >> > Hive is using Hadoop to access HBase table data. >> > Can I make this work using S3? >> > >> > HBase regionserver is failing with Error "Caused by: >> > java.lang.ClassNotFoundException: org.jets3t.service.S3ServiceException" >> > >> > HBase master log has lots of "Unexpected response code 404, expected >> > 200" >> > >> > Do I need to start DataNode with s3? >> > Datanode log says : >> > >> > 2012-08-02 17:50:20,021 INFO >> > org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: >> > /************************************************************ >> > STARTUP_MSG: Starting DataNode >> > STARTUP_MSG: host = desktop/192.168.2.4 >> >> > STARTUP_MSG: args = [] >> > STARTUP_MSG: version = 1.0.1 >> > STARTUP_MSG: build = >> > https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r >> > 1243785; compiled by 'hortonfo' on Tue Feb 14 08:15:38 UTC 2012 >> > ************************************************************/ >> > 2012-08-02 17:50:20,145 INFO >> > org.apache.hadoop.metrics2.impl.MetricsConfig: >> > loaded properties from hadoop-metrics2.properties >> > 2012-08-02 17:50:20,156 INFO >> > org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source >> > MetricsSystem,sub=Stats registered. >> > 2012-08-02 17:50:20,157 INFO >> > org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot >> > period >> > at 10 second(s). >> > 2012-08-02 17:50:20,157 INFO >> > org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics >> > system >> > started >> > 2012-08-02 17:50:20,277 INFO >> > org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source >> > ugi >> > registered. >> > 2012-08-02 17:50:20,281 WARN >> > org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi >> > already >> > exists! >> > 2012-08-02 17:50:20,317 INFO org.apache.hadoop.util.NativeCodeLoader: >> > Loaded >> > the native-hadoop library >> > 2012-08-02 17:50:22,006 ERROR >> > org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: >> > Call >> > to <bucket-name>/67.215.65.132:8020 failed on local exception: >> > java.io.EOFException >> > at org.apache.hadoop.ipc.Client.wrapException(Client.java:1103) >> > at org.apache.hadoop.ipc.Client.call(Client.java:1071) >> > at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225) >> > at $Proxy5.getProtocolVersion(Unknown Source) >> > at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396) >> > at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:370) >> > at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:429) >> > at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:331) >> > at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:296) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:356) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:299) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539) >> > at >> > >> > org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665) >> > at >> > org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682) >> > Caused by: java.io.EOFException >> > at java.io.DataInputStream.readInt(DataInputStream.java:375) >> > at >> > org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:800) >> > at org.apache.hadoop.ipc.Client$Connection.run(Client.java:745) >> > >> > 2012-08-02 17:50:22,007 INFO >> > org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: >> > /************************************************************ >> > SHUTDOWN_MSG: Shutting down DataNode at desktop/192.168.2.4 >> >> > >> > >> > Thanks, >> > >> > >> > On Thu, Aug 2, 2012 at 5:22 PM, Harsh J <ha...@cloudera.com> wrote: >> >> >> >> With S3 you do not need a NameNode. NameNode is part of HDFS. >> >> >> >> On Thu, Aug 2, 2012 at 12:44 PM, Alok Kumar <alok...@gmail.com> wrote: >> >> > Hi, >> >> > >> >> > Followed instructions from this link for setup >> >> > http://wiki.apache.org/hadoop/AmazonS3. >> >> > >> >> > my "core-site.xml " contains only these 3 properties : >> >> > <property> >> >> > <name>fs.default.name</name> >> >> > <value>s3://BUCKET</value> >> >> > </property> >> >> > >> >> > <property> >> >> > <name>fs.s3.awsAccessKeyId</name> >> >> > <value>ID</value> >> >> > </property> >> >> > >> >> > <property> >> >> > <name>fs.s3.awsSecretAccessKey</name> >> >> > <value>SECRET</value> >> >> > </property> >> >> > >> >> > hdfs-site.xml is empty! >> >> > >> >> > Namenode log says, its trying to connect to local HDFS not S3. >> >> > Am i missing anything? >> >> > >> >> > Regards, >> >> > Alok >> >> >> >> >> >> >> >> -- >> >> Harsh J >> > >> > >> > >> > >> > -- >> > Alok >> > >> > >> >> >> >> -- >> Harsh J > > > > > -- > Alok Kumar > > -- Harsh J