自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Kafka Streams实战-KTable API

本文会介绍: 流和表的关系 数据更新和KTable的配置 聚合、窗口和流表连接 全局KTable 1. 流和表的关系 1.1 数据更新流 假设我们有一个股票价格的数据流,每个数据包含股票的ID,timestamp和股价,要把这些数据写入到关系型数据库的表格里,如果使用股票的ID作为主键...

2019-01-31 11:41:42 2292 2

原创 Kafka Streams实战-流和状态

本文会介绍: 有状态操作 使用状态存储 连接两个流 Kafka Streams的timestamps 1. 有状态操作 1.1 转换处理器 KStream.transformValues是最基本的有状态方法,下图展示了它工作的原理: 此方法在语义上与KStream.mapValu...

2018-12-14 09:31:51 1903 0

原创 Kafka Streams实战-开发入门

本文会介绍: Kafka Streams APIs Kafka Streams的Hello World例子 深入探索基于Kafka Streams的ZMart应用程序 把输入流拆分为多个流 1. Streams APIs Kafka有两类流APIs,low-level Processor...

2018-11-13 09:54:34 4892 58

原创 Kafka基础-流处理

1. 什么是流处理? 首先,让我们说一下什么是数据流(也称为事件流)?它是无边界数据集的抽象说法,无边界意味着无限且不断增长,因为随着时间的推移,新数据会不断地到来。 除了无边界的特性之外,事件流模型还有其它几个属性: 1.1 事件流是有序的 这在交易事件里是最容易理解的,先在账户里存钱然...

2018-10-26 17:10:20 2635 4

原创 Kafka基础-可靠性数据传输

可靠的数据传输是系统的一个必要属性,就像性能一样,必须从一开始就设计到系统中。Apache Kafka在可靠的数据传输方面非常灵活,支持非常多的配置参数。 1. 可靠性保证 当我们讨论可靠性时,通常会提到保证这个术语。最著名的可靠性保证ACID,它是关系型数据库普遍支持的标准可靠性保证。理解K...

2018-09-17 14:01:50 852 0

原创 Kafka基础-内部原理

理解Kafka的内部原理可以有助于故障的排除,因此本文会着重介绍以下三个部分: Kafka复制的工作原理 Kafka是怎样处理生产者和消费者的请求 Kafka是怎样储存数据,例如文件格式和索引 1. 集群成员 Kafka使用Apache Zookeeper来维护当前集群的成员列表,每个br...

2018-08-21 16:39:25 825 0

原创 Kafka基础-消费者读取消息

下文介绍如何使用Java从Kafka订阅和读取消息,它和从其它消息系统读取消息有点不同,涉及到一些独特的概念。所以我们要先了解这些概念: 1. Kafka消费者概念 1.1 消费者和消费者组 当你只有一个消费者而且生产者发送消息的速率比消费者读取消息的速率要快的时候,处理新消息就会造成延时,...

2018-07-31 14:18:36 5874 0

原创 Kafka基础-生产者发送消息

无论你是使用Kafka作为队列,消息总线还是数据存储平台,你都会用到生产者,用于发送数据到Kafka。下文介绍如何使用Java来发送消息到Kafka。1. 发送消息的主要步骤 首先创建ProducerRecord对象,此对象除了包括需要发送的数据value之外还必须指定topic,另外也可以指定...

2018-06-20 15:12:13 13447 2

原创 HDFS集群版本升级执行步骤

1 概述本文档用于没有配置高可用的HDFS集群版本升级执行的详细步骤说明,版本由2.7.3升级到2.9.0。2 前提条件假设已有安装配置好整合了Kerberos的HDFS集群和YARN,本文使用5台服务器,角色分别为:hadoop0:NameNode、SecondaryNameNode、Resou...

2018-05-31 15:07:04 1166 0

原创 HDFS集群整合Kerberos配置步骤

1 概述本文档用于HDFS整合Kerberos配置的详细步骤说明,版本分别为2.7.3和1.16。2 前提条件假设已有安装配置好的HDFS集群和YARN,本文使用4台服务器,角色分别为:192.168.1.10:NameNode、SecondaryNameNode、ResourceManager1...

