Hadoop无法访问50070端口 发表于 2019-06-16 | 分类于 Hadoop | | 阅读次数: 最近在搭建 Hadoop(3.1.2)环境时遇到了一件比较奇葩的问题。Hadoop 配置文件正常,各个守护进程正常启动,但是启动后无法在浏览器中访问 50070 端口,但是又可以访问 8088 端口: 参考网上的各中解决方案,有的方案没有解决我的问题,最终发现如下方案可以解决我的问题。有可能是 N ... 阅读全文 »
Storm与Redis集成 发表于 2019-05-27 | 分类于 Storm | | 阅读次数: Storm-redis 使用 Jedis 作为 Redis 客户端。 1. 如何使用添加Maven依赖:<dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-r ... 阅读全文 »
Storm BasicBolt vs RichBolt 发表于 2019-05-25 | 分类于 Storm | | 阅读次数: IComponent 是所有组件的接口,例如 IBasicBolt、IRichBolt、IBatchBolt 都继承自 IComponent,为拓扑中所有组件提供共同的方法。BaseComponent 是 Storm 提供的一个比较方便的抽象类,这个抽象类及其子类都或多或少实现了其接口定义的部分方法 ... 阅读全文 »
使用Redis Bitmap简单快速实时计算指标 发表于 2019-04-27 | 分类于 Redis | | 阅读次数: 传统上,度量指标一般由批处理作业执行(每小时运行,每天运行等)。Redis 中的 Bitmap 可以允许我们实时计算指标,并且非常节省空间。在1.28亿用户场景中,经典度量指标(如’日活’)在 MacBook Pro上只需不到50毫秒,而且只需要16 MB内存。 1. Bitmap 又可以称之为 B ... 阅读全文 »
影响Flink有状态函数和算子性能的3个重要因素 发表于 2019-04-22 | 分类于 Flink | | 阅读次数: 本文重点介绍开发人员在有状态流处理应用中使用 Flink 的 Keyed State 的函数或算子评估性能时应牢记的3个重要因素。 Keyed State 是 Flink 中两种状态中的其中一种,另一种是 Operator State。顾名思义,Keyed State 绑定到键,只适合处理来自 Ke ... 阅读全文 »
Flink如何实现新的流处理应用第二部分:版本化状态 发表于 2019-04-21 | 分类于 Flink | | 阅读次数: 这是我们关于 Flink 如何实现新的流处理应用系列中的第二篇博文。第一部分介绍了事件时间和乱序处理。 这篇文章是关于版本化应用程序状态,后面是关于会话和高级窗口的文章。 1. 有状态数据流处理流处理可以分为无状态处理和有状态处理。无状态流处理应用仅是接收事件,然后基于接收的单个事件的信息产生某种响 ... 阅读全文 »
4个步骤让Flink应用程序达到生产状态 发表于 2019-04-20 | 分类于 Flink | | 阅读次数: 这篇文章阐述了 Flink 应用程序达到生产状态所必须的配置步骤。在以下部分中,我们概述了在 Flink 作业达到生产状态之前技术领导、DevOps、工程师们需要仔细考虑的重要配置参数。Flink 为大多数配置选项都提供了开箱即用的默认选项,在许多情况下它们是POC阶段(概念验证)或探索 Flink ... 阅读全文 »
有状态流处理:Flink状态后端 发表于 2019-04-19 | 分类于 Flink | | 阅读次数: 这篇文章我们将深入探讨有状态流处理,更确切地说是 Flink 中可用的不同状态后端。在以下部分,我们将介绍 Flink 的3个状态后端,它们的局限性以及根据具体案例需求选择最合适的状态后端。 在有状态的流处理中,当开发人员启用了 Flink 中的检查点功能时,状态会持久化存储以防止数据的丢失并确保发 ... 阅读全文 »
Flink 如何使用ProcessFunction 发表于 2019-04-07 | 分类于 Flink | | 阅读次数: 1. ProcessFunctionProcessFunction 函数是低阶流处理算子,可以访问流应用程序所有(非循环)基本构建块: 事件 (数据流元素) 状态 (容错和一致性) 定时器 (事件时间和处理时间) ProcessFunction 可以被认为是一种提供了对 KeyedState 和 ... 阅读全文 »
Flink如何管理Kafka的消费偏移量 发表于 2019-04-03 | 分类于 Flink | | 阅读次数: 在这篇文章中我们将结合例子逐步讲解 Flink 是如何与 Kafka 工作来确保将 Kafka Topic 中的消息以 Exactly-Once 语义处理。 检查点(Checkpoint)是一种能使 Flink 从故障恢复的内部机制。检查点是 Flink 应用程序状态的一致性副本,包括了输入的读取位 ... 阅读全文 »
Flink 轻松理解Watermark 发表于 2019-03-20 | 分类于 Flink | | 阅读次数: 当我们第一次使用 Flink 时,可能会对 Watermark 感到困惑,其实 Watermark 并不复杂。让我们通过一个简单的例子来说明为什么我们需要 Watermark,以及它是如何工作的。 在下文中的例子中,我们有一个带有时间戳的事件流,这些事件并不是按顺序到达的。图中的数字表示事件发生的时 ... 阅读全文 »
Flink 状态管理和容错机制介绍 发表于 2019-03-15 | 分类于 Flink | | 阅读次数: 本文主要内容如下: 有状态的流数据处理; Flink中的状态接口; 状态管理和容错机制实现; 1. 有状态的流数据处理1.1 什么是有状态的计算计算任务的结果不仅仅依赖于输入,还依赖于它的当前状态,其实大多数的计算都是有状态的计算。比如wordcount,给一些word,其计算它的count,这 ... 阅读全文 »
Flink1.7发布中的新功能 发表于 2019-02-18 | 分类于 Flink | | 阅读次数: Apache Flink 社区正式宣布 Apache Flink 1.7.0 发布。最新版本包括解决了420多个问题以及令人兴奋的新增功能,我们将在本文进行描述。有关更多的详细信息请查看完整目录。 Flink 1.7.0 版本与 1.xy 版本使用 @Public 注解注释的API兼容。该版本现已上 ... 阅读全文 »
Flink如何实现端到端的Exactly-Once处理语义 发表于 2019-02-10 | 分类于 Flink | | 阅读次数: 这篇文章改编自2017年柏林Flink Forward上Piotr Nowojski的演讲。你可以在Flink Forward Berlin网站上找到幻灯片和演示文稿。 2017年12月发布的Apache Flink 1.4.0为Flink的流处理引入了一个重要特性:TwoPhaseCommitSi ... 阅读全文 »
Storm Tick 元组 发表于 2019-01-26 | 分类于 Storm | | 阅读次数: 在某些情况下,Bolt 在执行某些操作之前需要将数据缓存几秒钟,例如每隔5秒清理一次缓存或在单个请求中将一批记录插入数据库。 Tick 元组是系统生成的(Storm生成的)元组,我们可以在每个 Bolt 级别配置它们。我们可以在编写 Bolt 时在代码中配置 Tick 元组。 我们需要在 Bolt ... 阅读全文 »
Storm 理解内部消息缓冲机制 发表于 2018-12-18 | 分类于 Storm | | 阅读次数: 优化 Storm 拓扑性能有助于我们理解 Storm 内部消息队列的配置和使用,在这篇文章中,我将向大家解释并说明在 Storm(0.8或0.9)版本中工作进程以及相关联的 Executor 线程是如何完成内部通信的。 1. Storm工作进程中的内部消息当我说内部消息时,我的意思是在 Storm ... 阅读全文 »
理解 Storm 拓扑的并行度 发表于 2018-12-03 | 分类于 Storm | | 阅读次数: 1. 什么让拓扑运行Storm 区分以下 3 个主要的实体,用来运行 Storm 集群中拓扑: Worker 进程 Executors 线程 Tasks 这是一个简单的例子, 以说明他们之间的关系 一个 Worker 进程用来执行一个拓扑的子集。属于一个指定拓扑的 Worker 进程, 为该拓 ... 阅读全文 »
Redis 安装与启动 发表于 2018-11-25 | 分类于 Redis | | 阅读次数: 在安装 Redis 前需要了解 Redis 的版本规则以选择最合适自己的版本,Redis 约定次版本(即第一个小数点后的数字)为偶数的版本是稳定版本(如 2.4版本,2.6版本),奇数版本是非稳定版本(如2.5版本,2.7版本),推荐使用稳定版本进行开发和在生产环境中使用. 1. 下载当前最新版本为 ... 阅读全文 »
Hexo 为Next主题添加评论功能 发表于 2018-09-18 | 分类于 Hexo | | 阅读次数: 1. 添加评论功能之前使用的来必力,最近评论功能一直出不来,用户体验比较差,所以重新评估选择了Valine。 1.1 创建账号这个评论系统是基于 LeanCloud 进行的,先去注册一个账号,点这里进行注册。 点这里创建应用,应用名看个人喜好。选择刚刚创建的应用,点击设置按钮,再点击应用Key按钮, ... 阅读全文 »
分布式事务之两阶段提交(2PC) 发表于 2018-09-14 | 分类于 分布式 | | 阅读次数: 1. 概述在计算机网络以及数据库领域内,二阶段提交(Two-phase Commit)是指,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。通常,二阶段提交也被称为是一种协议。在分布式系统中,虽然每个节点可以知道自己的操作是成功还是失败,但却无法知道其他节点的操作是成 ... 阅读全文 »
Flink 使用Flink进行高吞吐,低延迟和Exactly-Once语义流处理 发表于 2018-09-02 | 分类于 Flink | | 阅读次数: 在本文中,我们将深入探讨Flink新颖的检查点机制是如何工作的,以及它是如何取代旧架构以实现流容错和恢复。我们在各种类型的流处理应用程序上对Flink性能进行测试,并通过在Apache Storm(一种广泛使用的低延迟流处理器)上运行相同的实验来进行对比。 1. 流式架构的演变在流处理中保证高性能同 ... 阅读全文 »
ZooKeeper 集群模式安装与启动 发表于 2018-08-14 | 分类于 ZooKeeper | | 阅读次数: 1. 安装要在你的计算机上安装 ZooKeeper 框架,请访问该链接并下载最新版本的ZooKeeper。到目前为止,最新稳定版本的 ZooKeeper是3.4.12(ZooKeeper-3.4.12.tar.gz)。 使用以下命令提取tar文件:cd ~/opt/$ tar -zxf zookee ... 阅读全文 »
Hive ORC文件格式 发表于 2018-07-18 | 分类于 Hive | | 阅读次数: 1. ORC文件格式 在Hive 0.11.0版本引入此功能 ORC 是 Optimized Row Columnar 的缩写,ORC 文件格式提供一种高效的方法来存储Hive数据。旨在解决其他Hive文件格式的局限。当Hive读取,写入和处理数据时,使用 ORC 文件格式可以提高性能。 例如,与 ... 阅读全文 »
Spark SQL DataFrame与RDD交互 发表于 2018-07-14 | 分类于 Spark | | 阅读次数: Spark SQL 支持两种不同的方法将现有 RDD 转换为 Datasets。 第一种方法使用反射来推断包含特定类型对象的 RDD 的 schema。当你在编写 Spark 应用程序时,你已经知道了 schema,这种基于反射的方法会使代码更简洁,并且运行良好。 第二种方法是通过编程接口来创建 ... 阅读全文 »
Spark 多文件输出 发表于 2018-07-12 | 分类于 Spark | | 阅读次数: 1. 自定义MultipleOutputFormat在Hadoop 多文件输出MultipleOutputFormat中介绍了如何在Hadoop中根据Key或者Value的值将属于不同的类型的记录写到不同的文件中。在这里面用到了MultipleOutputFormat这个类。 因为Spark内部写文 ... 阅读全文 »
Spark Persist,Cache以及Checkpoint 发表于 2018-07-11 | 分类于 Spark | | 阅读次数: 1. 概述要重用RDD(弹性分布式数据集),Apache Spark提供了许多选项,包括: Persisting Caching Checkpointing 下面我们将了解每一个的用法。重用意味着将计算和数据存储在内存中,并在不同的算子中多次重复使用。通常,在处理数据时,我们需要多次使用相同的数 ... 阅读全文 »
Hive Grouping Sets,CUBE与ROLLUP 发表于 2018-07-05 | 分类于 Hive | | 阅读次数: 这篇文章描述了 SELECT 语句 GROUP BY 子句的增强聚合功能 GROUPING SETS。GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。通过 GROUPING SETS 子句,你可采用多种方式对结果分组,而不必使用多个 SELECT 语句来实现这 ... 阅读全文 »
Hive Count Distinct优化 发表于 2018-06-28 | 分类于 Hive | | 阅读次数: 目前,Hive底层使用MapReduce作为实际计算框架,SQL的交互方式隐藏了大部分MapReduce的细节。这种细节的隐藏在带来便利性的同时,也对计算作业的调优带来了一定的难度。未经优化的SQL语句转化后的MapReduce作业,它的运行效率可能大大低于用户的预期。本文我们就来分析一个简单语句的 ... 阅读全文 »
Hive 本地执行模式 发表于 2018-06-10 | 分类于 Hive | | 阅读次数: 1. 简介假设你正在运行一些复杂的 Hive 查询,我们都知道这会在后台触发 MapReduce 作业并为你提供输出。如果 Hive 中的数据比较大,这种方法比较有效,但如果 Hive 表中的数据比较少,这样会有一些问题。出现此问题的主要原因是 MapReduce 作业被触发,它是在服务器/集群上触 ... 阅读全文 »
Spark SparkSession:一个新的入口 发表于 2018-06-07 | 分类于 Spark | | 阅读次数: 在 Spark 1.x 中,使用 HiveContext 作为 DataFrame API 的入口显得并不直观。在 Spark 2.0 引入 SparkSession 作为一个新的入口,并且包含 SQLContext 和 HiveContext 的特性,同时为了向后兼容,两者都保留下来。SparkS ... 阅读全文 »