spark streaming插入hbase
import java.sql.{DriverManager, ResultSet}
import org.apache.spark._
import org.apache.spark.streaming._
import scala.util.Random
import org.apache.hadoop.hbase.{HTableDescriptor,HColumnDescriptor,HBaseConfiguration,TableName}
import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory, Put,Table}
object Pi {
val user="root"
val password = "root"
val host="10.8.8.123"
val database="db_1"
val port=3306
val conn_str = "jdbc:mysql://"+host +":"+port+"/"+database
val tablename="achi"
val cf="a"
val qulified="name"
def CreatTableIfNotFind(conn:Connection,userTable:TableName): Unit ={
//从Connection获得 Admin 对象(相当于以前的 HAdmin)
val admin=conn.getAdmin
if(admin.tableExists(userTable)){
println("Table exists!")
//admin.disableTable(userTable)
//admin.deleteTable(userTable)
//exit()
}else{
val tableDesc=new HTableDescriptor(userTable)
tableDesc.addFamily(new HColumnDescriptor(cf.getBytes))
admin.createTable(tableDesc)
println("Create table success!")
}
}
def InsertHbase(table:Table,cf:String,qulified:String,value:String): Unit ={
val p=new Put("id001".getBytes())
p.addColumn(cf.getBytes,qulified.getBytes,value.getBytes)
table.put(p)
}
def main(args: Array[String]) {
val conf=new SparkConf().setAppName("Spark Streaming").setMaster("local[2]")
val ssc=new StreamingContext(conf,Seconds(3))
val lines=ssc.socketTextStream("localhost",9999)
val words=lines.map(_.split('|'))
words.print()
words.foreachRDD{
rdd=>rdd.foreachPartition{
pa=>
val conf=HBaseConfiguration.create()
val conn=ConnectionFactory.createConnection(conf)
val userTable=TableName.valueOf(tablename)
val table=conn.getTable(userTable)
pa.foreach{
w=>
try{
var beg = System.currentTimeMillis()
println(w(0)+w(1))
InsertHbase(table,cf,w(0),w(1))
println("***************************************************************")
println(" 耗时: " + (System.currentTimeMillis() - beg)+"ms")
println("***************************************************************")
}catch{
case _:Exception=>println("raw error!")
}
}
table.close()
conn.close()
}
}
ssc.start()
ssc.awaitTermination()
/*
Class.forName("com.mysql.jdbc.Driver").newInstance();
val conn1 = DriverManager.getConnection(conn_str,user,password)
try {
val statement = conn1.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
val rs = statement.executeQuery("select * from achi limit 10")
while (rs.next) {
println(rs.getString(1))
}
}
catch {
case _ : Exception => println("===>")
}
finally {
conn1.close
}
*/
}
}
name := "untitled"
version := "1.0"
scalaVersion := "2.10.6"
libraryDependencies++= Seq(
"mysql" % "mysql-connector-java" % "5.1.38",
"org.apache.spark" %% "spark-core" % "1.5.2",
"org.apache.spark" %% "spark-streaming" % "1.5.2",
"org.apache.hbase" % "hbase-client" % "1.1.3",
"org.apache.hbase" % "hbase-common" % "1.1.3",
"org.apache.hbase" % "hbase-server" % "1.1.3"
)
resolvers+="OS China" at "http://maven.oschina.net/content/groups/public/"
spark streaming插入hbase的更多相关文章
- Spark Streaming 入门指南
这篇博客帮你开始使用Apache Spark Streaming和HBase.Spark Streaming是核心Spark API的一个扩展,它能够处理连续数据流. Spark Streaming是 ...
- 基于Kafka+Spark Streaming+HBase实时点击流案例
背景 Kafka实时记录从数据采集工具Flume或业务系统实时接口收集数据,并作为消息缓冲组件为上游实时计算框架提供可靠数据支撑,Spark 1.3版本后支持两种整合Kafka机制(Receiver- ...
- Spark Streaming接收Kafka数据存储到Hbase
Spark Streaming接收Kafka数据存储到Hbase fly spark hbase kafka 主要参考了这篇文章https://yq.aliyun.com/articles/60712 ...
- 日志=>flume=>kafka=>spark streaming=>hbase
日志=>flume=>kafka=>spark streaming=>hbase 日志部分 #coding=UTF-8 import random import time ur ...
- Spark Streaming入门
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文将帮助您使用基于HBase的Apache Spark Streaming.Spark Streaming是Spark API核心的一个扩 ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记二十一之铭文升级版
铭文一级: DataV功能说明1)点击量分省排名/运营商访问占比 Spark SQL项目实战课程: 通过IP就能解析到省份.城市.运营商 2)浏览器访问占比/操作系统占比 Hadoop项目:userA ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记十之铭文升级版
铭文一级: 第八章:Spark Streaming进阶与案例实战 updateStateByKey算子需求:统计到目前为止累积出现的单词的个数(需要保持住以前的状态) java.lang.Illega ...
- Spark Streaming 进阶与案例实战
Spark Streaming 进阶与案例实战 1.带状态的算子: UpdateStateByKey 2.实战:计算到目前位置累积出现的单词个数写入到MySql中 1.create table CRE ...
- 某人视频中提到的 Spark Streaming 优化的几点事项
某人,并未提他的名字,是因为看的视频是1年前的,视频里他吹得厉害.我看视频时,查了一下他在视频里说的要做到的东西,结果上网一查,就看到了很多人说他骗了钱后,就不管交了学费的人了.真假无从查起.但是无风 ...
随机推荐
- tomcat中配置https
HTTPS配置中分为单向连接和双向连接,单向连接只需要服务器安装证书,客户端不需要,双向连接需要服务器和客户端都安装证书: 一.Keytool命令: 1.生成密钥对: keytool -genkey ...
- vue-loader v15、vue-loader v14及之前版本,配置css modules的区别
vue-loader v15 配置css modules: 是在 css-loader 里配置 官方文档:https://vue-loader.vuejs.org/zh/migrating.html# ...
- 自定义flume的hbase sink 的序列化程序
package com.hello.hbase; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import ...
- centos安装netcat
Linux安装swoole后,测试UDP服务需要用到netcat,然而百度了很多安装方法,并没有一个好用的.几经尝试,终于安装成功,现在就分享给大家,以供参考. 配置环境:centos6.3 1.下载 ...
- struts2+dojo实现datagrid动态刷新
实现一个普通的数据库查询功能,参考了这个帖子:http://stackoverflow.com/questions/5499453/how-to-refresh-datagrid 需要注意的是动态创建 ...
- 配置Hanlp自然语言处理进阶
中文分词 中文分词中有众多分词工具,如结巴.hanlp.盘古分词器.庖丁解牛分词等:其中庖丁解牛分词仅仅支持java,分词是HanLP最基础的功能,HanLP实现了许多种分词算法,每个分词器都支持特定 ...
- HTML:meta标签使用总结 [转载] [360浏览器 指定极速模式]
meta标签作用 META标签是HTML标记HEAD区的一个关键标签,提供文档字符集.使用语言.作者等基本信息,以及对关键词和网页等级的设定等,最大的作用是能够做搜索引擎优化(SEO). PS:便于搜 ...
- 排序算法<No.1> 【计数排序】
继上篇博文,今天我将先介绍一下什么是计数排序,将计数排序描述清楚后,再进行后续的桶排序方法解决这个问题. 通常情况下,一提到排序,大家第一反应就是比较,其实,今天我要说的这个计数排序,不是基于比较的排 ...
- springboot下多线程开发注意事项
基于springboot的多线程程序开发过程中,由于本身也需要注入spring容器进行管理,才能发挥springboot的优势.所以这篇文字主要用来记录开发中两者结合时需要注意的一些事项. 第一步我们 ...
- Android app内存限制OOM
Android系统的每个app做了内存限制,版本的android系统,不同的设备对每个app的内存限制可能有所不同,从早期的16M ,32M到现在的256M,384M...虽然内存增大了,但是不代表就 ...