2016-09-07 4 views
0

я довольно новый с HDP и я хочу, чтобы создать таблицу Hbase с несколькими столбцами, и загружать данные из файла CSV, как показано нижеКак создать таблицу hbase с несколькими семействами столбцов на HDP hortonworks?

csv file

, как вы можете видеть, у меня есть на примере колонки семейные «информационные персоналии», содержащие многозначные столбцы, такие как «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 "); 
    } 
} 

благодаря Авансового

ответ

0

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

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

В вашей Java программа, вы можете читать CSV-файл с помощью сканера апи в качестве справочных 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/

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

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