SparkStreaming概述 SparkStreaming是Spark核心API的一个扩展,它对实时流式数据的处理具有可扩展性.高吞吐量.可容错性等特点. SparkStreaming原理 SparkStreaming接收实时的输入数据流,然后将这些数据切分为批数据供Spark引擎处理,Spark引擎将数据生成最终的结果数据. 使用DStream从Kafka和HDFS等源获取连接的数据流.DStream是一系列连续的RDD组成. SparkStreaming数据源 基本源:HDFS等文件系统…
FusionInsight大数据开发 FusionInsight HD是一个大数据全栈商用平台,支持各种通用大数据应用场景. 技能需求 扎实的编程基础 Java/Scala/python/SQL/shell常见命令 掌握FusionInsight 熟悉业务开发 大数据应用开发流程 业务分析和方案设计 应用开发 应用调试 应用部署 应用开发关键点 账号 安全认证 场景约束 应用开发指南--调试 常规手段 协助资料 保障团队 总结: 认证是应用开发的关键点,要根据业务需求,申请合适账号,完成安全认证…
前面一篇讲到streamin读取kafka数据加工处理后写到kafka数据,大数据开发-Spark-开发Streaming处理数据 && 写入Kafka是针对比如推荐领域,实时标签等场景对于实时处理结果放到mysql也是一种常用方式,假设一些车辆调度的地理位置信息处理后写入到mysql 1.说明 数据表如下: create database test; use test; DROP TABLE IF EXISTS car_gps; CREATE TABLE IF NOT EXISTS ca…
HDFS应用开发 HDFS(Dadoop Distributed File System) HDFS概述 高容错性 高吞吐量 大文件存储 HDFS架构包含三部分 Name Node DataNode Client HDFS数据写入流程 HDFS应用开发方式 HDFS Client Java/shell/Web UI Kerbors控制 HDFSJava应用开发 下载客户端/获取样例工程/生产样例工程/导入eclipse/编码 Java开发流程 初始化 目录操作 文件读取 文件写入/追加( 初始化…
MapReduce MapReduce的基本定义及过程 搭建开发环境 代码实例及运行程序 MapReduce开发接口介绍 1. MapReduce的基本定义及过程 MapReduce是面向大数据并行处理的计算模型.框架和平台,其资源调度由Yarn完成,任务资源隐含了以下三层含义: 1)MapReduce是 一个基于集群的高性能并行计算平台(cluster Infrastructure). 2)MapReduce是 一个并行计算与运行软件框架(SoftWare Framework) 3)MapRe…
HBase应用开发 HBase的定义 HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统. 适合于存储大表数据,可以达到实时级别. 利用Hadoop HDFS 作为其文件存储系统,提供实时的读写的数据库系统. 利用ZooKeeper作为协同服务. HBase架构 HBase的适用场景 海量数据 高吞吐量 需要在海量数据中实现高效的随机读取 需要很好的性能伸缩能力 能够同时处理结构化和非结构化的数据 不需要完全拥有传统关系型数据库所具备的ACID特性 HBase应用开发流程 制定业务目…
Flume应用开发 要求: 了解Flume应用开发适用场景 掌握Flume应用开发 Flume应用场景Flume的核心是把数据从数据源收集过来,在送到目的地.为了保证输送一定成功,发送到目的地之前,会先缓存数据,待数据真正的到达目的地后,删除自己缓存的数据.Flume采用流式方法采集和传输数据,程序配置好后,不需要外部条件触发下,一直监控数据源,源源不断地采集.传送数据到目的地. 主要应用于一下几种场景: 将分布式节点上大量数据实时采集.汇总和转移 将集群内.外地本地文件.实时数据流采集到Fus…
Hive应用开发 了解Hive的基本架构原理 掌握JDBC客户端开发流程 了解ODBC客户端的开发流程 了解python客户端的开发流程 了解Hcatalog/webHcat开发接口 掌握Hive开发规则 1. 了解Hive的基本架构原理守护进程: HiveServer(Thrift/Compiler) webHcat MetaStore Hive的应用场景 数据挖掘 非实时分析 数据汇总 作为数据仓库 2. 掌握JDBC客户端开发流程JDBC开发-参数初始化 设置ZooKeeper地址 krb…
Oozie应用开发 要求: 了解Oozie应用开发适用场景 掌握Oozie应用开发 熟悉并使用Oozie常用API Oozie简介 Oozie是一个Hadoop作业的工作流调度管理系统 Oozie工作流(workflow)是放置在控制依赖DAG(有向无环图)中的一组动作(Action)集合,控制依赖可确保后续操作在见面的操作已经成功完成后才会启动. Oozie的协调作业(Coordinator)是通过时间(频率)和有效数据来触发当前的Oozie工作流. Oozie支持多种Hadoop作业(包括:…
Streaming应用开发 掌握Streaming基本业务开发流 熟悉Streaming常用API接口使用 掌握Streaming业务设计基本原则 了解Streaming应用开发环境 了解CQL开发流及使用 Streaming的定义 Streaming基于开源Storm,是一个分布式.实时计算框架.Streaming在开源Storm的基础上增加了持续查询语言CQL.增强了安全性和可靠性. 事件驱动 连续查询 数据不存储.先计算 实时响应,低延迟 CQL(Continuous Query Lang…
Redis应用开发 要求: 了解Redis应用场景 掌握Redis二次开发环境搭建 掌握Redis业务开发 Redis简介 Redis是一个基于网络的,高性能key-value内存数据库 Redis根memcached类似,不过数据可持久化,而且支持的数据类型很丰富.支持在服务端计算集合的并.交和补集等,还支持多种排序功能. Redis使用场景有如下几个特点: 高性能 低延迟 丰富数据结构存取 支持持久化 Redis应用场景介绍Redis提供了灵活多变的数据结构和数据操作,主要应用于如下场景:…
Spark应用开发 要求: 了解Spark基本原理 搭建Spark开发环境 开发Spark应用程序 调试运行Spark应用程序 YARN资源调度,可以和Hadoop集群无缝对接 Spark适用场景大多数现有集群计算框架如MapReduce等基于从稳定存储(文件系统)到稳定存储的非循环数据流,数据重用都是基于磁盘的,执行效率比较低.与传统的MapReduce任务频繁读写磁盘数据相比,基于内存计算的Spark则更适合应用在迭代计算,交互式分析等场景. Spark应用运行流程--关键角色 Client…
Kafka应用开发 了解Kafka应用开发适用场景 熟悉Kafka应用开发流程 熟悉并使用Kafka常用API 进行Kafka应用开发 Kafka的定义Kafka是一个高吞吐.分布式.基于发布订阅的消息系统Kafka有如下几个特点: 高吞吐量 消息持久化到磁盘 分布式系统易扩展 容错性好 Kafka的适用场景 适用于离线和在线的消息消费 已对接组件 Streaming.Spark.Flume 使用Kafka的好处 解耦--使得消息生产.消费系统能够独立变更 可靠--有效解决单点故障引发系统不可用…
sorl应用开发 要求: 了解Solr应用开发适用场景 熟悉Solr应用开发流程 熟悉并使用Solr常用API 理解Collection设计基本原则 应用开发实践 Solr简介 Solr是一个高性能,基于Lucene的全文检索服务,也可以作为NoSQL数据库使用. Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语句,同时实现了可配置.可扩展,并对查询性能进行了优化,还提供了一个完善的功能管理界面. SolrCloud是从Solr 4.0 版本开始发出的具有开创意义的分布式索…
1.背景介绍 Storm以及离线数据平台的MapReduce和Hive构成了Hadoop生态对实时和离线数据处理的一套完整处理解决方案.除了此套解决方案之外,还有一种非常流行的而且完整的离线和 实时数据处理方案.这种方案就是Spark.Spark本质上是对Hadoop特别是MapReduce的补充.优化和完善,尤其是数据处理速度.易用性.迭代计算和复杂数据分析等方面. Spark Streaming 作为Spark整体解决方案中实时数据处理部分,本质上仍然是基于Spark的弹性分布式数据集(Re…
Vvio总共就一轮技术面+一轮HR面,技术面总体而言,比较宽泛,比较看中基础,面试的全程没有涉及简历上的东西(都准备好跟他扯项目了,感觉是抽取的题库...)具体内容如下: 1.熟悉Hadoop哪些组件? 答:hdfs.yarn.MapRedue.Hive 2.讲一讲yarn的调度过程? 答:blabla... 3.yarn的调度器有哪些? 答:FIFO.多队列分开调度.CapacityScheduler.FairScheduler...(当时没答全) 4.讲讲Hive内部表和外部表的区别? 答:…
因公司战略以及业务拓展,收大量java攻城狮以及大数据开发攻城狮. 职位信息: java攻城狮: https://job.cnblogs.com/offer/56032 大数据开发攻城狮: https://job.cnblogs.com/offer/56033 欢迎博客园的XDJM自荐和推荐! 此招聘长期有效 欢迎留言!…
一. HDFS和MapReduce优缺点 1.HDFS的优势 HDFS的英文全称是 Hadoop Distributed File System,即Hadoop分布式文件系统,它是Hadoop的核心子项目.实际上,Hadoop中有一个综合性的文件系统抽象,它提供了文件系统实现的各类接口, 而HDFS只是这个抽象文件系统 的一种实现,但HDFS是各种抽象接口中应用最为广泛和最广为人知的一个. HDFS被设计成适合运行在通用和廉价硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但他和其…
4.聚合操作 4.1.group by 操作 group by操作是实际业务场景(如实时报表.实时大屏等)中使用最为频繁的操作.通常实时聚合的主要源头数据流不会包含丰富的上下文信息,而是经常需要实时关联相关 相关的维度表,并针对这些扩展的.丰富维度属性进行各种业务的统计. 在下面的实例中,订单流通过买家id关联了买家维度表,获取其所在省份信息,然后实时统计每天各个省份的iPhone销量信息. ---从源头接收订单实时流 create table test_order_stream ( gmt_c…
1.介绍 本节主要利用Stream SQL进行实时开发实战,回顾Beam的API和Hadoop MapReduce的API,会发现Google将实际业务对数据的各种操作进行了抽象,多变的数据需求抽象为三类: 离线的Map.Shuffle.Reduce以及 实时的ParDo.GroupByKey.Combine,这些抽象其实也对应了SQL的操作.SQL开发有如下几类: select操作:包括过滤.投影.表达式等. join操作:关联操作,包括和维度表关联以及窗口操作等. 聚合操作:全局group…
1.流计算SQL原理和架构 流计算SQL通常是一个类SQL的声明式语言,主要用于对流式数据(Streams)的持续性查询,目的是在常见流计算平台和框架(如Storm.Spark Streaming.Flink.Beam等)的底层API上, 通过使用简易通用的的SQL语言构建SQL抽象层,降低实时开发的门槛. 流计算SQL的原理其实很简单,就是在SQL和底层的流计算引擎之间架起一座桥梁---流计算SQL被用户提交,被SQL引擎层翻译为底层的API并在底层的流计算引擎上执行.比如对Storm 来说,…
Storm是一个分布式.高容错.高可靠性的实时计算系统,它对于实时计算的意义相当于Hadoop对于批处理的意义.Hadoop提供了Map和Reduce原语.同样,Storm也对数据的实时处理提供了简单的 spout和bolt原语.Storm集群表面上看和Hadoop集群非常像,但Hadoop上面运行的是MapReduce的Job,而Storm上面运行的是topology(拓扑),它们非常不一样,比如一个MapReduce的Job最终会结束, 而一个Storm topology永远运行(除非显式杀…
1.Hadoop数据仓库架构设计 如上图. ODS(Operation Data Store)层:ODS层通常也被称为准备区(Staging area),它们是后续数据仓库层(即基于Kimball维度建模生成的实时表和维度表层,以及基于事实表和明细表 加工的汇总层数据)加工数据的来源,同时ODS层也存储着历史的增量和或全量数据. 数据仓库层(DW:Data Warehouse): 是Hadoop数据平台的主体内容.数据仓库层的数据是ODS层数据经过ETL清洗.转换.加载生成的.Hadoop数据仓…
5.大表join大表优化 如果Hive优化实战2中mapjoin中小表dim_seller很大呢?比如超过了1GB大小?这种就是大表join大表的问题.首先引入一个具体的问题场景,然后基于此介绍各自优化方案. 5.1.问题场景 问题场景如下: A表为一个汇总表,汇总的是卖家买家最近N天交易汇总信息,即对于每个卖家最近N天,其每个买家共成交了多少单,总金额是多少,假设N取90天,汇总值仅取成交单数. A表的字段有:buyer_id.seller_id.pay_cnt_90day. B表为卖家基本信…
4.大表join小表优化 和join相关的优化主要分为mapjoin可以解决的优化(即大表join小表)和mapjoin无法解决的优化(即大表join大表),前者相对容易解决,后者较难,比较麻烦. 首先介绍大表join小表优化.以销售明细表为例来说明大表join小表的场景. 假如供应商进行评级,比如(五星.四星.三星.二星.一星),此时因为人员希望能够分析各供应商星级的每天销售情况及其占比. 开发人员一般会写出如下SQL: select  seller_star, count(order_id)…
Hive SQL的各种优化方法基本 都和数据倾斜密切相关. Hive的优化分为join相关的优化和join无关的优化,从项目的实际来说,join相关的优化占了Hive优化的大部分内容,而join相关的优化又分为mapjoin可以解决的join优化和mapjoin无法解决的join优化. 1.数据倾斜 倾斜来自于统计学里的偏态分布.所谓偏态分布,即统计数据峰值与平均值不相等的频率分布,根据峰值小于或大于平均值可分为正偏函数和负偏函数,其偏离的程度可用偏态系数刻画. 对应分布式数据处理来说,希望数据…
1.Hive 表 DDL 1.1.创建表 Hive中创建表的完整语法如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS]  table_name [ (col_name data_type [COMMET col_comment], . . .)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], . . . )] [CLUSTERED BY (c…
1.Hive出现背景 Hive是Facebook开发并贡献给Hadoop开源社区的.它是建立在Hadoop体系架构上的一层SQL抽象,使得数据相关人员使用他们最为熟悉的SQL语言就可以进行海量数据的处理.分析和统计工作, 而不是必须掌握Java等编程语言和具备开发MapReduce程序的能力.Hive SQL实际上先被SQL解析器进行解析然后被Hive框架解析成一个MapReduce可执行计划,并按照该计划生成MapReduce任务后交给Hadoop集群处理. 由于Hive SQL是翻译为Map…
下面结合具体的例子详述MapReduce的工作原理和过程. 以统计一个大文件中各个单词的出现次数为例来讲述,假设本文用到输入文件有以下两个: 文件1: big data offline data online data offline online data 文件2 hello data hello online hello offline 目标是统计这两个文件中各个单词的出现次数,很容易用肉眼算出各个词出现的次数: big:1 data:5 offline:3 online:3 hello:3…
大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的.但是大数据真的好学吗. 我们先来了解一下什么是大数据. 大数据是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合.大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力.适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统. 以下是大数据的定义 大数据由巨型数据集组成,这些数据集大小常超…