进行地域分析  rowkey=中国_上海_201901016  value=访问次数 
 areaStartAmt.foreachRDD(rdd => {
rdd.foreachPartition(partitionOfRecords => {
// /**
// * *&**********************************************************************
// *注意事项1:在各个分区内进行hbase设置,开启连接 每个分区连接一次 避免每条每条数据进行连接
// * 注意事项2:在外部创建hbase与connect 是在diver端的代码 需要注意在foreachRDD算子进行的操作是在executor的操作 会报序列化错误
// * 注意事项3:从中可以看出,直接把 int 型的参数传入 Bytes.toBytes() 函数中,编译不会报错,但数据的格式发生错误,再显示时就会出现乱码,
// * 因此,在调用 Bytes.toBytes() 函数时,需要先将 int, double 型数据转换成 String 类型,此时即可正常显示。
// * 查询会出现乱码 int double等 需要 put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("accountNum"), Bytes.toBytes(String.valueOf(record._2)))
// * 注意事项3:使用500条一个批次提交的sql代码执行 局部更新操作 ,数据更新不知是太慢 还是未达到500条 数据库数据不正确
// * 直接使用了 val sql1 = s"insert into area_user_amt (date,country,provence,amt)
// * values('${datekey}','${countrykey}','${provencekey}','${amt}') ON DUPLICATE KEY UPDATE `amt`= '${amt}'"
// * 未使用预编译 与批次提交 实时更新 在集群模式下所以的分区与机器都访问数据库的次数过多 造成结果??
// *********************************************************************
// */ val hbaseConf = HBaseConfiguration.create()
// hbaseConf.set("hbase.rootdir", "hdfs://hadoop01:9000/hbase")
// hbaseConf.set("hbase.zookeeper.quorum", "hadoop01:2181,hadoop02:2181,hadoop03:2181")
hbaseConf.addResource("hbase-site.xml")
val connection = ConnectionFactory.createConnection(hbaseConf)
// val admin=connection.getAdmin;
val table = connection.getTable(TableName.valueOf("test1"));
if (partitionOfRecords.isEmpty) {
println("This RDD is not null but partition is null")
} else {
partitionOfRecords.foreach(record => {
val put = new Put(Bytes.toBytes(record._1))
/*
从中可以看出,直接把 int 型的参数传入 Bytes.toBytes() 函数中,编译不会报错,但数据的格式发生错误,再显示时就会出现乱码,
因此,在调用 Bytes.toBytes() 函数时,需要先将 int, double 型数据转换成 String 类型,此时即可正常显示。
***********************************************************************
*/ put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("accountNum"), Bytes.toBytes(String.valueOf(record._2)))
table.put(put)
})
}
})
      //   HbaseUtil.scanDataFromHabse(table)

关于spark进行实时日志解析,保存hbase与mysql的更多相关文章

  1. Spark Streaming实时写入数据到HBase

    一.概述 在实时应用之中,难免会遇到往NoSql数据如HBase中写入数据的情景.题主在工作中遇到如下情景,需要实时查询某个设备ID对应的账号ID数量.踩过的坑也挺多,举其中之一,如一开始选择使用NE ...

  2. 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用

    https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...

  3. 【转】Spark Streaming 实时计算在甜橙金融监控系统中的应用及优化

    系统架构介绍 整个实时监控系统的架构是先由 Flume 收集服务器产生的日志 Log 和前端埋点数据, 然后实时把这些信息发送到 Kafka 分布式发布订阅消息系统,接着由 Spark Streami ...

  4. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  5. (一个)kafka-jstorm集群实时日志分析 它 ---------kafka实时日志处理

    package com.doctor.logbackextend; import java.util.HashMap; import java.util.List; import java.util. ...

  6. 大数据技术之_19_Spark学习_03_Spark SQL 应用解析 + Spark SQL 概述、解析 、数据源、实战 + 执行 Spark SQL 查询 + JDBC/ODBC 服务器

    第1章 Spark SQL 概述1.1 什么是 Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 DataFrame1.2.3 DataS ...

  7. ELK实时日志分析平台环境部署--完整记录

    在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的ELK(+Redis)-开源实时日志分析平台的记录过程(仅依据本人的实际操作为例说明,如有误述,敬请指出)~ ==== ...

  8. ELK实时日志分析平台环境部署--完整记录(转)

    在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的ELK(+Redis)-开源实时日志分析平台的记录过程(仅依据本人的实际操作为例说明,如有误述,敬请指出)~ ==== ...

  9. Spark踩坑记——数据库(Hbase+Mysql)转

    转自:http://www.cnblogs.com/xlturing/p/spark.html 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库 ...

随机推荐

  1. sqlserver2008出现数据库主体在该数据库中拥有架构,无法删除的解决方案

    当要删除数据库中的某个用户名的时候会报错 出现数据库主体在该数据库中拥有架构,无法删除的解决方案(MicrosoftSQLServer,错误:15138) 和sql server2000不同 第一:这 ...

  2. 【剑指offer】把数组排成最小的数

    一.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 二.思路: ...

  3. select 数字/字符串/count(参数)/sum(数字) from table

    第一种的写法是增加临时列,每行的列值是写在select后的数: --1select 1 from W_EC_PLACESTATION_COLLECT t--2select 2 from W_EC_PL ...

  4. one order 处理流程

  5. Java 基础 常用API ( 正则表达式,Date类,DateFormat类,Calendar类 )

    正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个 ...

  6. watch的几种用法

    https://www.cnblogs.com/hity-tt/p/6677753.html . 亲测无误

  7. oracle 常用(一)

    常用的6个分组函数: 注意点:where字句中不能使用组函数.要用到having函数. 但是从优化角度看,尽量使用where avg :平均值           sum:求和            ...

  8. centos7上安装nodejs

    1. 确保安装编译工具 $ yum -y install gcc gcc-c++ 2. 获取官网源码 : $ wget https://nodejs.org/dist/v9.9.0/node-v9.9 ...

  9. Javascript-可莱托指数判断

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. MYSQLi数据访问查询数据

    单条件查询 <body> <div align="center" style="width:90%;"> <h1>数据查询& ...