HDFS

总结:ZooKeeper

元气小坏坏 提交于 2020-08-12 00:21:38
一、ZooKeeper数据模型 从图中我们可以看出ZooKeeper的数据模型,在结构上和标准文件系统的非常相似,都是采用这种树形层次结构, ZooKeeper树中的每个节点被称为—Znode 。和文件系统的目录树一样,ZooKeeper树中的每个节点可以拥有子节点。但也有不同之处: (1) 引用方式   Zonde通过 路径引用 ,如同Unix中的文件路径。 路径必须是绝对的 ,因此他们必须由斜杠字符来开头。 除此以外,他们 必须是唯一的,也就是说每一个路径只有一个表示,因此这些路径不能改变 。在ZooKeeper中,路径由Unicode字符串组成,并且有一些限制。字符串"/zookeeper"用以保存管理信息,比如关键配额信息。 (2) Znode结构   ZooKeeper命名空间中的 Znode,兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分。 图中的每个节点称为一个Znode。 每个 Znode由3部分组成 :    ① stat :此为状态信息, 描述该Znode的版本, 权限等信息    ② data :与该Znode关联的数据    ③ children :该Znode下的子节点   ZooKeeper虽然可以关联一些数据,但并没有被设计为常规的数据库或者大数据存储,相反的是,它用来

架构层面调优之压缩整合hive的使用

僤鯓⒐⒋嵵緔 提交于 2020-08-11 23:51:42
//创建数据库 create database interview; //使用表 use interview; //创建表 create table page_views( track_time string, url string, session_id string, referer string, ip string, end_user_id string, city_id string ) row format delimited fields terminated by '\t' ; //加载数据 load data local inpath '/home/hadoop/data/page_views.dat' overwrite into table page_views; //查询数据 select * from page_views limit 10; 查看表在hdfs上的大小(未压缩前) desc formatted page_views; 位置在hdfs://node002/9000/user/hive/warehourse/interview.db/page_views hadoop fs -du -s -h hdfs://node002/9000/user/hive/warehourse/interview.db/page_views;

kylin -- 快速入门概述

心不动则不痛 提交于 2020-08-11 23:47:43
1.快速入门概述 1.1 Kylin 定义 Apache Kylin 是一个开源的分布式 分析引擎 ,提供 Hadoop/Spark 之上的 SQL 查询接口 及多维分析(OLAP )能力以支持超大规数据,最初由 eBay Inc 开发并贡献至开源社区。 它能在亚秒内查询巨大的 Hive 表。 1.2 Kylin 特点 Kylin 的主要特点包括支持 SQL 接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI 工具集成等。 1 ) 标准 SQL 接口: Kylin 是以标准的 SQL 作为对外服务的接口。 2 ) 支持超大数据集: Kylin 对于大数据的支撑能力可能是目前所有技术中最为领先的。 早在 2015 年 eBay 的生产环境中就能支百 亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。 3 ) 亚秒级响应: Kylin 拥有优异的查询相应速度,这点得益于 预计算 ,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量, 提高了响应速度。 4 ) 可伸缩性和高吞吐率: 单节点 Kylin 可实现每秒 70 个查询,还可以搭建 Kylin 的集群。 5 ) BI 工具集成 Kylin 可以与现有的 BI 工具集成,具体包括如下内容。 ODBC :与 Tableau 、 Excel 、 PowerBI

spark笔记(二)之RDD常用算子

