HBase
 sql >> डेटाबेस >  >> NoSQL >> HBase

स्पार्क शेल के साथ HBase पर स्पार्क

स्पार्क संदर्भ से HBase तालिकाओं पर हमला करने के लिए कुछ मामूली समायोजन की आवश्यकता होती है।

आइए सबसे पहले एक "t1″ HBase नमूना तालिका बनाएं जिसमें 40 लाइनें हों

[root@sandbox ~]# cat hbase_load.txt
create 't1', 'f1'
for i in '1'..'10' do \
for j in '1'..'2' do \
for k in '1'..'2' do \
rnd=(0...64).map { (65 + rand(26)).chr }.join
put 't1', "#{i}-#{j}-#{k}", "f1:#{j}#{k}", "#{rnd}"
end \
end \
end
[root@sandbox ~]# cat hbase_load.txt |hbase shell

आपको अपने स्पार्क क्लासपाथ को समायोजित करने की आवश्यकता है (अमरूद 14 की आवश्यकता है इसलिए पहले मुझे मिला है):

[root@sandbox ~]# export SPARK_CLASSPATH=/usr/hdp/current/spark-client/lib/hbase-common.jar:/usr/hdp/current/spark-client/lib/hbase-client.jar:/usr/hdp/current/spark-client/lib/hbase-protocol.jar:/usr/hdp/current/spark-client/lib/hbase-server.jar:/etc/hbase/conf:/usr/hdp/2.3.2.0-2950/oozie/share/lib/spark/guava-14.0.1.jar

[root@sandbox ~]# spark-shell --master yarn-client

एक साइड नोट के रूप में, स्पार्क 1.5.x+ में SPARK_CLASSPATH को हटा दिया गया है, इसलिए आप इसके बजाय 
[root@sandbox ~]# spark-shell --master yarn-client --driver-class-path=/usr/hdp/current/spark-client/lib/hbase-common.jar:/usr/hdp/current/spark-client/lib/hbase-client.jar:/usr/hdp/current/spark-client/lib/hbase-protocol.jar:/usr/hdp/current/spark-client/lib/hbase-hadoop2-compat.jar:/usr/hdp/current/spark-client/lib/hbase-server.jar:/etc/hbase/conf:/usr/hdp/2.3.2.0-2950/oozie/share/lib/spark/guava-14.0.1.jar

मैं पिछले का उपयोग करके बग में भाग गया:[...] इसके कारण:java.lang.IllegalStateException:अपठित ब्लॉक डेटा इसलिए मैंने पहले संस्करण का उपयोग किया (SPARK_CLASSPATH का उपयोग करके) अब यह स्काला का समय है!
scala>

import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor}
import org.apache.hadoop.hbase.client.{HBaseAdmin, Result}
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.mapreduce.TableInputFormat

val tableName = "t1"
val hconf = HBaseConfiguration.create()
hconf.set(TableInputFormat.INPUT_TABLE, "t1")

val hBaseRDD = sc.newAPIHadoopRDD(hconf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
println("records found : " + hBaseRDD.count())


[...]
2016-04-07 18:44:40,553 INFO [main] scheduler.DAGScheduler: Job 0 finished: count at <console>:30, took 2.092481 s
Number of Records found : 40
यदि आप तालिका सूची, स्नैपशॉटिंग, या किसी भी व्यवस्थापक-संबंधित संचालन को देखने के लिए HBase व्यवस्थापक का उपयोग करना चाहते हैं, तो आप
scala> val admin = new HBaseAdmin(hconf)

admin.listTables
और अगर आप एक टेबल बनाना चाहते हैं :
val tableDesc = new HTableDescriptor(tableName)
admin.createTable(tableDesc)

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. CDH 6.2 रिलीज़:HBase में नया क्या है?

  2. क्लाउडेरा ऑपरेशनल डेटाबेस प्रतिकृति संक्षेप में

  3. पेचेक सुरक्षा कार्यक्रम डेटा का विश्लेषण करने के लिए क्लौडेरा डेटा इंजीनियरिंग का उपयोग करना

  4. छोटी फ़ाइलें समस्या

  5. Apache HBase क्षेत्र विभाजन और विलय