最近在一个项目中做数据的分类存储,在spark中使用groupByKey后存入HBase,发现数据出现双份( 所有记录的 rowKey 是随机  唯一的 ) .经过不断的测试,发现是spark的运行参数配置的问题: spark.speculation=true , 将其改为false,问题就解决了.哎  , spark运行参数得修改要慎重...…
问题描述: 当多文本域(textarea)回车后数据存入数据库. EL表达式取出异常,值换行倒置页面报错. 问题解决: 存值脚本代码,提交前转换\n为<br/>. <script type="text/javascript"> function checkSubmit(){ //转换规则描述 var str = $('#ruleDescription').val(); var reg=new RegExp("\n","g"…
1 RDD编程实战案例一 数据样例 字段说明: 其中cid中1代表手机,2代表家具,3代表服装 1.1 计算订单分类成交金额 需求:在给定的订单数据,根据订单的分类ID进行聚合,然后管理订单分类名称,统计出某一天商品各个分类的成交金额,并保存至Mysql中 (1)法一,将json数据解析出来,直接使用 object IncomeKpi { private val logger: Logger = LoggerFactory.getLogger(IncomeKpi.getClass) def ma…
一.概述 在实时应用之中,难免会遇到往NoSql数据如HBase中写入数据的情景.题主在工作中遇到如下情景,需要实时查询某个设备ID对应的账号ID数量.踩过的坑也挺多,举其中之一,如一开始选择使用NEO4J图数据库存储设备和账号的关系,当然也有其他的数据,最终构成一个复杂的图关系,但是这个图数据库免费版是单机安装(集群要收费),在实时写入和查询关系的时候,导致我们一台服务器内存和cpu损耗严重,为了保证Hadoop集群的稳定性,只好替换掉这个数据库,采用流行的HBase.本文就HBase的使用心…
第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2.4 配置 Spark Standalone 模式2.5 配置 Spark History Server2.6 配置 Spark HA2.7 配置 Spark Yarn 模式第3章 执行 Spark 程序3.1 执行第一个 spark 程序3.2 Spark 应用提交3.3 Spark shell3…
1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): Unit = { // 创建SparkSession实例 val spark: SparkSession = SparkSession.builder() .appName(this.getClass.getSimpleName) .master("local[*]") .getOrCrea…
1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到一起执行,要成功多成功,如果失败了,可以把整个操作放弃,可以实现类似事物的功能.redis事务包含三个阶段:开始事务,命令入队,执行事务.redis的分片副本集集群不支持pipeline,redis只支持单机版的事务(pipeline),Redis的主从复制也支持pipeline(目前一些公司就是这…
Spark Streaming: Spark用于处理流式数据的模块,类似Storm 核心:DStream(离散流),就是一个RDD============================================一.Spark Streaming基础 1.什么是Spark Streaming? (*)Spark Streaming makes it easy to build scalable fault-tolerant streaming applications. (*)常见的流式处…
1. Hbase基础 1.1 hbase数据库介绍 1.简介 hbase是bigtable的开源java版本.是建立在hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写nosql的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作). 主要用来存储结构化和半结构化的松散数据. Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务) Hb…
一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分布式环境搭建 然后在spark伪分布式的环境下必须出现如下八个节点才算spark环境搭建好. 然后再在本地windows系统下有一个简单的词频统计程序. import org.apache.spark.SparkConf import org.apache.spark.SparkContext im…
Spark系列面试题 Spark面试题(一) Spark面试题(二) Spark面试题(三) Spark面试题(四) Spark面试题(五)--数据倾斜调优 Spark面试题(六)--Spark资源调优 Spark面试题(七)--Spark程序开发调优 Spark面试题(八)--Spark的Shuffle配置调优 1.程序开发调优 :避免创建重复的RDD 需要对名为"hello.txt"的HDFS文件进行一次map操作,再进行一次reduce操作.也就是说,需要对一份数据执行两次算子操…
1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试代码.这里须有一个需要提到的是,我在实现接收json文件的同时,而且还需将数据写到hbase中.写入到hbase当中采用的是批量插入的方式,即一次插入多条记录. 好了,有了前面的说明,下面来简单的说一下我实现的服务端的小程序把. 2.为了实现服务端能够监听客户端的行为,因此我在服务端采用多线程的技术…
一.执行第一个Spark程序 1.执行程序 我们执行一下Spark自带的一个例子,利用蒙特·卡罗算法求PI: 启动Spark集群后,可以在集群的任何一台机器上执行一下命令: /home/spark/spark-1.6.1-bin-hadoop2.6/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://master:7077 \ --executor-memory 1G \ --total-…
大数据之HBase数据插入优化之多线程并行插入实测案例 一.引言: 上篇文章提起关于HBase插入性能优化设计到的五个参数,从参数配置的角度给大家提供了一个性能测试环境的实验代码.根据网友的反馈,基于单线程的模式实现的数据插入毕竟有限.通过个人实测,在我的虚拟机环境下,单线程插入数据的值约为4w/s.集群指标是:CPU双核1.83,虚拟机512M内存,集群部署单点模式.本文给出了基于多线程并发模式的,测试代码案例和实测结果,希望能给大家一些启示: 二.源程序: 1 import org.apac…
摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运行第一个Spark程序. 1.Spark是什么 Spark是一个快速且通用的集群计算平台 2.Spark的特点 1)Spark是快速的 Spark扩充了流行的Mapreduce计算模型 Spark是基于内存的计算 2)Spark是通用的 Spark的设计容纳了其它分布式系统拥有的功能 批处理,迭代式…
导语:本文介绍的项目主要解决 check 和 opinion2 张历史数据表(历史数据是指当业务发生过程中的完整中间流程和结果数据)的在线查询.原实现基于 Oracle 提供存储查询服务,随着数据量的不断增加,在写入和读取过程中面临性能问题,且历史数据仅供业务查询参考,并不影响实际流程,从系统结构上来说,放在业务链条上游比较重.该项目将其置于下游数据处理 Hadoop 分布式平台来实现此需求. 背景介绍 本项目主要解决 check 和 opinion2 张历史数据表(历史数据是指当业务发生过程中…
Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos-通用的集群管理,可以在其上运行Hadoop MapReduce和一些服务应用. Hadoop YARN-Hadoop2中的资源管理器. Tip1: 在集群不是特别大,并且没有mapReduce和Spark同时运行的需求的情况下,用Standalone模式效率最高. Tip2: Spark可以在应用间(通过集…
使用IDEA运行Spark程序 1.安装IDEA 从IDEA官网下载Community版本,解压到/usr/local/idea目录下. tar –xzf ideaIC-13.1.4b.tar.gz mv idea-IC-135.1230/ /usr/local/idea 为了方便使用其bin目录下的命令,把它配置在"/etc/profile"目录下. export PATH=$PATH:/usr/local/idea/ idea-IC-135.1230/bin 2.安装Scala插件…
spark是迭代式的内存计算框架,具有很好的高可用性.sparkStreaming作为其模块之一,常被用于进行实时的流式计算.实时的流式处理系统必须是7*24运行的,同时可以从各种各样的系统错误中恢复. 在实际使用中,容错和数据无丢失显得尤为重要.最近看了官网和一些博文,整理了一下对Spark Streaming的容错和数据无丢失机制. checkPoint机制可保证其容错性.spark中的WAL用来改进恢复机制,保证数据的无丢失. checkPoint机制介绍 Spark Streaming需…
转载自:http://bigdata.51cto.com/art/201704/536499.htm Spark程序运行常见错误解决方法以及优化 task倾斜原因比较多,网络io,cpu,mem都有可能造成这个节点上的任务执行缓慢,可以去看该节点的性能监控来分析原因.以前遇到过同事在spark的一台worker上跑R的任务导致该节点spark task运行缓慢. 作者:佚名来源:数据为王|2017-04-07 09:02   一.org.apache.spark.shuffle.FetchFai…
https://cloud.tencent.com/developer/article/1004820 Spark 踩坑记:数据库(Hbase+Mysql) 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值. 最近一个实时消费者处理任务,在使用spark streaming进行实时的数据流处理时,我需要将计算好的数据更新到hbase和mysql中,所以本文对spark操作hbase和mysql的内容进行总结,并且对自己…
1.开发环境准备 scala IDE for Eclipse:版本(4.6.1) 官网下载:http://scala-ide.org/download/sdk.html 百度云盘下载:链接:http://pan.baidu.com/s/1c2NAZdA 密码:au8t scala-2.11.8.msi : 官网下载:http://www.scala-lang.org/download/2.11.8.html 百度云盘下载:链接:http://pan.baidu.com/s/1dEFlmcL 密码…
程序如下: import org.apache.spark.sql.Row; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.VoidFunction; import org.apache.spark.sql…
来自: https://community.qingcloud.com/topic/344/spark-streaming使用kafka保证数据零丢失 spark streaming从1.2开始提供了数据的零丢失,想享受这个特性,需要满足如下条件: 数据输入需要可靠的sources和可靠的receivers 应用metadata必须通过应用driver checkpoint WAL(write ahead log) 可靠的sources和receivers spark streaming可以通过…
使用Scala编写Spark程序求基站下移动用户停留时长TopN 1. 需求:根据手机基站日志计算停留时长的TopN 我们的手机之所以能够实现移动通信,是因为在全国各地有许许多多的基站,只要手机一开机,就会和附近的基站尝试建立连接,而每一次建立连接和断开连接都会被记录到移动运营商的基站服务器的日志中. 虽然我们不知道手机用户所在的具体位置,但是根据基站的位置就可以大致判断手机用户的所处的地理范围,然后商家就可以根据用户的位置信息来做一些推荐广告. 为了便于理解,我们简单模拟了基站上的一些移动用户…
执行第一个spark程序 普通模式提交任务: bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hdp-node-01:7077 \ --executor-memory 1G \ --total-executor-cores 2 \ examples/jars/spark-examples_2.11-2.0.2.jar \ 10 该算法是利用蒙特·卡罗算法求圆周率PI,通过计算机模拟大量…
当大片连续区域进行数据存储并且存储区域中数据重复性高的状况下,数据适合进行压缩.数组或者对象序列化后的数据块可以考虑压缩.所以序列化后的数据可以压缩,使数据紧缩,减少空间开销. 1. Spark对压缩方式的选择 压缩采用了两种算法:Snappy和LZF,底层分别采用了两个第三方库实现,同时可以自定义其他压缩库对Spark进行扩展.Snappy提供了更高的压缩速度,LZF提供了更高的压缩比,用户可以根据具体需求选择压缩方式.压缩格式及解编码器如下.·LZF:org.apache.spark.io.…
HBaes介绍 HBase是什么? 数据库 非关系型数据库(Not-Only-SQL) NoSQL 强依赖于HDFS(基于HDFS) 按照BigTable论文思想开发而来 面向列来存储 可以用来存储:“结构化”数据,以及“非结构化”数据 一个另新手程序员不爽的地方: HBase在查询数据的时候,只能全表扫描(最少要按照某一个区间(行键范围)扫描). 1.HBase的起源 HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持…
一.有一道很有意思的数组操作相关编程题,闲来无事用JS解决了一下,问题描述如下: (1) 键盘录入6个int类型的数据存入数组arr中: (2) 将arr数组中的内容反转: (3) 将反转后的数组角标为奇数的元素相互交换,即1和3交换,3和5交换,以此类推: (4) 将数组中最后一个角标为奇数的元素和数组中第一个角标为奇数的元素交换: (5)打印最终的数组,(实现了1—4步之后的数组) 示例:如用户输入的6个整数为[1,2,3,4,5,6]>[6,5,4,3,2,1]>[6,3,4,1,2,5…
如果将上篇内容理解为一个冗长的"铺垫",那么,从本文开始,剧情才开始正式展开.本文基于提供的样例数据,介绍了写数据的接口,RowKey定义,数据在客户端的组装,数据路由,打包分发,以及RegionServer侧将数据写入到Region中的全部流程. NoSQL漫谈 本文整体思路 前文内容回顾 示例数据 HBase可选接口介绍 表服务接口介绍 介绍几种写数据的模式 如何构建Put对象(包含RowKey定义以及列定义) 数据路由 Client侧的分组打包 Client发RPC请求到Regi…