Apache Storm

Calcite技术研究

大兔子大兔子 提交于 2020-11-02 05:34:42
原文作者:王长春,来自平安银行零售大数据团队 概述 Apache Calcite是一个基础的软件框架,它提供了查询处理、查询优化以及查询语言支持的能力。很多流行的开源数据处理系统例如Apache Hive,Apache Storm,ApacheFlink,Druid等都采用了它。 下图是采用Apache Calcite的开源数据处理系统,以及Calcite能连接到的数据源。 大多数数据处理系统是使用Calcite来做SQL解析和查询优化。还有部分使用Avatica(Calcite的子项目)来构建自己的JDBC driver。还有部分使用Calcite来重写查询请求以使用物化视图。 最近十几年来,出现了很多专门的数据处理引擎。例如列式存储、流处理引擎、文档搜索引擎等等。这些引擎宣称他们在特殊方面能提供更高“性价比”的性能,并且宣称“one size fits all”范式的时代已经终结了。Spark、Storm、Flink、Elasticsearch、Druid等多种引擎的流行确实说明了这一点。 这些数据处理引擎都面临着一些共同但是难以解决的问题。 一是数据处理引擎都要做查询优化以及提供sql查询语言或者其他DSL查询语言。 二是使用者可能使用了多个专门的数据引擎,例如使用了ES、Spark、Druid.那么使用者很可能会有在异构数据源上支持查询以及查询优化的需求。 Apache

Java工程师必备

不羁的心 提交于 2020-11-01 07:37:45
Java工程师必备 JAVA基础扎实,熟悉JVM,熟悉网络、多线程、分布式编程及性能调优 精通Java EE相关技术 熟练运用Spring/SpringBoot/MyBatis等基础框架 熟悉分布式系统相关技术 熟悉MySQL及SQL优化 高并发、高可用、微服务、容器化等开发经验 熟悉JVM原理,精通io、多线程,精通分布式、缓存、消息等机制 熟练使用和配置Tomcat应用服务器 掌握Eclispse,Maven,SVN,GIT等软件开发工具的环境搭建和使用 熟悉H5、CSS、JS等前端技术,熟悉BootStrap、Jquery等常用框架的一种 掌握SQL,至少熟悉MariaDB(MySQL)/Oracle数据库中的一种 客户端与服务端数据接口封装,独立调试各类数据接口,如支付接口,短信接口,等各类第三方数据接口对接 熟悉分布式缓存、消息中间件、RPC框架、负载均衡、安全防御等技术 有大数据处理经验,包括hadoop/storm/spark/hbase/ELK等 对RPC或GRPC有一定的工作经验 熟悉Linux环境以及操作 熟练掌握Java开发语言或Python,有服务端开发经验,熟悉多线程、高并发等常用开发技术 熟悉JS、Jquery,掌握HTTP/HTTPS协议,有Web前台开发经验优先 有云计算及大数据领域开发经验优先 结言 好了,欢迎在留言区留言,与大家分享你的经验和心得

流数据处理

我的梦境 提交于 2020-10-30 06:46:57
大数据界很早以前就意识到了批处理的不足,实际应用中对于实时查询和流处理的需求越来越迫切。近年来涌现出了很多解决方案,像Twitter的Storm,Yahoo的S4,Cloudera的Impala,Apache Spark, 和 Apache Tez 等。本文试着去研究这些流式处理技术,溯寻这些技术与批量处理以及OLTP/OLAP之间的关联,并探讨如何用一个统一的查询引擎来同时支持流处理、批处理和OLAP。 在Grid Dynamics(作者工作的公司名),我们需要建立一个每天要处理80亿条数据的流式数据处理系统,并且要有良好的容错性和严格的事务约束,数据不允许丢失或者重复。这个系统要作为对已有的基于hadoop系统的补充,hadoop系统的数据延迟以及维护成本都太高了。这个需求以及系统本身都是极具通用性和典型性的,我们提出了一个模型来来抽象这类问题。 工作环境如下图: 可以看出,这是一个非常典型的场景:分布在多个数据中心的应用产生数据,然后被采集系统传递到hdfs上,用hadoop系列工具(MapReduce, Pig, Hive)对原始数据进行聚合和分析,结果储存在hdfs或者NoSQL里,再导入到OLAP数据库或者提供给各种应用使用。我们现在要增加一个流处理引擎(如下图所示),可以对数据进行预处理,这样可以减少hadoop上原始数据的数量并减少重量级批处理作业的数量

大数据就业前景如何?现在学习大数据已经晚了吗?

