• 文件系统类数据读取与保存HBase_大数据培训


    HBase

    由于 org.apache.hadoop.hbase.mapreduce.TableInputFormat 类的实现,Spark 可以通过Hadoop输入格式访问HBase。这个输入格式会返回键值对数据,其中键的类型为org. apache.hadoop.hbase.io.ImmutableBytesWritable,而值的类型为org.apache.hadoop.hbase.client.

    Result。

    (1)添加依赖

    (2)从HBase读取数据

    package com.atguigu

    import org.apache.hadoop.conf.Configuration

    import org.apache.hadoop.hbase.HBaseConfiguration

    import org.apache.hadoop.hbase.client.Result

    import org.apache.hadoop.hbase.io.ImmutableBytesWritable

    import org.apache.hadoop.hbase.mapreduce.TableInputFormat

    import org.apache.spark.rdd.RDD

    import org.apache.spark.{SparkConf, SparkContext}

    import org.apache.hadoop.hbase.util.Bytes

    object HBaseSpark {

      def main(args: Array[String]): Unit = {

        //创建spark配置信息

        val sparkConf: SparkConf = new SparkConf().setMaster(“local[*]”).setAppName(“JdbcRDD”)

        //创建SparkContext

        val sc = new SparkContext(sparkConf)

        //构建HBase配置信息

        val conf: Configuration = HBaseConfiguration.create()

        conf.set(“hbase.zookeeper.quorum”, “hadoop102,hadoop103,hadoop104”)

        conf.set(TableInputFormat.INPUT_TABLE, “rddtable”)

        //从HBase读取数据形成RDD

        val hbaseRDD: RDD[(ImmutableBytesWritable, Result)] = sc.newAPIHadoopRDD(

          conf,

          classOf[TableInputFormat],

          classOf[ImmutableBytesWritable],

          classOf[Result])

        val count: Long = hbaseRDD.count()

        println(count)

        //对hbaseRDD进行处理

        hbaseRDD.foreach {

          case (_, result) =>

            val key: String = Bytes.toString(result.getRow)

            val name: String = Bytes.toString(result.getValue(Bytes.toBytes(“info”), Bytes.toBytes(“name”)))

            val color: String = Bytes.toString(result.getValue(Bytes.toBytes(“info”), Bytes.toBytes(“color”)))

            println(“RowKey:” + key + “,Name:” + name + “,Color:” + color)

        }

        //关闭连接

        sc.stop()

      }

    }

    3)往HBase写入

  • 相关阅读:
    StarRocks 面试题及参考答案详解(万字详解)
    企业为什么难创新?5个常见的创新障碍
    redis的详解和项目应用(一)
    c++ 图的重构识别
    FPGA-结合协议时序实现UART收发器(四):串口驱动模块uart_drive、例化uart_rx、uart_tx
    redis的实际使用
    「Pytorch」roLabelImg 图像异常旋转 bug
    mysql 插入sql语句,把当前时间格式话到时分秒 yyyy-MM-dd
    BurpSuite 请求/响应解密插件开发
    PHP毕业设计毕设辅导课(1):PHP 基础语法
  • 原文地址:https://blog.csdn.net/zjjcchina/article/details/126370584