♀尐吖头ヾ 提交于 2020-08-11 21:42:31
大家好!下面是我在疫情假期期间学习的saprk算子笔记,刚刚用了一下午的时间把它整理出来分享给大家!码字实属不易如果对你有帮助,记得点赞呦! 文章目录 一.spark行动算子 二.spark单value类型 三.spark双value类型 四.spark算子KV类型 一.spark行动算子 1.reduce( f: (T, T) => T ) :通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。 val list1 : RDD [ Int ] = sc . makeRDD ( 1 to 10 ) val reduceRDD : Int = list1 . reduce ( _ + _ ) println ( reduceRDD ) //55 2.collect() :在驱动程序中,以数组的形式返回数据集的所有元素。 val list1 : RDD [ Int ] = sc . parallelize ( List ( 1 , 2 , 3 , 4 , 5 ) ) list1 . collect ( ) . foreach ( println ) 返回值:Array ( 1 , 2 , 3 , 4 , 5 ) 3.count() :返回RDD中元素的个数。 val list1 : RDD [ Int ] = sc . parallelize ( List (

如何做一次Elasticsearch技术分享?

╄→尐↘猪︶ㄣ 提交于 2020-08-11 21:02:06
0、问题引出 经群讨论,建议从以下几个方面展开,大家有好的想法,也欢迎留言交流。 1、可视化展示ELK效果 如果条件允许,demo的内容是:通过logstash 同步日志或数据库(oracle、mysql)表的数据到 Elasticsearch,然后通过kibana进行可视化。 1 通过Canvas对数据进行可视化布局与展现,可以实现非常酷炫的大屏展示效果。 2 展示实时数据的数据量。 3 展示你定的几个维度的数据信息。 这么切入的目的:很直观,很明显,很接地气。用到ELK技术栈的内容,有带动性,让参与的同事不犯困且很容易让大家对它产生兴趣。 2、 Elk stack大家族简介 考虑到不同受众关注点不同。结合业务的数据的特点,从输入、中间处理、存储&检索、分析等全数据流环节展开。 2.1 输入 Elastic 支持的输入包含但不限于: 日志类数据:类log4j.log,apache log等,可借助 beats或logstash同步 关系型数据库:mysql oracle pgsql等 非关系型数据库:mongodb redis等 实时数据流:flink spark kafka hdfs等 大数据:hadoop hdfs等 此处的不同数据的导入,Lostash有丰富的input/output插件,支持N多不同数据源接入,估计同事也会眼前一亮。 2.2 中间处理ETL

Flume简介与详细安装教程

孤人 提交于 2020-08-11 14:47:04
Flume简介 Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 Flume是一个分布式、可靠和高可用的海量日志采集、聚合和传输的系统。 Flume拥有基于数据流上的简单灵活架构,支持容错、故障转移与恢复。 Flume具有 Reliability、Scalability、Manageability和Extensibility 特点: 1.Reliability :Flume提供3中数据可靠性选项,包括End-to-end、Store on failure和Best effort。其中End-to-end使用了磁盘日志和接受端Ack的方式,保证Flume接受到的数据会最终到达目的。Store on failure在目的不可用的时候,数据会保持在本地硬盘。和End-to-end不同的是,如果是进程出现问题,Store on failure可能会丢失部分数据。Best effort不做任何QoS保证。 2.Scalability :Flume的3大组件:collector、master和storage tier都是可伸缩的。需要注意的是,Flume中对事件的处理不需要带状态,它的Scalability可以很容易实现。 3.Manageability

Hive-内部表&外部表&分区表&扩展命令