只愿长相守 提交于 2020-10-28 00:06:03
  大数据就业 前景如何?现在 学习大数据 已经晚了吗?作为初入社会的大学生,或者想改变环境转行的同学,看到大数据技术开发者的高薪资都想进入这个行业,但是现在大数据技术依然想之前那样火爆吗?是不是学习了大数据技术就可以获得高薪呢?   大数据从最开始的概念兴起,到现在各大互联网公司逐步推广使用。已经逐渐成熟,目前营销、电商、教育领域等等对大数据的应用已经初见效果。大数据也从最开始的概念过渡到实际应用领域。对技术人员的招聘也更加趋于理性。所以并非大数据技术不再火爆,而是企业对于大数据从业人员的要求提高了。   根据招聘网站显示,目前大数据工作招聘需求,薪资普遍稳定在15-30K之间。其中目前刚入行的大数据工程师平均薪资在1万左右,而随着工作时间的增加,3~5年经验的大数据工程师的薪资待遇将达到3万元左右。   据相关机构统计,未来的3~5内大数据人才的缺口将达到150万,而且随着大数据的发展,人才缺口将不断扩大,所以大数据不管是目前还是未来长期都将是紧缺人才,受到各大互联网企业的关注。   如果你想投入大数据的怀抱,但却苦于不知如何下手。而当你准备学习大数据技术时,你可以了解一下博斌去计算大数据课程,主要是针对有一定编程开发经验的学员研发的课程。从大数据基础增强开始,内容精准聚焦大数据开发过程中必备的离线数据分析、实时数据分析和内存数据计算等重要内容

爬取了拉勾大数据专家的简历,终于知道自己差在哪里了

对着背影说爱祢 提交于 2020-10-27 16:17:07
有个朋友,上个月准备从 Java 转做大数据,一个月过去了,一份面试都没约到,来问我怎么回事。 我一看简历,期望年薪 40w,深度也不够,要大项目也没有。 我们做大数据的,虽说是薪资高,但门槛也是高,这几年我陆陆续续面过不少人,对面人选人都算是有自己的心得, 今天就挑一个年薪 40w 的大数据简历,看看人家凭什么! 篇幅有限,我截取了一部分他的工作经历。不管你是已经入坑大数据,还是打算转行大数据,都会让你有一些新的启发。 不管薪资多少,大数据的几个 技术栈 肯定得熟练掌握,这是基石不用说,这哥们算是比较全面的,像是Hadoop MR、 Spark、Storm、Flink等都能熟练使用,能做到这些,要个 20-30w 不成问题。 那人家为啥值 40w 呢?仔细看他还做过项目leader,搞过 项目架构 ,想必综合能力应该不错。果不其然,从简历上看,除了大数据开发,人家还拥有大数据分析、数据仓库架构设计、大数据平台构建、场景化方案定制等多方面的能力。 此外,还有一个大大大大的加分项,人家是做过 千亿级数据项目 的,在我们这个圈子,有这样的经历实在是太难得了。 为了进一步弄清楚行业需求现状,我分析了上百家大厂的大数据岗位要求,梳理出了一份大数据工程师的学习成长路线,给各位看官参考。 总结一下: 如果你也打算转行大数据,你得先掌握上面提到的技术栈,毕竟这是基本功,再就是建立你自己的知识体系

独家 | 在Python编程面试前需要学会的10个算法(附代码)

ぃ、小莉子 提交于 2020-10-24 18:39:11
作者:AnBento 翻译:陈超 校对:陈丹 本文长度为 3300字 ,建议阅读 10+分钟 本文为大家介绍了最近在Python编程面试中反复出现的10个基础算法问题,并且给出了相应的解答过程。 Photo by Headway on Unsplash 为什么练习算法是关键? 如果你是Python新手,并且打算面试顶尖公司(FAANG),听着,你需要从现在开始就好好练习算法。 不要像我第一次练习算法时那么天真。尽管我认为从早到晚死磕算法很有趣,但是我从来没有花过太多时间练习,甚至更少花时间去使用快捷、高效的解决方法。在我看来,我认为花一天的时间解决算法问题有点太傻了,而且在实际工作环境中很不适用,而且长期来看这也不会给我带来多大的收益。 “知道如何解决算法问题将会成为你在找工作过程中极有竞争力的优势” 好吧……我错了(至少在某种程度上来说):我仍然认为花费太多时间在算法上而不注重其他技能远远不能让你找到理想的工作,但是我知道作为一个程序员,复杂的问题总会自己出现在日常的工作当中,因此大公司不得不找到一个标准化的流程来收集应聘者在问题解决和细节技能关注的见解。这意味着知道如何解决算法问题将会成为在找工作的你的一个竞争优势,甚至不那么出名的公司也倾向于采纳这样的评估方法。 那里有一整个世界 在我开始更专注地解决算法问题之后不久,我发现有很多资源可供练习

Kafka基本原理详解(超详细!)

