03 2020 档案
摘要:给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和 ' '的正则表达式匹配 解决这个问题有两种方法:回溯和动态规划 回溯 字符串为s,正则表达式为p。 流程如下: 当p为NULL,s为NULL匹配成功,s不为NULL匹配失败。 s不为NULL,匹配s和p的第一个字符,注意 '.'。 判断
阅读全文
摘要:Flume概述 Flume是一个高可用、高可靠、分布式的海量日志数据采集、聚合、传输的系统。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方的能力。 Flume(Agent,Java进程)主要由三个重要组件构成: source,
阅读全文
摘要:1 Zookeeper概述 Zookeeper是一个开源的,为分布式应用提供协调服务的项目。 1.1 工作机制 从设计模式角度来看,zookeeper是一个基于观察者模式设计的分布式服务管理框架。负责存储和管理元数据等信息。它接受观察者的注册,一旦数据发生变化,zookeeper会通知这些观察者,并
阅读全文
摘要:锁的分类 读锁和写锁,表锁和行锁 表锁 偏向MyISAM存储引擎,开销小,加锁快,无死锁。发生锁冲突的概率最高,并发度最低。 读锁 会话1对表1加了读锁后,可以查询表1,不能更新表1,也不能查询别的表。与此同时会话2可以查询表1,更新表1会阻塞,等待读锁的释放。 写锁 会话1对表1加了写锁后,可以查
阅读全文
摘要:SQL性能下降原因 SQl性能下降会导致执行时间长,等待时间长。 导致SQL性能下降的原因有4点: 查询语句写的不好 索引失效 关联查询,太多join 服务器调优以及各个参数设置,比如缓冲、线程等 索引简介 索引是帮助MySQl高效获取数据的数据结构,索引是数据结构。索引的目的在于提高查询效率,在这
阅读全文
摘要:Explain 使用EXPLAIN关键字可以模仿优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句,分析SQL语句的性能瓶颈出现在哪里。 显示信息 id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。 id相同,执行顺序由上至下。id不同(子查询
阅读全文
摘要:事务基本性质 事务有四个属性,ACID。 原子性Atomicity,事务里的命令全部执行,或全部不执行,是不可分割的整体。 一致性Consistency,保证操作前后数据和数据结构的一致性。 隔离性Isolation,不同事物之间互补干扰。同一时间只允许一个事务请求一个数据。 持久性Durabili
阅读全文
摘要:Redis的Java客户端Jedis 需要导入的包 Commons pool 1.6.jar Jedis 2.1.0.jar 测试连通性 常用API 事务 日常 加锁 public class TestTransaction { public boolean transMethod() { Jedi
阅读全文
摘要:主从复制 Redis根据配置和策略进行主从复制,其中Master以写为主,Slave以读为主。 配置策略 一主二仆 一个Master,多个Slave,Slave从Master复制信息,用于读数据,写操作只能在Master上执行。 薪火相传 一个Master,多个Slave会造成中心化严重,Maste
阅读全文
摘要:Redis持久化的意义 作为内存数据库,在机器故障时,会丢失数据,持久化将数据读入磁盘,起到备用的作用。 Redis持久化分为两个部分RDB(Redis DataBase)和AOF(Append Only File) RDB(Redis DataBase) Redis在 指定的时间间隔 内将内存中的
阅读全文
摘要:Redis基本知识 Redis介绍 Redis:REmote DIctionary Server,远程字典服务器。是完全开源免费,用C语言编写的一个高性能Key Value分布式内存数据库.其基于内存运行,支持持久化,是最热门的NoSQL数据库之一。 Redis具有消息中间件、发布订阅消息系统、定时
阅读全文
摘要:Linux概述 Linux是一个开源、免费的操作系统。 Linux是一个内核,在linux内核上加工包装,二次开发成Ubuntu、CentOS等发行版。 Linux常用命令集 vi,vim,文本编辑器 vi和vim的三种常见模式:正常模式,可以使用快捷键处理文件;编辑模式,按i进入编辑模式;命令行模
阅读全文
摘要:集群成员关系 Kafka使用zookeeper来维护集群成员信息。每个broker都有一个唯一标识符broker.id。在broker启动时,它把自己的ID注册到zookeeper。Kafka组件订阅zookeeper的brokers/ids/路径,当有broker加入或退出集群时,这些组件就获得通
阅读全文
摘要:消费者和消费者群组 生产者往主题写入消息的速度超过了应用程序验证数据的速度。如果使用单个消费者处理消息,应用程序跟不上消息生成的速度。此时,有必要对消费者进行横向伸缩,我们可以使用多个消费者从同一个主题读取消息,对消息进行分流。 一个群组里的消费者订阅同一个主题,每个消费者接收主题的一部分分区的消息
阅读全文
摘要:开发者可以使用Kafka内置的客户端API开发应用程序 生产者 一个应用程序往kafka写入消息:记录用户的活动、记录度量指标、保存日志消息、记录智能家电的信息、与其他应用程序进行异步通信等 发送消息流程 创建一个ProducerRecord对象开始,ProducerRecord对象需要包含目标to
阅读全文
摘要:将生产者和消费者解耦 使用消息队列的好处 解耦:允许你独立的扩展或修改两边的处理过程,只要确保他们遵守同样的接口约束 可恢复性:系统一部分组件失效时,不会影响到整个系统,降低了进程间的耦合度 缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息处理速度不一致的情况 异步通信 Kafka
阅读全文
摘要:Spark SQL简介 Shark Shark即Hive On Spark,Shark再HiveQL方面重用了Hive中HiveQL的解析器、编译器、优化器,可以近似认为仅将物理执行计划从MapReduce作业替换成了Spark作业,通过Hive的HiveQL解析,把HiveQL翻译成Spark上的
阅读全文
摘要:Spark集群上的运行 Spark集群采用的是主/从结构,主是驱动器节点driver,其他是工作节点executor,之间通过集群管理器来连接。 驱动器在Spark应用有两个职责: 把用户程序转为任务。转为多个物理执行的单元,即任务task。驱动器会按DAG图来执行,也会对DAG进行流水线优化,形成
阅读全文
摘要:抓取 Hive中对于某些情况的查询可以不必使用MapReduce计算。例如SELECT,Hive可以简单读取对应的存储目录的文件信息。 可以设置一些参数,全局查找、字段查找、limit查找等都不使用MapReduce。或者执行查询语句都执行MapReduce。 本地模式 在Hive处理的输入数据量很
阅读全文
摘要:自定义函数 用户可以通过自定义UDF来方便的扩展(user defined function)。根据用户自定义函数类别,分别为一下三种: UDF,一进一出 UDAF,聚集函数,多进一出 UDTF,一进多出 编程步骤 1. 继承org.apache.hadoop.hive.ql.UDF 2. 实现ev
阅读全文
摘要:高可用 在HBase中HMaster负责监控HRegionServer的生命周期,均衡RegionServer的负载,如果HMaster挂掉了,整个HBase集群就出问题了,所以HBase支持对HMaster的高可用配置。 高可用配置是为了解决主从架构的单点失效故障问题。所以要对Master进行一个
阅读全文
摘要:之前有操作过HBase和Hive的案例,将30w条数据从Hive导入HBase。使用sqoop可以快速简单做到,但是在最新版HBase2.0与最新版Hive3.0之间,旧版sqoop不行,因此当时使用了JDBC来连接两者,达到数据导出的目的。 HBase与Hive的对比 Hive 作为数据仓库,Hi
阅读全文
摘要:感觉效率不是很高,是否能用sqoop来解决HBase与其他文件系统的数据导入导出。 通过HBase的相关JavaApi,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地文件导入HBase的表中,或我们从HBase的表中读取一些原始数据用于MapReduc
阅读全文
摘要:MapReduce程序瓶颈 计算机性能 CPU、内存、磁盘、网络 I/O操作优化 数据倾斜 Map和Reduce数设置不合理 Map运行时间太长,导致Reduce等待过久 小文件过多 大量的不可分块的超大文件 spill次数过多 merge次数过多 MapReduce优化方法 主要从六个方面考虑:数
阅读全文
摘要:Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于分布式的操作系统平台。 Yarn基本架构 Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 ResourceManager的作用: 处理客户端请
阅读全文
摘要:Reduce Join工作原理 Map端的主要工作:对来自不同表或文件的key/value对,打上标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加标志作为value,最后进行输出 Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组中
阅读全文
摘要:常用数据序列化类型 Java类型 | Hadoop Writable类型 | boolean | BooleanWritable byte | ByteWritable int | IntWritable String | Text map | MapWritable array | ArrayWr
阅读全文
摘要:以下API均为HBase API 3.0版本。 API3.0与API2.0对比 Put、Delete、Scan类的API没有发生太多改变 HTableDescriptor类被TableDescriptorBuilder替代,HColumnDescriptor被ColumnFamilyDescript
阅读全文
摘要:HBase简介 HBase的原型是BigTable HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,可以廉价搭建大规模结构化存储集群 HBase的目标是存储并处理大数据 利用HDFS作为文件存储系统,利用MapReduce处理数据,利用Zookeeper协同服务 扩展HRegion
阅读全文
摘要:数据操作 加载数据 LOAD DATA 加载数据 LOCAL 本地数据,不加LOCAL就是分布式文件系统数据 OVERWRITE表示覆盖表中已有数据,否则表示追加 通过查询语言插入数据 这里使用了OVERWRITE关键字,之前分区内容会被覆盖掉。这是一次插入。 以下为多次插入,对多个分区目录插入数据
阅读全文
摘要:数据定义 创建数据库 Hive不支持行级插入操作、更新操作和删除操作,也不支持事务。HiveQL和MySQL比较相似。 创建Hive的数据库,数据库的文件目录名以.db结尾。 可以通过以下命令来修改默认的位置: 查看数据库信息,会显示数据库文件目录位置路径 创建表 创建表,COMMENT信息,LOC
阅读全文
摘要:Hive综述 Hive:用于解决海量结构化日志的数据统计 基于Hadoop的数据仓库工具,将结构化的数据文件映射为一张表,并提供类SQL的查询功能 本质是把HiveQL转化为Mapreduce程序 Hive不支持记录级别的更新、插入和删除操作 Hive查询延时严重,因为要启动mapreduce任务
阅读全文
摘要:下载压缩包,解压 配置环境变量 修改/hive/conf下的hive site.xml 设置元数据存储的信息,以及连接账户密码为hive
阅读全文
摘要:RDD操作 词频统计 line = sc.textFile("file:///usr/local/spark/word.txt") wordCount = lines.flatMap(lambda line: line.split(" ").map(lambda word: (word,1)).re
阅读全文
摘要:HBase安装 在HBase学习中有安装指导博客 创建HBase表 启动Hadoop、Spark 创建表 插入数据 Spark配置 下载jar包 把hbase/lib下的jar包拷贝到spark/jars目录下。 拷贝的jar包有:hbase .jar,guava 12.0.1.jar,htrace
阅读全文
摘要:解压安装包 目录改名为/hbase HBase配置文件 伪分布式需要配置两个文件,hbase/conf/hbase env.sh和hbase/conf/hbase site.xml 这样就安装成功了。 启动hadoop和hbase,进入hbase shell。
阅读全文
摘要:Spark数据读取 对于存储在本地文件系统或分布式文件系统(HDFS、Amazon S3)中的数据,Spark可以访问很多种不同的文件格式,比如文本文件、JSON、SequenceFile Spark SQL中的结构化数据源,包括JSON和Hive的结构化数据源 数据库和键值存储,自带的库,联结HB
阅读全文
摘要:事务处理 用COMMIT和ROLLBACK来管理事务处理。MyISAM不支持事务处理,InnoDB支持事务处理。 事务处理可以用来维护数据库的完整性,保证成批的MySQL操作要么完全执行,要么完全不执行。 更复杂的事务处理需要用到部分提交或回退,SAVEPOINT保留点 字符集和校对 SHOW CH
阅读全文
摘要:视图 视图是虚拟的表,只包含使用时动态检索数据的查询。 视图作用:重用SQL语句;简化复杂的SQL操作;使用表的组成部分;保护数据;更改数据格式和表示。 CREATE VIEW创建视图;SHOW CREATE VIEW viewname查看创建视图语句;DROP VIEW viewname删除视图。
阅读全文
摘要:联结表 外键,为某个表的一列,包含另一个表的主键值。 使用联结可以用多个表查询信息。 使用完全限定列名,防止出现二义性。 使用表别名 作用:缩短SQL语句,允许在单条SELECT语句中多次使用相同的表。 不同类型联结 自联结,自然联结,外部联结 联结包含了那些在相关表中没有关联行的行,这种联结称为外
阅读全文
摘要:键值对RDD通常用来进行聚合计算。通过ETL将数据转化为键值对形式。 PairRDD是很多程序的构成要素,提供了并行操作各个键或跨节点重新进行数据分组的操作接口。 pair RDD提供reduceByKey()可以分别规约每个键对应的数据,join()把两个RDD中键相同的元素组合到一起。 Pair
阅读全文
摘要:HDFS组成架构 NameNode 管理HDFS的名称空间 配置副本策略,fsimage和edit 管理数据块block映射信息 处理客户端读写请求 DataNode 存储实际的数据块 执行数据块的读写操作 Client 文件切分,split成block 与NameNode交互,获取数据块位置信息
阅读全文
摘要:RDD创建 每个RDD被分为多个分区,这些分区运行在集群的不同节点上。 用户可以使用两种方法创建RDD:读取一个外部数据集,或在驱动器程序里driver分发驱动器程序中的对象集合(list和set)。textFile()和parallelize(). RDD支持两种类型的操作:转换操作和行动操作。惰
阅读全文
摘要:查看数据库表信息 查询语句 DISTINCT 检索出不同值的列 LIMIT 限制返回的行数 排序检索 使用ORDER BY 和LIMIT 可以找出列中最高或最低的值 SELECT COLUMN1 FROM TABLE1 ORDER BY COLUMN1 LIMIT 1; 过滤数据 WHERE搜索条件
阅读全文
摘要:外模式包括若干视图,模式包括基本表,内模式包括如存储文件。 内模式改变,不影响模式,即数据的物理独立性。模式外变,不影响外模式,即数据的逻辑独立性。 模式SCHEMA、表TABLE、视图VIEW、索引INDEX。其中模式和视图不能修改,只能删除重新创建。模式关于数据库和表的布局及特性的信息。 视图
阅读全文
摘要:MySQL安装 终端输入 启动和关闭mysql服务器 进入mysql shell界面 在Ubuntu18.04第一次安装mysql进入Shell时,需要设置密码 得到一系列信息: 1. user 2. password 用mysql u debian sys maint p和相应的密码登录mysql
阅读全文
摘要:最高层客户端,中间是服务器(sql查询及解析器),最底层是存储引擎(MySQL是InnoDB),通过API访问,执行事务。 当客户端连接到MySQL服务器时,服务器需要对其进行认证。认证基于用户名、原始主机信息、密码。连接成功后,会验证该客户端是否具有执行某个查询的权限。 服务器层和存储引擎层的并发
阅读全文
浙公网安备 33010602011771号