2018-05-25 16:44:44 2454 0

原创 Spark机器学习之协同过滤算法使用-Java篇

协同过滤是普遍用于推荐系统,这些技术旨在填补用户和项目关联矩阵里面缺少的值。Spark目前实现基于模型的协同过滤,其中模型的用户和项目由一组小的潜在因素所描述,可用于预测缺少的值。Spark使用交替最小二乘法alternating least squares(ALS)算法来学习这些潜在因素。 1...

2017-08-30 17:38:14 2898 0

原创 org.apache.spark.shuffle.FetchFailedException:Failed to connect to异常

最近在做Spark的性能优化,测试使用不同CPU核数和内存对计算性能的影响,由于是在测试集群进行测试的,硬件配置比生产上面的要少和低,遇到了不少的问题,其中一个值得说一下的就是org.apache.spark.shuffle.FetchFailedException:Failed to conne...

2017-08-01 00:41:17 6464 0

翻译 官方HDFS架构设计原理说明(下)

玩了HDFS已经有好多年了,之前一直都是边学边用,直到现在才真正有时间记录一下学到的知识O(∩_∩)O 6. 文件系统元数据的持久化 HDFS的命名空间是由命名节点NameNode来存储的。NameNode使用了一个叫EditLog的事务日志来持续记录文件系统元数据的每一次更改,例如在...

2017-06-07 14:48:42 915 0

翻译 官方HDFS架构设计原理说明(上)

玩了HDFS已经有好多年了,之前一直都是边学边用,直到现在才真正有时间记录一下学到的知识O(∩_∩)O 1. 引言 HDFS全称是Hadoop Distributed File System,Hadoop分布式文件系统,顾名思义它是一个分布式的文件系统,设计于运行在普通硬件之上。它和现在的分布...

2017-05-08 09:58:36 4810 0

原创 当对象包含嵌套对象时,使用Spark SQL执行sql查询抛出scala.MatchError异常

1. 运行环境 本文使用Spark SQL 2.1.0版本 2. 使用代码 例如有个对象,除了包含简单的基本数据String,int之外还包含一个Location对象,就是所说的嵌套对象: import java.io.Serializable; public class...

2017-04-13 09:44:49 4737 0

原创 执行stop-dfs.sh后无法停止namenodes、datanodes和secondary namenodes

1. 环境 本文使用Hadoop 2.7.3版本 2. 错误信息 执行stop-dfs.sh后显示以下信息: Stopping namenodes on [master] master: no namenode to stop slave1: no datanode to ...

2017-04-07 11:23:57 1861 0

原创 SparkSQL编程指南之Java篇三-数据源(下)

4. Hive Tables Spark SQL支持对Hive的读写操作。然而因为Hive有很多依赖包,所以这些依赖包没有包含在默认的Spark包里面。如果Hive依赖的包能在classpath找到,Spark将会自动加载它们。需要注意的是,这些Hive依赖包必须复制到所有的工作节点上,因为...

2017-03-10 14:09:35 5775 5

原创 SparkSQL编程指南之Java篇二-数据源(上)

Spark SQL通过DataFrame接口支持各种不同数据源的操作。一个DataFrame可以进行相关的转换操作,也可以用于创建临时视图。注册DataFrame为一个临时视图可以允许你对其数据执行SQL查询。本文首先会介绍使用Spark数据源加载和保存数据的一般方法,然后对内置数据源进行详细介绍...

2017-03-10 11:11:41 1832 0

原创 SparkSQL编程指南之Java篇一-入门

1. Spark SQL的Java开发包 Spark SQL提供Java的开发包,当前最新版本是2.1.0版本:spark-sql_2.11-2.1.0.jar,可以从下面链接下载: http://central.maven.org/maven2/org/apache/spark/spark-...

2017-02-16 14:24:29 14637 0

原创 Spark集群安装配置步骤

本文使用3台测试服务器,下面是各服务器的角色: - node1:Worker - node2:Worker - node3:Master, Worker 1. 配置hosts文件 本文使用RedHat是在 /etc/hosts,新增3台测试服务器的ip/hostname对应关...