安稳与你 提交于 2020-10-20 04:52:27
目录 一、概念理解 (1)产生背景 (2)Kafka的特性 (3)Kafka场景应用 (4)Kafka一些重要设计思想 二、消息队列通信的模式 (1)点对点模式 (2)发布订阅模式 三、Kafka的架构原理 (1)基础架构与名词解释 (2)工作流程分析 (1)发送数据 (2)保存数据 (1)Partition 结构 (2)Message结构 (3)存储策略 (3)消费数据 一、概念理解 Kafka 是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 (1)产生背景 当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间

日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比

岁酱吖の 提交于 2020-10-17 23:35:18
参考文章: 日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比 盖 娅广告匹配系统(GaeaAD)用于支撑盖娅互娱全平台实时广告投放系统,需要将广告数据和游戏 SDK 上报的信息进行近实时匹配,本质上来说需要实时的根据各个渠道的广告投放与相应渠道带来的游戏玩家数据进行计算,实现广告转化效果分钟级别的展现及优化。 初期的 MySQL 存储方案 在系统设计之初,基于对数据量的预估以及简化实现方案考虑,我们选用了高可用的 MySQL RDS 存储方案,当时的匹配逻辑主要通过 SQL 语句来实现,包含了很多联表查询和聚合操作。当数据量在千万级别左右,系统运行良好,基本响应还在一分钟内。 遭遇瓶颈,寻找解决方案 然而随着业务的发展,越来越多游戏的接入,盖娅广告系统系统接收数据很快突破千万/日,高峰期每次参与匹配的数据量更是需要翻几个番,数据库成为了业务的瓶颈。由于此时,整个技术架构出现了一些问题: 1. 单次匹配耗时已从原本的 10 秒左右增加到 2 分钟以上,最慢的聚合查询甚至达到 20 分钟,时效性受到严重挑战。而且 MySQL 的问题是查询的时间随着数据量的增长而增长,以至于数据量越大的情况下查询越慢。 2. 随着历史数据的积累,单表数据很快达到亿级别,此时单表的读写压力已经接近极限。 3. 由于第一点提到的查询性能问题以及单机的容量限制,需要定时删除数据

有赞数据库服务设计与实践-3306π南京站

大憨熊 提交于 2020-10-14 16:35:33
主题 : 「3306π」南京站活动专访 杨奇龙《有赞数据库服务设计与实践》 大纲 : 1、杨老师,一直持续在各个技术方面,为大家输出精彩文章,请问您是如何在工作之余进行的技术总结呢?您的学习方法可否分享给大家? 2、各个企业都在引用开源或者自研数据库服务或平台来进行工作提效,请问杨老师如何量化数据库服务带来的成果呢? 3、请问杨老师,有赞数据库服务的开发团队非常高效,但一般中小企业都会希望DBA本身负责研发相关工作,杨老师可否谈谈您对DBA的定位和发展建议呢? 4、 请问杨老师,一般企业在规划数据库服务平台从0到1过程,您比较推荐哪种模块依次开发的顺序来,实现平台的有效设计和有效推广呢? 分享时间 : 2020年10月17日 13:00-18:00 扫一扫左边二维码, 立刻报名本次活动。 嘉宾自我介绍 杨奇龙 杭州有赞 DBA ,运营公众号yangyidba 。负责有赞数据库架构设计,数据库服务治理,故障诊断等等 01 杨老师,一直持续在各个技术方面,为大家输出精彩文章,请问您是如何在工作之余进行的技术总结呢?您的学习方法可否分享给大家? 关于写文章这件事上可以看出我记得我从2009年5月份在itpub的博客写了第一篇文章,基本一路写到现在,算是兴趣和对技术的坚持吧。平时利用工作的机会收集案例,素材,查看官方文档,网络其他牛人的博客等,利用空余时间 做技术试验测试,然后汇总写写文章

Java Storm 消费kafka数据即KafkaSpout的消费实例,还有 为啥要input.getString(4),这个4怎么来的。

断了今生、忘了曾经 提交于 2020-10-14 11:00:46
使用kafka作为数据源,给storm的后续bolt提供数据的例子,还有 为啥要input.getString(4),这个4怎么来的。 先看main方法,步骤很清新的。 package com.lxk.storm; import com.lxk.storm.bolt.OutInfoBolt; import org.apache.kafka.common.utils.Utils; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.storm.kafka.spout.KafkaSpout; import org.apache.storm.kafka.spout.KafkaSpoutConfig; import org.apache.storm.topology.TopologyBuilder; import org.junit.Test; /** * 就测试一下从kafka消费数据,然后在bolt里面可以看到数据。 * * @author LiXuekai on 2020/10/13 */ public class TestKafkaSpout { private static final String TOPOLOGY_NAME = "kafka-spout