半城伤御伤魂 提交于 2020-08-11 07:33:25
先看下如何创建数据表 create [external] table if not exists 表名 (列名数据类型 [comment 本列注释],...) [comment 表注释] [partitioned by (列名数据类型 [comment 本列注释],...)] [clustered by(列名,列名,...)] [sorted by (列名 [asc|desc],...)] info num_buckets buckets] [row format row_format][stored as file_format] [location hdfs_path] [tblproperties (property_name=property_value,...)] [as select_statement] 说明: ①external表示创建外部表;hive在创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变 ②partitioned by表示创建分区表 ③clustered by创建分桶表 ④sorted by 不常用 ⑤row format delimited [fields terminated by char] [collection items terminated by char] [map keys

滴滴HBase大版本滚动升级之旅

我是研究僧i 提交于 2020-08-11 07:32:06
桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知。新版本为我们带来了丰富的新特性,在性能、稳定性与易用性方便也均有很大提升。我们将整个升级过程中面临的挑战、进行的思考以及解决的问题总结成文,希望对大家有所帮助。 1. 背景 目前HBase服务在我司共有国内、海外共计11个集群,总吞吐超过1kw+/s,服务着地图、普惠、车服、引擎、金融等几乎全部部门与业务线。 然而有一个问题持续困扰着我们:版本较社区落后较多——HBase线上集群使用0.98版本,而社区目前最新的release版本为2.3。这为我们的工作带来了很多额外的掣肘与负担,主要包括以下几点: 新特性引入成本极高: 0.98版本可以算是HBase第一个稳定版本,但过于老旧,社区已经不再维护。想要backport新特性难度越来越大。 自研patch维护成本较高: 我们基于0.98版本有数十个大大小小的自研patch,涵盖了从label分组、ACL鉴权等大的feature到监控体系建设、审计日志优化等Improvement以及各种bug fix。这些patch或是新版本中已支持但和我们实现有差异,或是由于版本差异过大无法合入社区,而且随着时间线的拉长,这种问题只会进一步恶化。 上层组件对于HBase存在一定需求: 得益于活跃的HBase生态圈,目前我们的用户使用形态也比较丰富,OLAP

大数据

落爺英雄遲暮 提交于 2020-08-11 05:06:34
HDFS 主要内容 ① HDFS概述 1.1 HDFS定义 HDFS是一个 文件系统 ,用于存储文件;其次,它是 分布式的 ,由很多服务器联合起来实现功能; HDFS的使用场景 : 适合一次写入,多次读出的场景,且不支持文件的修改 。适合用来作数据分析,不适合做网盘应用。 HDFS只是分布式文件管理系统中的一种。 1.2 H DFS优缺点 优点: 缺点: 1.3 HDFS组 成架构 简单来说就是: NN :存储数据的目录; DN :存储具体的信息; 2NN :辅助NN工作; 1.4 HDFS文件块大小( 面试重点 ) HDFS中的文件是分块(block)存储的,block在hadoop 2.x中默认是128M,在hadoop 1.x中是64M。 ② HDFS的数据流( 面试重点 )--- 相当重要 HDFS写数据流程: 具体流程: 1 客户端向NamaNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 2 NameNode返回是否可以上传。 3 客户端请求NameNode,第一个block快上传到哪几个节点。 4 NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。 5 客户端向dn1请求上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。 6 dn1、dn2、dn3逐级应答回复客户端。 7

关于分布式系统升级,你需要了解的几点

萝らか妹 提交于 2020-08-11 03:55:02
文章目录 前言 分布式系统升级的状态转化 关于Upgrade需要注意的点 关于Downgrade需要注意的点 引用 前言 对于一个系统来说,进行定期的升级维护是一件比较常见的事情。但是对于复杂分布式系统的升级,系统管理员系统考虑更多的因素来做升级这个事情。同时对于分布式系统开发者来说,他们也要考虑系统升级的前后兼容性,避免升级后部分老的功能无法使用或是升级回退后之前写出的数据无法使用等等类似的情况。本文笔者来简单聊聊关于分布式系统的升级,你需要了解和注意的那些事。 分布式系统升级的状态转化 在介绍本文主要内容前,我们首先需要对分布式系统的升级有一个总的了解,了解这里面总的几个过程阶段。 在这里,我们一般会有3个阶段: Older Version,升级前的初始阶段。 Pre-Finalized,升级中且并未结束的阶段。 New Version(Finalized),升级结束完成阶段。 在这3个阶段的状态转变过程中,需要外界来输入些action操作,来促使状态的转变,由用户来决定是否可以进入到下一个阶段了。 从Old Version到Pre-Finalized的action为Upgrade升级操作 从Pre-Finalized到New Version的action为Finalize确认操作 从Pre-Finalized到Old Version的action为Downgrade降级操作