2017-02-10 13:48:23 3937 0

原创 Hadoop分布式集群安装配置步骤

之前介绍过Hadoop伪分布式模式的安装配置步骤,现在记录一下分布式集群的安装配置步骤,本文使用3台测试服务器,下面是各服务器的角色:   - node1:NameNode, SecondaryNameNode, DataNode, NodeManager - node2:DataNode, No...

2017-02-07 16:35:10 1688 0

原创 java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read

环境: - Spark 2.11-2.0.2 - Hadoop 2.6.5 使用Spark连接HDFS,在高并发的时候,偶尔会遇到以下异常: 2017-01-26 10:30:29,079 ERROR org.apache.hadoop.hdfs.server.datanode.DataNo...

2017-02-04 10:04:07 16768 0

原创 Spark编程指南入门之Java篇七-共享变量

11. 共享变量 通常情况下,当一个传递给Spark操作的函数(例如map或者reduce)在远程集群节点执行时,函数使用的所有变量都是原变量的副本。这些变量被复制到集群的每一台服务器,在各个远程服务器更新的变量是不会更新回驱动节点程序的。不同任务读写共享变量的效率是比较低的,然而,Spark提...

2017-01-20 09:33:49 1474 0

原创 java.lang.NoSuchMethodError: org.apache.hadoop.fs.FSOutputSummer.<init>(Ljava/util/zip/Checksum;II)V

环境: - Spark 2.11-2.0.2版本(在Eclipse下面使用Maven引入spark-core_2.11-2.0.2.jar) - Hadoop 2.6.5版本 使用Spark的Java APIs(saveAsTextFile方法)把大量的日志导入远程的HDFS,遇到下面的j...

2017-01-16 15:56:01 1644 0

原创 Spark编程指南入门之Java篇六-RDD持久化介绍

10. RDD持久化 Spark其中一个重要的功能是持久化(或缓存)数据到内存。当持久化一个RDD时,每一个节点会把计算后的分区数据保存在内存里面,然后后续的操作可以直接重用内存里的数据。这样可以提高后续操作的计算速度(通常是10倍以上)。缓存是迭代算法和快速交互式使用的关键工具。 RDD的持...

2017-01-12 16:47:16 1472 0

原创 Spark编程指南入门之Java篇五-数据重组Shuffle介绍

9. 数据重组Shuffle介绍 Spark的某些操作会触发数据重组Shuffle事件。Shuffle是Spark对各分区的数据进行重新分布的机制,是一个复杂而且代价较高的操作,因为一般需要在执行器和数据节点之间进行数据复制。 9.1 背景 我们可以通过reduceByKey操作的例子来理解...

2017-01-11 15:55:46 1381 1

原创 Spark编程指南入门之Java篇四-常用Actions操作

8. 常用的Actions操作 T reduce(Function2 f) 使用指定的函数f聚合数据集中的元素,该函数把数据集中的每2个元素聚合成一个,一直递归直到得出最后一个元素 java.util.List collect() 以List形式返回数据集的所有元素到驱动程序节点,通常...

2017-01-10 11:57:52 1180 0

原创 Spark编程指南入门之Java篇三-常用Transformations操作

7. 常用的转换Transformations操作 JavaRDD map(Function f) 将数据集的每一个元素按指定的函数f转换为一个新的RDD JavaRDD filter(Function f) 对数据集中的元素进行过滤,将符合指定函数f条件的元素组成为一个新的RDD Java...

2016-12-28 16:20:18 1828 0

原创 Spark编程指南入门之Java篇二-基本操作

4. RDD的操作 4.1 基本操作 RDD有2种类型的操作,一种是转换transformations,它基于一个存在的数据集创建出一个新的数据集;另一种是行动actions,它通过对一个存在的数据集进行运算得出结果。例如,map方法是转换操作,它将数据集的每一个元素按指定的函数转换为一个新的...

2016-12-27 16:03:12 4153 2

原创 Spark编程指南入门之Java篇一-基本知识

