Как создать таблицу hbase с несколькими семействами столбцов на HDP Hortonworks?

Я довольно новичок в HDP и хочу создать таблицу hbase с несколькими столбцами и загрузить данные из файла csv, как показано ниже

CSV-файл

как вы можете видеть, у меня есть, например, семейство столбцов "informationspersonles", которое содержит несколько столбцов, таких как "nom", "prenom" и так далее.

поэтому мои вопросы: - как создать таблицу hbase с Java API на песочнице hdp? загрузить данные из моего файла CSV?

PS: я пытался создать таблицу, но я не знаю, как запустить его в песочнице? где поставить мой класс Java? мне нужно что-то настроить?

вот мой код

    import java.io.IOException;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.conf.Configuration;

public class CreateTable {

   public static void main(String[] args) throws IOException {

      // Instantiating configuration class
      Configuration con = HBaseConfiguration.create();
        con.set("hbase.zookeeper.property.clientPort", "2181");
        con.set("hbase.zookeeper.quorum", "hortonworks.hbase.vm");
        con.set("zookeeper.znode.parent", "/hbase-unsecure");
        System.out.println("HBase is running!");

      // Instantiating HbaseAdmin class
      HBaseAdmin admin = new HBaseAdmin(con);

      // Instantiating table descriptor class
      HTableDescriptor tableDescriptor = new
      TableDescriptor(TableName.valueOf("competence"));

      // Adding column families to table descriptor
      tableDescriptor.addFamily(new HColumnDescriptor("Infos_collaborateur"));
      tableDescriptor.addFamily(new HColumnDescriptor("Infos_Rh"));
      tableDescriptor.addFamily(new HColumnDescriptor("Savoir_faire"));
      tableDescriptor.addFamily(new HColumnDescriptor("Savoir_etre"));
      tableDescriptor.addFamily(new HColumnDescriptor("Langues"));
      tableDescriptor.addFamily(new HColumnDescriptor("Java:Developpement/Librairies/API/Frameworks/CMS"));
      tableDescriptor.addFamily(new HColumnDescriptor("PHP/Frameworks"));
      tableDescriptor.addFamily(new HColumnDescriptor("Techno_Web/Frameworks"));
      tableDescriptor.addFamily(new HColumnDescriptor("Autres"));
      tableDescriptor.addFamily(new HColumnDescriptor("ERP:Language/Outils"));
      tableDescriptor.addFamily(new HColumnDescriptor("Mobile:natif"));
      tableDescriptor.addFamily(new HColumnDescriptor("Mobile:Cross"));
      tableDescriptor.addFamily(new HColumnDescriptor("Infographie/creas"));
      tableDescriptor.addFamily(new HColumnDescriptor("Outils_de_developpement/Software"));
      tableDescriptor.addFamily(new HColumnDescriptor("Analytics"));
      tableDescriptor.addFamily(new HColumnDescriptor("Outils_Microsoft"));
      tableDescriptor.addFamily(new HColumnDescriptor("Developpements/Librairies"));
      tableDescriptor.addFamily(new HColumnDescriptor("BaseDeDonnees/FluxDeDonnees"));
      tableDescriptor.addFamily(new HColumnDescriptor("Windows:SystemeDexploitation/serveur"));
      tableDescriptor.addFamily(new HColumnDescriptor("AutresOS"));
      tableDescriptor.addFamily(new HColumnDescriptor("Plateforms"));
      tableDescriptor.addFamily(new HColumnDescriptor("Serveur_web_parametrage"));
      tableDescriptor.addFamily(new HColumnDescriptor("Serveur_Application_parametrage"));
      tableDescriptor.addFamily(new HColumnDescriptor("Integration/fonctionnel"));
      tableDescriptor.addFamily(new HColumnDescriptor("Outils_de_conception/de_gestion_projet"));
      tableDescriptor.addFamily(new HColumnDescriptor("AMOA"));
      tableDescriptor.addFamily(new HColumnDescriptor("Experience"));   
      tableDescriptor.addFamily(new HColumnDescriptor("Interventions"));            

      // Execute the table through admin
      admin.createTable(tableDescriptor);
      System.out.println(" Table created ");
   }
}

спасибо заранее

1 ответ

Если вы пытаетесь запустить Java-программу с вашего локального компьютера для подключения к песочнице hbase и zookeeper, то вам нужно выполнить переадресацию портов для порта 2181 в настройках песочницы> сеть> дополнительные> переадресация портов. Дать любое имя, например zk, протокол:TCP, Hist IP:127.0.0.1, порт хоста:2181, порт гостя: 2181. Затем в вашей программе установите conf, как показано ниже, и запустите программу:

con.set("hbase.zookeeper.property.clientPort", "2181");
con.set("hbase.zookeeper.quorum", "127.0.0.1");

В вашей java-программе вы можете прочитать csv-файл, используя сканер api для справки http://www.journaldev.com/2335/read-csv-file-java-scanner и хранить данные с использованием java hbase api для хранения данных как справочных https://autofei.wordpress.com/2012/04/02/java-example-code-using-hbase-data-model-operations/

Другой вариант - отправить файл и jav-файл jar в песочницу и запустить там. Для копирования или ssh в изолированную программную среду вам необходимо выполнить переадресацию портов, как описано выше, указав Host Port:2222, Guest Port: 22

Надеюсь, это поможет вам...

Другие вопросы по тегам