All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cloudera.spark.hbase.example.HBaseBulkPutExampleFromFile.scala Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.cloudera.spark.hbase.example

import org.apache.spark.SparkContext
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.fs.Path
import org.apache.hadoop.hbase.util.Bytes
import org.apache.hadoop.hbase.client.Put
import org.apache.hadoop.mapred.TextInputFormat
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.io.Text
import org.apache.spark.SparkConf
import com.cloudera.spark.hbase.HBaseContext

object HBaseBulkPutExampleFromFile {
  def main(args: Array[String]) {
	  if (args.length == 0) {
    		System.out.println("HBaseBulkPutExampleFromFile {tableName} {columnFamily} {inputFile}");
    		return;
      }
    	
      val tableName = args(0)
      val columnFamily = args(1)
      val inputFile = args(2)
    	
      val sparkConf = new SparkConf().setAppName("HBaseBulkPutExampleFromFile " + 
          tableName + " " + columnFamily + " " + inputFile)
      val sc = new SparkContext(sparkConf)
      
      var rdd = sc.hadoopFile(
          inputFile, 
          classOf[TextInputFormat], 
          classOf[LongWritable], 
          classOf[Text]).map(v => {
            System.out.println("reading-" + v._2.toString())
            v._2.toString()
          })

      val conf = HBaseConfiguration.create();
	    conf.addResource(new Path("/etc/hbase/conf/core-site.xml"));
	    conf.addResource(new Path("/etc/hbase/conf/hdfs-site.xml"));
	    conf.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));

    val hbaseContext = new HBaseContext(sc, conf);
      hbaseContext.bulkPut[String](rdd,
          tableName,
          (putRecord) => {
            System.out.println("hbase-" + putRecord)
            val put = new Put(Bytes.toBytes("Value- " + putRecord))
            put.add(Bytes.toBytes("c"), Bytes.toBytes("1"), Bytes.toBytes(putRecord.length()))
            put
          },
          true);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy