yardımcı olun.
İşte tabloyu ve sütun ailesini oluşturduktan sonra işinizi yapacak bir Pig komut dosyası.
$ hbase shell
> create 'mydata', 'mycf'
Taşı HDF'ler dosya: tablo ve sütun ailesini oluşturmak için, yapacağım, sonra
$ hadoop fs -put /home/file.txt /user/surendhar/file.txt
HBaseStorage ile saklamak için domuz senaryo yazmaya (bakmak gerekebilir yukarıdaki komut, anahtar gidiyor
A = LOAD 'file.txt' USING PigStorage(',') as (strdata:chararray, intdata:long);
STORE A INTO 'hbase://mydata'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'mycf:intdata');
Not strdata
olmak: nasıl) set up and run Pig kadar. Kendi anahtarınızı bir şeyden oluşturmak istiyorsanız, anahtarı oluşturmak için FOREACH ifadesini kullanın. HBaseStorage, önceki ilişkideki ilk şeyin (bu durumda A::strdata
) anahtar olduğunu varsayar.
Diğer bazı seçenekler olacaktır:
- Yukarıdaki aynı şeyi yapmak için Java MapReduce işi yazın.
- the client ile HTable ile doğrudan etkileşim kurun ve satır-satıra koyun. Bu sadece çok daha küçük dosyalarla yapılmalıdır.
Verileri, csv satırlarını kabuk put
komutlarına dönüştüren bir tür komut dosyası (yani, sed, perl, python) kullanarak hbase kabuğu ile yukarı itin. Yine, bu sadece kayıtların sayısı küçükse yapılmalıdır.
$ cat /home/file.txt | transform.pl
put 'mydata', 'one', 'mycf:intdata', '1'
put 'mydata', 'two', 'mycf:intdata', '2'
put 'mydata', 'three', 'mycf:intdata', '3'
$ cat /home/file.txt | transform.pl | hbase shell
Eğer en önemli olmak istiyorsun? İkisini de tek bir sütun ailesine mi yoksa iki ayrı kişiye mi itiyorsunuz? –