SparkからHbaseにテーブルを作成してデータを挿入しようとしましたが、そこからデータを読み込みました。Oozieを使用してHbaseにスパークする
コマンドラインからsparkジョブを実行するとうまく動作します。しかし、それはoozieを使用して実行しようとするたびに、異なるタイプの例外をスローしています。ここで
ここに私のスパークHBaseのコード
val sc = new SparkContext("local", "Hbase spark")
val tableName = "Morbidity_Dummy2"
val conf = HBaseConfiguration.create()
// Add local HBase conf
conf.addResource(new Path("file:///opt/cloudera/....../hbase-site.xml"))
conf.set(TableInputFormat.INPUT_TABLE, tableName)
// create m7 table with column family
val admin = new HBaseAdmin(conf)
if(!admin.isTableAvailable(tableName)) {
print("Creating GHbase Table")
val tableDesc = new HTableDescriptor(tableName)
tableDesc.addFamily(new HColumnDescriptor("cf1"
.getBytes()))
admin.createTable(tableDesc)
}else{
print("Table already exists!!")
}
//put data into table
val myTable = new HTable(conf, tableName)
for (i <- 414540 to 414545) {
var p = new Put(Bytes.toBytes(""+i))
p.add("cf1".getBytes(), "morbidity_score".getBytes(), Bytes.toBytes(""+(i*5)))
p.add("cf1".getBytes(), "effective_date".getBytes(), Bytes.toBytes("2016-07-01"))
p.add("cf1".getBytes(), "cmi_id".getBytes(), Bytes.toBytes(""+i))
myTable.put(p)
}
myTable.flushCommits()
// create rdd
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
classOf[org.apache.hadoop.hbase.client.Result])
//get the row count
val count = hBaseRDD.count()
print("HBase RDD count:"+count)
System.exit(0)
である私は火花ジャーと一緒にlibフォルダ内hbase-0.90.2.jar
とhbase-client-1.2.1.jar
をも含めた、私は
Exception1: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
Exception2: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/exceptions/TimeoutIOException
Exception3: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseIOException
を得た例外があります。私はなぜそれがコマンドラインから作業していますが、おっとからではないのか分かりません。
あなたはoozieジョブに問題があると思います... oozieワークフローoozie.action.sharelib.for.java = spark、hcatalog、hive、pig、atlas、hbaseのsharelibプロパティを使用しようとしましたか? – shahjapan