1. Spark的Java开发包 Spark提供Java的开发包,当前最新版本是2.0.2版本:spark-core_2.11-2.0.2.jar,可以从下面链接下载: http://central.maven.org/maven2/org/apache/spark/spark-core_2....

2016-12-16 16:27:38 22346 4

原创 Java7之try-with-resources语句自动关闭资源

1. 使用finally关闭资源 在Java 7之前,如果要关闭一个资源的话,可以使用finally语句,不管try语句里面的代码是否正常执行完毕或出现异常,例如: static String readFirstLineFromFileWithFinallyBlock(String path)...

2016-12-09 11:48:23 565 0

原创 Hadoop伪分布式模式安装配置步骤

最近要升级Hadoop的版本,需要重新安装测试环境,特此记录一下安装配置步骤 O(∩_∩)O 1. 依赖软件   - Java:Hadoop 2.7及以上版本需要Java 7,之前的版本支持Java 6,本文使用Hadoop 2.6.5版本,所以安装Java 6就可以了 - ssh 2....

2016-11-29 11:29:11 962 0

原创 Redis的集群创建步骤(非redis-trib.rb脚本方式)

本文目的仅用于测试验证创建集群的相关步骤,所以只是采用最简单的配置在同一个服务器部署了由3个节点组成的Redis集群 1. 创建集群步骤,本文使用Redis 3.2.5版本 1.1 创建配置文件目录,使用的端口分别为5000,5001和5002 [root@xxx ~]# cd /opt/r...

2016-11-21 15:55:42 3085 3

原创 Redis的集群指南和配置参数

本文参考了Redis的英文官方指南 http://redis.io/topics/cluster-tutorial 1. 集群功能 - 能够自动把数据切分到集群的各个节点 - 当集群中的部分节点故障或者无法与集群通讯时,集群仍然可以继续运作 2. 集群分片 Redis集群使用的是一...

2016-11-18 17:26:05 1613 0

原创 Redis的复制原理和配置参数

Redis使用的是master-slave主从复制模式,从2.8版本开始,这个过程是异步的。 1. 工作原理 当一个slave首次或重新连接到master的时候,会向master发送一个PSYNC命令(2.8版本之前是SYNC命令)要求同步数据。 1.1 全量同步 Full resyn...

2016-11-10 09:01:58 1291 1

原创 下载编译安装Apache HTTP Server 2.4.23以及配置HTTP/HTTPS反向代理

一,依赖软件:   - Apache Portable Runtime (APR) 1.5.2 (大小807KB) - Apache Portable Runtime Utility (APR-Util) 1.5.4(大小678KB) - Perl-Compatible Regular Expre...

2016-10-24 11:40:45 4927 0

原创 Redis的2种持久化方式Snapshot(RDB)和Append-only file(AOF)的配置和对比

- Redis有2种持久化的方式,一种是Snapshot,就是保存某一时刻的数据在磁盘;另外一种是append-only file(AOF),就是以追加的方式记录所有写操作的命令到磁盘文件里面。 1,Snapshot 1.1 在redis.conf里面,配置的参数主要包括以下部分: save...

2016-10-19 14:38:40 4647 0

原创 Spark升级到2.0后测试stream-kafka测试报java.lang.NoClassDefFoundError: org/apache/spark/Logging错误

- 最近从Spark 1.5.2升级到2.0之后,运行测试代码spark-stream-kafka报以下错误: java.lang.NoClassDefFoundError: org/apache/spark/Logging at java.lang.ClassLoader.defineCla...

2016-09-21 16:28:51 14048 47

原创 Spark命令行测试转换RDD to DataFrame报Relative path in absolute URI错误-Win7

无聊玩了一下Spark命令行模式的命令,测试读写Parquet格式的操作,发现执行personRDD.toDF时候报以下错误: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable...

2016-09-14 16:32:23 2680 0

原创 Spark下载和配置-Win7

-下载 下载页面的link:http://spark.apache.org/downloads.html 1,Choose a Spark release 选择需要下载的Spark版本,我这里使用最新的版本 2,Choose a package type 选择需要下载的类型,因为我已经安装...

2016-09-09 14:37:31 2610 0

提示
确定要删除当前文章?
取消 删除