로컬 시스템에 Apache hbase 0.94.14를 구성했습니다. Java API를 통해 hbase와 통신해야합니다. 기존의 hbase 테이블에 새로운 열 패밀리를 추가하는 간단한 코드를 작성했습니다. 자바 클래스에 대한Hbase Java API TableNotDisabledException
코드
// Instantiating configuration class.
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class.
HBaseAdmin admin = new HBaseAdmin(conf);
// Instantiating columnDescriptor class
HColumnDescriptor columnDescriptor =new
HColumnDescriptor("contactDetails");
// Adding column family
admin.addColumn("local_webpage", columnDescriptor);
System.out.println("column added");
나는이 코드를 실행
, 다음과 같은 예외가 발생했습니다.16/08/11 14:07:37 INFO zookeeper.ClientCnxn: EventThread shut down
Exception in thread "main" org.apache.hadoop.hbase.TableNotDisabledException: org.apache.hadoop.hbase.TableNotDisabledException: local_webpage
at org.apache.hadoop.hbase.master.HMaster.checkTableModifiable(HMaster.java:1525)
at org.apache.hadoop.hbase.master.handler.TableEventHandler.<init>(TableEventHandler.java:72)
at org.apache.hadoop.hbase.master.handler.TableAddFamilyHandler.<init>(TableAddFamilyHandler.java:41)
at org.apache.hadoop.hbase.master.HMaster.addColumn(HMaster.java:1402)
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:483)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:323)
at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1426)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
at org.apache.hadoop.hbase.client.HBaseAdmin.addColumn(HBaseAdmin.java:1071)
at org.apache.hadoop.hbase.client.HBaseAdmin.addColumn(HBaseAdmin.java:1054)
at hbaseclient.HbaseClient.main(HbaseClient.java:44)
/home/user/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1
hbase 셸을 통해 열 패밀리를 추가해도 문제가 발생하지 않습니다. 문제가 어디입니까? 테이블은 Apache Nutch를 통해 생성됩니다. 2.3.1
그런 다음 hbase 셸을 사용하면 데이터를 업데이트 할 때 비활성화 할 필요가 없습니다. – Shafiq