课程
精品课程应有尽有,快速入门助力成长
-
中级 Presto实战与演练
SQL On Hadoop因SQL简单易用等特点一直是各大公司致力实现的目标,本门课程从Hive到Presto,了解大数据中的SQL查询引擎和数据仓库的构建,并基于Presto实现数据查询及可视化系统。
3620人在学 -
初级 Hadoop基础及演练
在大数据日益火爆的今天,很多猿友都将其作为自己以后的职业方向,本门课程本着细化提取概念点并逐步应用的原则,对大数据生态做了简单的介绍并着重的讲述了开源大数据框架Hadoop的使用和原理。并对Hadoop生态圈的其他开源项目做了简单的介绍,以帮助我们快速的构建大数据的知识图谱。另外讲师的实战课《HBase+SpringBoot实战分布式文件存储》已经上线 https://coding.imooc.com/class/205.html,有兴趣的小伙伴可以进行深入学习~
51514人在学
手记
分享经验交流心得,学习前沿流行技术
-
Presto Event Listener开发
简介 同Hive Hook一样,Presto也支持自定义实现Event Listener,用于侦听Presto引擎执行查询时发生的事件,并作出相应的处理。我们可以利用该功能实现诸如自定义日志记录、调试和性能分析插件,帮助我们更好的运维Presto集群。但是不同于Hive Hook的是,在Presto集群中,一次只能有一个Event Listener处于活动状态。 Event Listener作为Plugin监听以下事件: Query Creation(查询建立相关信息) Query completion (success or failure)(查询执行相关信息,包含成功查询的细节信息,
2185浏览
1推荐
1评论
-
Presto安装完成之后需要做的~
Presto因其优秀的查询速度被我们所熟知,它本身基于MPP架构,可以快速的对Hive数据进行查询,同时支持扩展Connector,目前对Mysql、MongoDB、Cassandra、Hive等等一系列的数据库都提供了Connector进行支持。是我们常用的SQL on Hadoop的解决方案。那么我们今天就来看一下,当我们选择Presto作为我们的查询引擎之后,我们需要考虑的问题。 Presto 性能调优和稳定性 Presto 存在的问题 Coordinator单点问题(常见方案:ip漂移、nginx代理动态获取等) 大查询容易OOM(0.186+版本支持du
3232浏览
2推荐
0评论
-
Presto On Yarn 部署示例
Presto是我们所熟知的数据查询引擎,它本身的部署也是非常的简单。但是有时候我们可能会有这样的需求,比如需要动态的对Presto集群进行扩容,需要对集群的资源进行统一的管理。我们需要一个Presto On Yarn的解决方案。 Yarn是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。所以把Presto的应用提交到Yarn上可以帮助我们对Presto所需的资源进行统一管理,同时还可以根据业务需求对集群进行动态的容量控制
4919浏览
1推荐
4评论
-
Presto 数据查询项目之项目框架用户管理模块
经过前面的介绍,大家对于Flask的第三方模块应该是有一定的认识了。我们本文会用到Flask的表单模块和登录认证模块。要想实现用户的管理模块我们首先要开发我们的User Model。 from datetime import datetime from flask import current_app from flask_login import UserMixin from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from werkzeug.security import generate_password_hash, check_password_hash from .. import db, login_mana
2581浏览
0推荐
0评论
-
Presto 数据查询项目之项目框架搭建
从本片文章开始我们就正式进入我们Presto数据查询项目的开发了,我们首先要基于Flask搭建我们的项目框架,然后逐步的完善我们的代码。 首先我们先来看一下我们的项目模块,如图所示: 其中config.py是配置模块,manage.py是管理模块。而app是我们项目模块。在app模块中,auth为用户及权限管理模块,core为公用的核心代码模块,queryserver为数据查询模块。而static和templates则是静态文件和页面模板。 整体的结构已经非常清晰了,接下来我们就先来看一下我们config模块和manage模块中有哪些
2736浏览
1推荐
0评论
-
Presto 数据查询项目之初识Flask框架
Django、Flask、Tornado是Python主流的三大Web框架,三者各有优劣。本文就来聊一聊Flask。 Flask是一个基于Python开发并且依赖jinja2模板和WSGI服务的一个微型框架,“微型”到什么程度呢?微型到不到十行代码就能开发一个Web接口服务。代码如下: # 引入flask模块 from flask import Flask app = Flask(__name__) # 路由 @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() 需要注意的是,“微框架”并不表示你需要把整
2896浏览
1推荐
0评论
-
SQL优化之列裁剪和投影消除
列裁剪 对于没用到的列,则没有必要读取它们的数据去浪费无谓的IO 比如我们有一张表table1,它含有四列数据(a,b,c,d)。当我们执行查询select a from table1 where c >10时,我们可以清晰的看到,table1中只有a,c两列被用到了。分别是Selection算子用到c列和Projection算子用到a列。那么DataSource读取数据时,b,d两列则不需要读取,可以裁剪掉。 那么都有哪些算子与列有关系呢?综合我们多年来使用SQL的经验来看,Selection(Where 条件)、Projection(搜索的列)、Sort(排序列)、
3640浏览
1推荐
0评论
-
SQL优化器执行过程之逻辑算子
上篇文章我们提到了两种SQL优化器,分别是RBO和CBO。那么无论是RBO,还是CBO都包含了一系列优化规则,这些优化规则可以对关系表达式进行等价转换,从而寻找最优的执行计划。 那么常见的优化规则就包括: 列裁剪 投影消除 谓词下推 最大最小消除 常量传播 其他 在上述这些优化规则的基础上,就能够对关系表达式做出相应的等价转换,从而生成执行计划。本篇文章先从优化规则的基础概念逻辑算子开始讲起,后续会介绍各个优化规则。 逻辑算子 DataSource:数据源,也就是我们SQL语句中的表
2875浏览
0推荐
0评论
-
SQL优化器简介
SQL优化是我们经常会遇到的问题,无论你是专职的数据分析人员还是全栈开发大神或者是CURD搬运工。 我们在工作中经常会听到这样的声音:“查询慢?加个索引吧”。虽然加索引并不一定能解决问题,但是这体现了SQL优化的思想。 而数据库主要由三部分组成,分别是解析器、优化器和执行引擎。 其执行逻辑是我们输入的SQL语句通过解析器解析成关系表达式,通过优化器把关系表达式转换成执行计划,最终通过执行引擎进行执行。所以优化器在很大程度上决定了一个系统的性能。优化器的作用就好比找到两
6417浏览
0推荐
0评论
-
Apache顶级项目 Calcite使用介绍
什么是Calcite Apache Calcite是一个动态数据管理框架,它具备很多典型数据库管理系统的功能,比如SQL解析、SQL校验、SQL查询优化、SQL生成以及数据连接查询等,但是又省略了一些关键的功能,比如Calcite并不存储相关的元数据和基本数据,不完全包含相关处理数据的算法等。 也正是因为Calcite本身与数据存储和处理的逻辑无关,所以这让它成为与多个数据存储位置(数据源)和多种数据处理引擎之间进行调解的绝佳选择。 Calcite所做的工作就是将各种SQL语句解析成抽象语法树(AST Abstract S
17592浏览
2推荐
1评论
-
数据库和数据仓库你应该知道的
问题导读: 什么是数据仓库 数据仓库与数据库的区别 数据仓库的适用场景 Hive作为Hadoop生态圈重要的一员已经被我们所熟知,它作为一个基于Hadoop的数据仓库工具,用来做离线的数据分析工作。那么什么是数据仓库,它与我们经常使用的数据库有什么不同呢? 什么是数据仓库 数据仓库(Data Warehouse)是一个面向数据分析的集成化数据环境,它可以通过对大量数据进行分析从而得出分析报告并提供决策支持。需要注意的是,数据仓库本身并不生产数据,同时也不消费数据,它的数据来源于外部,
2887浏览
5推荐
1评论
-
数据采集框架Gobblin简介
问题导读: Gobblin的架构设计是怎样的? Gobblin拥有哪些组建,如何实现可扩展? Gobblin采集执行流程的过程? 前面我们介绍Gobblin是用来整合各种数据源的通用型ETL框架,在某种意义上,各种数据都可以在这里“一站式”的解决ETL整个过程,专为大数据采集而生,易于操作和监控,提供流式抽取支持。 号称整合各种数据源“一站式”解决ETL整个过程的架构到底是怎样的呢?没图说个X。 Gobblin架构图 从Gobblin的架构图来看,Gobblin的功能真的是非常的全。底层支持三种部署方式,分别是sta
7794浏览
1推荐
0评论
-
Hadoop的数据采集框架
问题导读: Hadoop数据采集框架都有哪些? Hadoop数据采集框架异同及适用场景? Hadoop提供了一个高度容错的分布式存储系统,帮助我们实现集中式的数据分析和数据共享。在日常应用中我们比如要将各种数据采集到HDFS存储服务中去,说到将数据采集到HDFS,我们熟知的框架包括: Apache Sqoop Apache Flume Gobblin DataX Kettle 以及其他很多针对特定数据源的采集工具:比如针对Cassandra数据源的Aegisthus,针对mongodb的mongo-hadoop等等。 本文就对以上常见的数据采集服务进行简单的
5282浏览
6推荐
0评论
-
漫谈未来的HDFS
前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大。对HDFS有所了解的同学肯定都知道,NameNode是HDFS的存储着整个集群的元数据信息,比如所有文件和目录信息等等。而且当元数据信息较多时,NameNode的启动会变得很慢,也比较容易触发GC操作。显然当数据到了一定的量级,元数据管理会成为HDFS的一个瓶颈,其实这也是为什么说它适合存储大文件的原因。如果解决了元数据管理的问题,其实HDFS是可以支撑
3044浏览
6推荐
0评论
-
Ceph三连击之二:不讲CRUSH的Ceph教程是不完整的
前面我们提到了Ceph是一个支持统一存储架构的分布式存储服务。简单介绍了Ceph的基本概念和基础架构包含的组件,其中最重要的就是底层的RADOS和它的两类守护进程OSD and Monitor。上篇文章我们还挖了一个坑,我们提到了CRUSH。 是的,我们这篇教程就是一篇不完整的Ceph教材,因为我们讲CRUSH并不涉及其算法和实现原理,我们讲的是Ceph整体的寻址流程,并借此深入理解一下Ceph中数据的操作流程。 这张就是Ceph的寻址流程示意图了,大家可以看到里面主要分四层,File->Objects->PGs->OSDs。很多
4536浏览
1推荐
1评论
-
HDFS你一定要知道,要考的
你肯定听过Hadoop,对就是那头奔跑的小象。 Hadoop作为大数据时代代表性的解决方案被大家所熟知,它主要包含两部分内容: HDFS分布式文件存储 MapReduce分布式计算框架 前面我们分析存储方案的发展的时候有提到分布式文件存储的出现是为了解决存储的三大问题:可扩展性,高吞吐量,高可靠性 那么Hadoop的核心HDFS是如何解决上面三个问题的呢? 其实设计一个系统我们要考虑到它的应用场景,然后对它的功能和特性进行设计,做出取舍。我们可能会关注这几个问题: 原始存储格式 or 特殊存
3303浏览
11推荐
1评论
-
存储是怎样炼成的?
什么FAT,NTFS,NFS,DAS,SAN,NAS,OSD这些名词我一个都不认识。 不知道各位大佬对上面的名词了解多少,通过上面的一些名词其实可以大致的看到存储是怎样一步步发展的。其中FAT,NTFS和NFS都是支持特定存储协议的存储系统,DAS,SAN,NAS,OSD是一种存储模型。稍微科普一下: FAT,NTFS大家肯定比较熟悉,这个就是单机文件系统,类似的还有EXT4等等。windows系统就是NTFS,Linux是EXT4居多。 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。使计算机可
2883浏览
8推荐
3评论
-
初识大数据
最近几年IT技术的发展真的是日新月异,什么云计算、大数据、机器学习、AI等等名词层出不穷。多数程序员内心其实是恐慌的,我也时常会感到危机感。每每看到“xx培训,大数据就业,钱景好”我嘴上说不要,身体还是很诚实的。 大数据已经深入我们的生活当中,今天呢我们也不聊4个V(Volume 规模大、Varity 多样性、Velocity 高速性、Value 价值大)也不谈数据挖掘,机器学习。就单纯的用大白话聊聊大数据。 从哪里开始说呢,我们先马后炮一句,可以说“大数据的出现是顺应了潮流”。为什么这
6841浏览
16推荐
1评论
-
Ceph三连击之一:Ceph简介
之前我们介绍了HBase,并且实战了如何通过HBase+SpringBoot实战分布式文件存储,我们为什么要使用HBase来实现文件存储呢,究其原因还是因为HDFS本身具有一定的局限性。而且大多数的公司在使用Hadoop的时候一般只用到了它的MR部分(分布式计算框架),对于HDFS这个文件存储服务的热忱并不太高,一是因为一般他自身都有一套支持虚拟化的文件存储服务,而且数据迁移及HDFS的一些特性相对来讲优势并不是很大。 那么有没有什么优秀的开源的分布式文件存储服务呢,答案必然是有的,今天我们就介绍一个
4405浏览
0推荐
0评论
-
Yarn Secure Container Executor配置简介
前面我们简单介绍了Hadoop资源管控简介,提到了目录的空间大小,目录文件个数,yarn任务内存等等资源的管控,如果我们想要对cpu进行控制就需要用到linux系统本身的cgroup。这时候就需要设置Yarn的Container Executor了。 1. 说明 安全模式集群中的YARN containers使用系统工具为容器提供执行隔离。保证容器在job所有者的证书认证下执行,操作系统强制对容器进行访问限制,同时容器只能用于提交application。 安全容器只能在拥有安全认证的yarn集群中使用。 YARN提供了三种ContainerExecut
5778浏览
1推荐
0评论
-
Hadoop资源管控简介
HDFS磁盘配额管理 HDFS的磁盘配额管理功能分为两种: Name Quotas:用户限制HDFS指定目录下文件或文件夹的数量 Space Quotas:用于限制HDFS指定目录的最大使用空间(注,此处设置的空间包含备份所占用的空间,比如备份数量为3 则上传一个1G的文件,Space会减少3G) 相关命令: # set HDFS name quotas hadoop dfsadmin -setQuotas <max_number> <directory> # set HDFS space quotas hadoop dfsadmin -setSpaceQuotas <max_size> <directory> # clear HDFS name
4207浏览
4推荐
1评论
-
通过jpype实现python调用Hadoop Java Client操作HDFS
通过python操作HDFS有非常好用的模块hdfs3 ,其底层依赖c++模块libhdfs3,起初libhdfs3不支持acl权限校验对于设置了acl权限的目录和文件会报NOTFOUND错误(现已解决,可见libhdfs3-downstream ) 起初想过通过python调用java的hadoop jar包来解决这个问题,对其做出了部分尝试,但是卡在了获取文件输入输出流,没有很好的解决办法。就当python调用java包的一次尝试吧。 通过python操作java的jar包有很多方案,这里我们介绍两种,jpype和py4j。两者都能够让python代码方便的调用java代码,从
4315浏览
0推荐
1评论
-
运维工具SaltStack简介
当我们决定要自己动手做一个Hadoop生态集群管理服务的时候我们已经入了运维的坑了。如果我们对于Hadoop生态集群管理服务到底有哪些功能,应该如何设计的话我们需要对现有的成熟的Hadoop生态安装管理服务进行剖析,帮助明确我们需要的功能以及系统的设计。关于Apache顶级项目Ambari的简单介绍大家可以看这里。 Ambari的运维部分是基于Puppet搞的,那么我们不会Ruby感觉Puppet上手很难怎么办?其实这种集群运维工具有很多,大家一起来看这张对比表。 名称 Puppet SaltStack Ansible 开发语言
19945浏览
6推荐
0评论
-
简单分析Ambari——顶级Hadoop管理方案
前面我们提到了两个比较火的Hadoop集群运维管理工具 Ambari和Cloudera Manager。它们集安装,配置,监控于一身,对于Hadoop的初学者可以起到很好的帮助作用。这篇文章就对Ambari着重介绍一下,看一下它相关的一些架构,对于后面我们自己开发基于Apache Hadoop发行版的自动安装服务有帮助。 关于Ambari的简介和安装大家可以看这篇文章:Ambari——大数据平台的搭建利器 Ambari拥有很多的功能,它的大部分功能都是基于一些优秀的开源项目,Ambari充分的将它们结合起来从而实现在分布式环境中
5568浏览
6推荐
1评论
-
运维管理Hadoop生态集群工具比较
现在想学习大数据肯定学习Hadoop,每个新手在学习Hadoop的时候都需要去安装一个属于自己的测试环境才能开始愉快的玩耍。但是Hadoop的发行版本非常多,我们常用的主要有三个版本。 Cloudera版本(CDH) Apache开源版本 Hortonworks版本(HDP) 上面的顺序也是在国内的使用率排序了。其中CDH版本由于对Hadoop版本划分非常清晰,相关文档比较规范因此很多人都在使用。 而Apache的开源版本版本繁多,各个版本与其他版本之间的兼容性问题较大,而且需要编写大量的配置文件,并需要将其分发到各个
3960浏览
3推荐
0评论
-
HBase 2.0 你应该了解的新特性
2018年4月30日HBase发布了2.0的Release版本。HBase的2.0版本承载了太多的Features,共包含4551个Issues,可以说是迄今最大的一个版本。 HBase2.0做了那么多的改动,总有一些新特性值得我们去关注。这里做一个简单的介绍,后续会对某些特性做详细的介绍。 A new Region assignment manager AssignmentManager V2("AMv2")基于Procedure V2实现,能够更快速的分配Region,维护的region状态机存储不再依赖于ZooKeeper,能够更好的应对Region长时间RIT问题。 Offheaping of Read/Write
9174浏览
7推荐
0评论
-
HBase完全分布式配置
前面我们已经配置过了伪分布式的HBase集群,主要是为了学习方便,如果我们有条件或者要上在测试环境搭建集群我们肯定不能搭一个伪分布式的集群了事吧。这篇文章我们就来看一下如何搭建完全分布式的HBase集群。 我们搭建完全分布式HBase集群的前提是: Zookeeper集群正常 Hadoop集群正常 其中Zookeeper集群的配置和Hadoop集群的配置 我们前面也有讲过,大家可以参考一下。 HBase的分布式集群配置也非常简单,修改hbase-site.xml与regionservers文件即可。大家可以查看官方示例。 假设我们
3390浏览
0推荐
0评论
-
Hadoop完全分布式集群安装
前面我们配置了伪分布式的Hadoop集群供我们学习Hadoop的基础操作,当我们对Hadoop的操作熟练之后肯定要部署到正式的环境,这个时候肯定就需要部署完全分布式的环境了。那么完全分布式的Hadoop集群如何配置呢? 我们配置伪分布式Hadoop集群的时候提到我们具体操作的步骤为: 配置免密登录 配置JDK环境 安装配置Hadoop Hadoop NameNode格式化及运行测试 当我们配置完全分布式的时候就意味着我们需要将 1 2 3 步循环N次,N等于你集群的机器数量。比如我们要配置一个拥有3个节点的小集群
4306浏览
6推荐
3评论
-
我们为什么需要HBase?
我们肯定听说过HBase,但是对于HBase的了解可能仅仅是它是Hadoop生态圈重要的一员,它是大数据技术圈一个很强的开源项目。然后内心os:它很屌,但是我用mysql/oracle。 一门技术的兴起,一个优秀的开源项目的存在肯定是有它所存在的意义,正如大数据一样,正是因为随着时间的发展,随着技术的发展导致我们每天的数据增量达到一个非常庞大的状态,同时在数据之中又能挖掘到很多有用的信息。所以才有了大数据技术的飞速发展。那么,我们为什么需要HBase,什么时候需要HBase呢? HBase是什么? H
9090浏览
13推荐
0评论
-
Phoenix:Put the SQL back in NoSQL
你是否已经冲入了大数据的浩瀚海洋,然后在里面跌宕起伏,遇坑无数?你是否被一堆API,接口,命令,文档而折磨?初入大数据不禁让我们感叹一声,这玩意儿不好搞啊! 今天我就来介绍一个可以让我们十五分钟就能使用分布式列式数据库HBase的工具:Phoenix。这真的不是我标题党,绝非十五分钟从入门到跑路,从跑路到删库。 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。 注:Hive和Impala也可以对HBase进行查
3880浏览
4推荐
1评论
-
HBase伪分布式安装
Hadoop是我们在解决海量数据存储和处理等问题时常用的解决方案,我们利用Hadoop的HDFS对海量数据进行存储,通过开发MapReduce类型的程序对数据进行处理。但是现在我们一提到Hadoop并不是单纯的指这一个项目,而是指整个的Hadoop的生态圈。因为像Hadoop这么刁的还有十几个。比如数据仓库工具Hive,列式数据库HBase,集群构建工具Ambari,基于内存的分布式计算工具Spark,数据同步工具Sqoop等等。 今天我们就来说说HBase。HBase是apache的顶级项目,基于Hadoop的HDFS文件系统进行数据存储,这点呢
8945浏览
11推荐
1评论
-
安装Linux虚拟机,助力学习大数据
大数据技术是非常火热的,很多IT专业或者已经从事相关工作的小伙伴都想了解一下大数据技术。当我们开始接触大数据的时候,玩得转Linux是必备的技术功底,而我们常用的操作系统一般都是windows,这时候千万不要因为环境问题打消了你学习的积极性,我们首选的解决方案肯定是装虚拟机来解决这个问题。如果你对linux系统不排斥,没有游戏需要的话,你也可以完全使用linux来进行一些开发工作(需要.NetFramework环境除外)。本文呢就来讲解一下如何安装Linux虚拟机。 在windows下常用的虚拟机软件有V
7377浏览
15推荐
1评论
-
Hadoop2伪分布式安装
最近有观看我主讲的《Hadoop基础与演练》课程的同学问到Hadoop环境到底应该怎么安装。Hadoop的安装其实非常的简单,网上有很多教程,官网也有示例。但是可能部分同学对于linux不太熟悉,导致安装的时候会遇到各种问题,打击学习激情。本文就来详细的讲解一下如何配置Hadoop2的伪分布式环境,帮助我们对其进行学习。 注:大家还是要学习一些linux基本命令,用到的时候很多 接下来我们进入正题,安装配置伪分布式的Hadoop集群到底分几步? 配置免密登录 配置JDK环境 安装配置Hadoop Hadoop
13380浏览
18推荐
6评论