Spark写入HBase(Bulk方式)】的更多相关文章

作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 大家都知道用mapreduce或者spark写入已知的hbase中的表时,直接在mapreduce或者spark的driver class中声明如下代码 job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, tablename); 随后mapreduce在mapper或者reducer中直接context写入即可,而spark则是…
在使用Spark时经常需要把数据落入HBase中,如果使用普通的Java API,写入会速度很慢.还好Spark提供了Bulk写入方式的接口.那么Bulk写入与普通写入相比有什么优势呢? BulkLoad不会写WAL,也不会产生flush以及split. 如果我们大量调用PUT接口插入数据,可能会导致大量的GC操作.除了影响性能之外,严重时甚至可能会对HBase节点的稳定性造成影响.但是采用Bulk就不会有这个顾虑. 过程中没有大量的接口调用消耗性能 下面给出完整代码: import org.a…
一.spark写入hbase hbase client以put方式封装数据,并支持逐条或批量插入.spark中内置saveAsHadoopDataset和saveAsNewAPIHadoopDataset两种方式写入hbase.为此,将同样的数据插入其中对比性能. 依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --> <dependency> <groupId>org.…
Spark是目前最流行的分布式计算框架,而HBase则是在HDFS之上的列式分布式存储引擎,基于Spark做离线或者实时计算,数据结果保存在HBase中是目前很流行的做法.例如用户画像.单品画像.推荐系统等都可以用HBase作为存储媒介,供客户端使用. 因此Spark如何向HBase中写数据就成为很重要的一个环节了.本文将会介绍三种写入的方式,其中一种还在期待中,暂且官网即可... 代码在spark 2.2.0版本亲测 1. 基于HBase API批量写入 第一种是最简单的使用方式了,就是基于R…
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputFormat来读写hbase,如下代码所示 简单解释下,用sc.newAPIHadoopRDD根据conf中配置好的scan来从Hbase的数据列族中读取包含(ImmutableBytesWritable, Result)的RDD, 随后取出rowkey和value的键值对儿利用StatCounter进行一…
1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到一起执行,要成功多成功,如果失败了,可以把整个操作放弃,可以实现类似事物的功能.redis事务包含三个阶段:开始事务,命令入队,执行事务.redis的分片副本集集群不支持pipeline,redis只支持单机版的事务(pipeline),Redis的主从复制也支持pipeline(目前一些公司就是这…
参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7115(出处: about云开发) 1.Yarn模式由谁来作为客户端提交作业给YARN? 2.SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly的作用是什么? 3.Standalone 模式dist目录的作用是什么? 4.recover…
16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技术专家天梧.阿里巴巴中间件技术部资深技术专家纪君祥将给大家带来Hadoop.Spark.HBase.JStorm Turbo等内容. 无谓:Hadoop过去现在未来,从阿里云梯到E-MapReduce 阿里云高级技术专家 无谓 从开辟大数据先河至现在,风雨十年,Hadoop已成为企业的通用大数据框架…
一.现象二.原因排查2.1 SparkStreaming程序排查2.2 Kafka数据验证2.3 查看OGG源码2.3.1 生成Kafka消息类2.3.2 Kafka配置类2.3.3 Kafka 消息发送类2.3.4 Kafka 分区获取方式三.结论 一.现象 目前我们的数据是通过OGG->Kafka->Spark Streaming->HBase.由于之前我们发现HBase的列表put无法保证顺序,因此改了程序,如果是在同一个SparkStreaming的批次里面对同一条数据进行操作,…
分布式结构化存储系统-HBase访问方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HBase提供了多种访问方式,包括HBase shell,HBase API,数据收集组件(比如Flume,Sqoop等),上层算框架以及Apache Phoenix等,本篇博客将详细介绍这几种方式. 一.HBase Shell HDFS提供了丰富的shell命令让用户更加容易管理HBase集群,你可以通过“$HBASE_HOME/bin/hbase shell”命令进入交互式命令后,并输…
Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法) 2.sparkstreaming整合kafka实现exactly-once语义 3.sparkstreaming同时消费多个topic的数据实现exactly-once的语义 4.spark读取hbase数据(newAPIHadoopRDD方式) 5.spark读取hbase中的数据 6.spa…
业务需求说明,由于公司数据中心处于刚开始部署的阶段,这需要涉及其它部分将数据全部汇总到数据中心,这实现的方式是同上传json文件,通过采用socket&serversocket实现传输. 其中,服务端采用多线程的方式,实现多用户传输的目的.并且实现可以将数据写入到hbase中. 具体步骤如下: 1.首先编写客户端的代码: package com.yiban.datacenter.ToHbaseFromJson; import java.io.BufferedReader; import java…
def main(args: Array[String]) { val sparkConf = new SparkConf().setMaster("local").setAppName("cocapp").set("spark.kryo.registrator", classOf[HBaseConfiguration].getName) .set("spark.executor.memory", "4g"…
HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本.这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API.虽然 1.0.0 兼容旧版本的 API,不过还是应该尽早地来熟悉下新版API.并且了解下如何与当下正红的 Spark 结合,进行数据的写入与读取.鉴于国内外有关 HBase 1.0.0 新 API 的资料甚少,故作此文. 本文将分两部分介绍,第一部分讲解使用 HBase 新版 API 进行 CRUD 基本操作:第二部分讲解如何将 Spark 内的…
前言 在之前的大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 中介绍了集群的环境搭建,但是在使用hive进行数据查询的时候会非常的慢,因为hive默认使用的引擎是MapReduce.因此就将spark作为hive的引擎来对hbase进行查询,在成功的整合之后,我将如何整合的过程写成本篇博文.具体如下! 事前准备 在进行整合之前,首先确保Hive.HBase.Spark的环境已经搭建成功!如果没有成功搭建,具体可以看我之前写的大数据学习系…
将数据导入到HBase有三种方式:(1) Mapreduce,输出为TableOutputFormat.(2) 用HBase API .(3)Bulk Loading.对于大量的数据入库,第三种数据是最为有效的. 下图描述了Bulk Loading的过程:先将数据(MySQL ,Oracle ,文本文件等)加载到HDFS,通过MapReduce 将数据做成HFile (HFileOutPutForm).然后使用HBase提供的CompleteBulkLoad(LoadIncrementalHFi…
一. Hbase的region 我们先简单介绍下Hbase的架构和Hbase的region: 从物理集群的角度看,Hbase集群中,由一个Hmaster管理多个HRegionServer,其中每个HRegionServer都对应一台物理机器,一台HRegionServer服务器上又可以有多个Hregion(以下简称region).要读取一个数据的时候,首先要先找到存放这个数据的region.而Spark在读取Hbase的时候,读取的Rdd会根据Hbase的region数量划分stage.所以当r…
1 Spark读HBase Spark读HBase黑名单数据,过滤出当日新增userid,并与mysql黑名单表内userid去重后,写入mysql. def main(args: Array[String]): Unit = { @volatile var broadcastMysqlUserids: Broadcast[Array[String]] = null val today = args(0) val sourceHBaseTable = PropertiesUtil.getProp…
今日在windows上用spark写hbase的函数 saveAsHadoopDataset 写hbase数据库的时候,遇到Will not attempt to authenticate using SASL (unknown error) 错误,程序卡在那里不动了,百度后发现是我的windows上面hosts文件没有配置. 观察ambari的hosts显示 然后我开始配置hosts ip1 a.hadoop2.com ip2 a.hadoop3.com ip3 a.hadoop4.com 配…
本文将分两部分介绍,第一部分讲解使用 HBase 新版 API 进行 CRUD 基本操作:第二部分讲解如何将 Spark 内的 RDDs 写入 HBase 的表中,反之,HBase 中的表又是如何以 RDDs 形式加载进 Spark 内的. 环境配置 为了避免版本不一致带来不必要的麻烦,API 和 HBase环境都是 1.0.0 版本.HBase 为单机模式,分布式模式的使用方法类似,只需要修改HBaseConfiguration的配置即可. 开发环境中使用 SBT 加载依赖项 name :=…
BHase基本知识 基本概念 自我介绍 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”. HBase在Hadoop之上提供了类似于Bigtable的能力. HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库. 另一个不同的是HBase基于列的而不是基于行的模式. 作为独立的体系,有其所属的资源:HBase教程 必要性 Ref: How and When should…
package cn.piesat.controller import java.text.{DecimalFormat, SimpleDateFormat}import java.utilimport java.util.concurrent.{CountDownLatch, Executors, Future} import ba.common.log.enums.{LogLevel, LogType}import ba.common.log.utils.LogUtilimport cn.p…
一.使用sbt引入hbase依赖包 "org.apache.hbase" % "hbase-server" % "2.1.0", "org.apache.hbase" % "hbase-common" % "2.1.0", "org.apache.hbase" % "hbase-client" % "2.1.0", "…
package main.scala.com.web.zhangyong168.cn.spark.java; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.conf.Configuration; import org.apach…
大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: JavaRDD<Integer> myRDD = sc.parallelize(Arrays.asList(1,2,3)); Scala版本如下: val myRDD= sc.parallelize(List(1,2,3)) 这种方式很简单,很容易就可以将一个集合中的数据变成RDD的初始化值:更常见的是(2).从文本中读取数据…
spark基础知识请参考spark官网:http://spark.apache.org/docs/1.2.1/quick-start.html 无论是mapreduce还是spark ,分布式框架的性能优化方向大致分为:负载均衡.网络传输和磁盘I/O 这三块.而spark是基于内存的计算框架,因此在编写应用时需要充分利用其内存计算特征.本篇主要针对 spark应用中的join问题进行讨论,关于集群参数的优化会在另一篇文章中提及. 在传统的数据库平台和分布式计算平台,join的性能消耗都是很可观的…
于Spark它是一个计算框架,于Spark环境,不仅支持单个文件操作,HDFS档,同时也可以使用Spark对Hbase操作. 从企业的数据源HBase取出.这涉及阅读hbase数据,在本文中尽快为了尽可能地让我们可以实践和操作Hbase.Spark Shell 来进行Hbase操作. 一.环境: Haoop2.2.0 Hbase版本号0.96.2-hadoop2, r1581096 Spark1.0.0 本文如果环境已经搭建好,Spark环境搭建可见Spark Haoop集群搭建 Hadoop2…
1.Storm整合Kafka 使用Kafka作为数据源,起到缓冲的作用 // 配置Kafka订阅的Topic,以及zookeeper中数据节点目录和名字 String zks = KafkaProperties.Connect; BrokerHosts brokerHosts = new ZkHosts(zks); String topic = KafkaProperties.topic; String group = KafkaProperties.groupId; SpoutConfig s…
hbase 2.0.2 hbase standalone方式启动报错: 2019-01-17 15:49:08,730 ERROR [Thread-24] master.HMaster: Failed to become active master java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failu…
Spark读写HBase示例 1.HBase shell查看表结构 hbase(main)::> desc 'SDAS_Person' Table SDAS_Person is ENABLED SDAS_Person COLUMN FAMILIES DESCRIPTION {NAME => ', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => ', BLOCKCACHE =…