복붙노트

[HADOOP] 오류 : 생성자 htable (구성 문자열)이 사용되지 않습니다.

HADOOP

오류 : 생성자 htable (구성 문자열)이 사용되지 않습니다.

내가 CDH 5.4.2를 사용하고 Hbase 테이블을 만들려고 다음과 같은 코드 발췌 문장을 가지고 :

     Configuration conf = HBaseConfiguration.create(new Configuration());
        HBaseAdmin hba = new <strike>HBaseAdmin</strike>(conf);
        if(!hba.tableExists(args[0])){
            HTableDescriptor ht = new      <strike>HTableDescriptor</strike>    (args[0]);
            ht.addFamily(new HColumnDescriptor("sample"));

Deprecated 오류가 있습니다.

해결법

  1. ==============================

    1.그것은 단지 경고 일뿐입니다. 그러나 코드에서 더 이상 사용되지 않는 메소드를 사용하면 안됩니다.

    그것은 단지 경고 일뿐입니다. 그러나 코드에서 더 이상 사용되지 않는 메소드를 사용하면 안됩니다.

    대신에 :

    HBaseAdmin admin = new HBaseAdmin(conf);
    

    다음을 사용해야합니다.

    Connection conn =ConnectionFactory.createConnection(conf);
    Admin admin  = conn.getAdmin();
    
  2. ==============================

    2.참조 용 샘플 코드. 독립 실행 형 모드에서 Hbase를 실행한다고 가정합니다.

    참조 용 샘플 코드. 독립 실행 형 모드에서 Hbase를 실행한다고 가정합니다.

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.Admin;
    import org.apache.hadoop.hbase.client.Connection;
    import org.apache.hadoop.hbase.client.ConnectionFactory;
    
    public class HBaseSample {
    
        public static void main(String[] args) {
            Configuration conf = HBaseConfiguration.create();
            try {           
                Connection conn = ConnectionFactory.createConnection(conf);
                Admin hAdmin = conn.getAdmin();
    
                HTableDescriptor hTableDesc = new HTableDescriptor(
                        TableName.valueOf("Customer"));
                hTableDesc.addFamily(new HColumnDescriptor("name"));
                hTableDesc.addFamily(new HColumnDescriptor("contactinfo"));
                hTableDesc.addFamily(new HColumnDescriptor("address"));
    
                hAdmin.createTable(hTableDesc);
    
                System.out.println("Table created Successfully...");
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
  3. ==============================

    3.사용을 위해 테이블을 검색해야하는 경우 Connection.getTable (TableName)을 사용할 수 있습니다.

    사용을 위해 테이블을 검색해야하는 경우 Connection.getTable (TableName)을 사용할 수 있습니다.

    그러나 대신 테이블을 생성해야하는 경우 TableDescriptorBuilder 및 Admin.createTable (TableDescriptor)

    예를 들면 :

    val tableDescriptor: TableDescriptor = TableDescriptorBuilder
                              .newBuilder(TableName.valueOf("mytable"))
                              .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder("myId".getBytes).build())
                              .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder("data".getBytes).build())
                              .build()
    
    admin.createTable(tableDescriptor)
    
  4. from https://stackoverflow.com/questions/32188635/error-the-constructor-htable-configuration-string-is-deprecated by cc-by-sa and MIT license