- 博客(176)
- 资源 (40)
- 问答 (1)
- 收藏
- 关注

原创 Kafka最佳实践
前言Kafka 是一种分布式的,基于发布/订阅体系的消息队列系统。能够以 时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证 常数时间复杂度 的访问性能。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。kakfa 是大数据系统架构中不可或缺的一部分,因其高效的性能、高可靠的数据与服务、提供准确一次的语义、优秀的在线水平扩展等特性,...
2019-11-28 09:18:01
915

原创 Flink最佳实践(二)Flink流式计算系统
前言在 Flink最佳实践(一)流式计算系统概述 中,我们详细讨论了流式计算系统中 时域、窗口、时间推理与正确性工具 等概念。本文将以这些概念为基础,逐一介绍 Flink 的 发展背景、核心概念、时间推理与正确性工具、安装部署、客户端操作、编程API 等内容,让开发人员对 Flink 有较为全面的认识并拥有一些基础操作与编程能力。一、发展背景1.1 数据处理架构在流处理器出现之前,数据处...
2019-11-25 09:41:51
2089

原创 Flink最佳实践(一)流式计算系统概述
前言传统的批处理拥有巨大 吞吐量 的优势,但是随之而来的是极其 高延迟 的缺陷。随着大数据系统的不断发展,传统的批处理已然无法全部满足对 时效性 要求愈加严苛的业务需求。为了适应逐渐变得 「实时」 的年代,大数据系统架构也由简单的批处理转向批流混合的Lambda架构,最后可能会逐渐演变成只有流计算的 高精准高时效 的Kappa架构。无论是看起来像是过渡期产物的批流混合,还是感觉像是 「终结...
2019-11-18 15:35:15
1299

原创 Spark最佳实践-项目规范
前言大数据开发的日常工作中,开发人员经常需要使用 Spark、Flink 等计算引擎作为工具来实现一些 业务逻辑 的计算。以 Spark 为例,开发人员会使用 SparkSQL、DataFrame、RDD 等不同形式的API来实现业务需求。通常情况下,简单的需求都可以通过 SparkSQL、DataFrame 很方便的实现,其简洁的API也是其深受数据分析师青睐的原因之一。但是正是因为 S...
2019-10-17 01:42:59
637
1

原创 HBase最佳实践
本文致力于从架构原理、集群部署、性能优化与使用技巧等方面,阐述在如何基于HBase构建 容纳大规模数据、支撑高并发、毫秒响应、稳定高效的OLTP实时系统 。一、架构原理1.1 基本架构从上层往下可以看到HBase架构中的角色分配为:ClientZookeeperHMasterRegionServerHDFSClientClient是执行查询、写入等对HBase表数据进行增...
2019-10-11 22:42:53
819

原创 Spark最佳实践
前言本文主要分为四个部分:分布式计算概览:第一章将会从基础的 分布式计算理论 开始,讨论一个分布式计算系统需要实现哪些 主要的功能,以及业界通用的解决方案,并在最后简单扩展了下分布式计算系统的发展历程。这部分主要为开发人员 奠定分布式计算系统的重要理论概念。Spark技术细节:基于第一章讨论的理论知识,在第二章中我们将会深入讨论Spark是如何 通过从逻辑执行图转化为物理执行图 来实现分布...
2019-10-11 10:34:48
13942

原创 HBase生产环境配置与使用优化
https://yq.aliyun.com/articles/665520?spm=a2c4e.11155435.0.0.407c3312acd7tdHBase上线至今,承载了线上所有实时交易量,虽然大部分请求都能够保证服务稳定(99.56%响应时间毫秒级),但是一旦HBase出现问题就是鸡飞狗跳的灾难。从老机器到新集群,从老机房到新机房,期间经历过各种问题和生产故障,总结一番以备不时之需。...
2018-11-12 10:16:19
4573
1

原创 HBase性能优化指南
垃圾回收优化当region服务器处理大量的写入负载时,繁重的任务会迫使JRE默认的内存分配策略无法保证程序的稳定性 所以我们可能需要对region服务器的垃圾回收机制进行一些参数调整(因为master并不处理实际任务,所以没有优化的必要)首先来了解JAVA内存中的几个概念在HBase构架中我们可以知道 数据会被写入到memstore内存中直到达到一个阈值之后刷写持久化到磁盘 但是由于数据是客户
2016-07-19 16:55:24
6715

原创 HBase构架
存储结构HBase构架如上图所示,一个HBase集群是由Zookeeper、HMaster和HRegionServer构成的HRegionServerHBase集群上的各个节点,一个数据量很大的表可能被保存在不同RegionServer上HLogHBase将数据存储在各个HRegionServer上,每个HRegionServer都有一个HLog文件记录该节点上数据的CRUD操作记录 图中错误的地
2016-07-12 19:34:19
4571

原创 MapReduce高级特性
计数器因为计数器的查看往往比查看集群日志来的方便快捷 所以有些情况下计数器信息比集群日志更加有效用户自定义的计数器关于Hadoop的内置计数器的介绍可以参考Hadoop权威指南第九章MapReduce Features中的Build-in Counts小节 这里限于篇幅不再说明MapReduce允许用户在程序中使用枚举或者字符串的格式类自定义计数器 一个作业可以定义的计数器不限,使用枚举类型时
2016-05-10 20:35:43
2922

原创 KMeans算法检测网络异常入侵
非监督学习技术在决策树算法预测森林植被中 我们可以体会到属于监督学习的分类和回归技术的强大,可以预测“即将发生”的事情 使用监督学习技术有一个很关键的前提:需要大量的数据对模型进行训练,模型能够从已知的数据中学习规律进而预测未知的数据然而在某些场景下,并不是都能提供监督学习所需要的样本数据来训练模型,有可能只能给出部分正确的输出,甚至一个输出都没有 这种情况下,监督学习的技术就不能够使用了此时
2016-05-09 17:09:08
11255

原创 MapReduce工作机制
运行流程当你在MapReduce程序中调用了Job实例的Submit()或者waitForCompletion()方法,该程序将会被提交到Yarn中运行 其中的过程大部分被Hadoop隐藏起来了,对开发者来说是透明的 程序运行的过程涉及到个概念: 1.Client:提交程序的客户端 2.ResourceManager:集群中的资源分配管理 3.NodeManager:启动和监管各
2016-05-07 12:54:34
8951

原创 Hadoop核心组件之HDFS
Namenode和Datanode的关系Namenode 维护树状目录结构(NameSpace) 分配并记录每个文件由哪些块组成,以及每个块的信息(大小、时间戳等) 将HDFS的文件和目录元数据存储在一个叫fsimage的文件中, 每次保存fsimage之后到下次保存之间的所有hdfs操作,将会记 录在editlog文件中 被动接受DataNode的HeartBeat,记录Da
2016-03-20 10:56:01
2648
原创 Zookeeper概览
前言Zookeeper 是一个典型的 分布式数据一致性 的解决方案,是谷歌 Chubby 的开源实现,在分布式系统中有非常广泛的应用。分布式应用程序可以基于它来实现 数据发布/订阅、分布式协调/通知、集群管理、Master 选举、命名服务、分布式锁和分布式队列 等功能。在诸如 HDFS、Yarn、HBase、Kafka、Flink 等著名分布式系统中都使用 Zookeeper 来实现各自的 ...
2019-12-06 09:34:24
436
原创 个人信息安全管理条例解释
一、前言近年来,随着信息技术的快速发展和互联网应用的普及,越来越多的组织大量收集、使用个人信息。给人们生活带来便利的同时,也出现了对个人信息的 非法收集、滥用、泄露 等问题,个人信息安全面临严重威胁。为了保护公民个人隐私数据不被肆意收集、滥用、泄漏甚至非法售卖,各国政府纷纷出台相关法律政策文件,对公民个人隐私数据做出法律上的保护与行为规范。2018年5月25日起,欧盟正式施行新版数据安全保护...
2019-11-06 19:46:09
18538
原创 Spark分布式计算引擎的应用
什么是分布式计算基本概念和集中式计算相反,分布式计算的一个计算过程将会在多台机器上进行。组件之间彼此进行交互以实现一个共同的目标,把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论。简单说就是1个人干活和100个人干活的区别。分布式计算是一门计算机科学的研究课题,涉及到许多分支技术(CS模型、集群技术、通用型分布式计算环境等)。...
2018-12-06 20:06:09
1913
2
原创 CDH5.3配置Kerberos+LDAP+Sentry记录
系统环境说明操作系统:Centos6.5CDH版本:5.3JDK版本:1.7操作用户:rootKerberos版本:1.10.3 LDAP版本:2.4.40 Sentry版本:1.4 集群配置机器数量:5 内存:64G 硬盘:10T CPU核心数:24 运行的服务:HDFS、Yarn、HBase、Hive、Sqoop2、Impala、Zookeep
2016-09-06 11:35:55
21723
12
原创 HBase客户端API使用
篇幅中使用的HBase版本为1.1.2Java APIHBase提供了一套Java API来支持Java程序对HBase数据库的请求操作,在hbase shell中能够使用的都可以通过这套API来实现 HBase有两套API,分别是1.0和2.0,在较新版本的HBase中使用1.0的API时,很多类和方法都被标记为Deprecated,官方表示旧版本的API将会在3.0版本中删除,
2016-07-21 19:07:59
9570
原创 HBase集群管理
通过之前文章的描述,我们已经有能力设计并部署搭建HBase集群了 当我们的HBase集群开始运行的时候,新的挑战又来了 例如,我们可能会遇到在集群运行的时候添加或者删除节点 又或者需要拷贝/备份整个集群的数据等等 如何在集群运行的时候以最小的代价来执行这些操作呢? 下面总结一下HBase集群的相关运维和管理知识点运维任务添加/删除节点在HBase中动态添加/删除节点非常简单,只需要一些命
2016-07-20 19:01:21
1739
原创 HBase概览
近期准备系统的学习一下HBase的知识,包括构架和原理等方面,以便为后续的开发工作做准备,做到知其然而之所以然的状态,而不再是瞎子摸象般的搞开发 本篇作为开篇,只是对HBase做一个大体的介绍,各个小节没有很大的关联性,很多只是将系统中一些繁杂又有用的东西记录下来,以备日后查阅学习路线整理了一下手头上HBase的相关资料,发现特别零散,没有一个系统性的指导,所以特别想入一本《HBase权威指南》
2016-07-20 13:43:45
2941
原创 HBase高级用法
行健设计在HBase中有两类基本的键结构:行健和列键 这两者都存储着有意义的信息,不仅仅是该键对应的值: 键本身存储的内容 键的排列顺序 在HBase中,键的排序顺序是十分重要的概念如之前所说,HBase的键分为两种: 列键:包括了列族名和限定符,定位到列的索引 行健:相当于关系型数据库中的主键,通过行健得到逻辑布局中一行的所有列 如
2016-07-18 09:52:35
8030
1
原创 Hadoop集群管理
HDFS进程目录结构对于一个集群管理员来说,理解HDFS各个进程存储在磁盘上的数据含义是十分有用的,可以帮助你诊断和排查一些集群问题Namenode的目录结构HDFS进行初次格式化之后将会在$dfs.namenode.name.dir/current目录下生成一些列文件: ${dfs.namenode.name.dir}/├── current │ ├── VERSION │ ├──
2016-05-22 11:30:14
2107
原创 构架Hadoop集群
Hadoop的安装包可以从以下渠道获取: Apache tarballs:Hadoop官网提供的tar包,包括二进制和源码文件,使用这种方式部署Hadoop集群灵活性比较高,但是要自己进行很多额外的操作 Packages:Hadoop也提供RPM和Debian包,先对比tar包,rpm可以简化部署时候的配置路径等繁琐的操作,并且和Hadoop生态圈中的各个组件版本都兼容对应
2016-05-14 09:59:11
1142
原创 MapReduce的类型与格式
输入格式输入分片与记录之前讨论过,输入数据的每个分片对应一个map任务来处理 在MapReduce中输入分片被表示为InputSplit类,原型如下:public abstract class InputSplit{ //该分片的长度,用于排序分片,有限处理大分片 public abstract long getLength() throw IOException,Interrup
2016-05-08 17:48:47
3175
原创 决策树算法预测森林植被
算法介绍回归和分类回归算法和分类算法通常会被联系在一起,因为两者都可以通过一个或者多个值来预测一个或者多个值 he 为了能够做出预测,两者需要从一组输入和输出中学习预测规则,在学习过程中需要告诉它们问题以及问题的答案 因此,回归和分类都属于监督学习类的算法回归是预测一个数值型的结果,例如温度,成绩等 分类是预测一个标号或者类别,例如邮件是否为辣鸡邮件,一个人是属于哪个人种这里将使用决策树和
2016-05-07 08:58:41
3821
原创 MapReduce程序开发
通过API操作之前要先了解几个基本知识基本数据类型Hadoop的基本数据类型和Java的基本数据类型是不一样的,但是都存在对应的关系如下图 如果需要定义自己的数据类型,则必须实现Writable hadoop的数据类型可以通过get方法获得对应的java数据类型 而java的数据类型可以通过hadoop数据类名的构造函数,或者set方法转换关于Hadoop的Writable接口,详情请看Had
2016-05-05 19:56:53
9011
原创 Hadoop I/O
HDFS中的数据完整性HDFSZ在写入数据的时候会计算数据的校验和,针对每个由dfs.bytes.per.checksum指定字节的数据计算校验和,默认为512个字节 当客户端读取数据的时候,会对数据的校验和进行检查,如果发现数据出现损坏,则会执行以下步骤: 1.向Namenode报告其正在读取的数据块和所在的Datanode,之后会抛出ChecksumException异常 2.Nam
2016-05-04 21:50:10
5298
原创 Hadoop核心组件之Yarn
程序在Yarn上的运行流程如图所示,Yarn上的应用程序运行会经过如下步骤: 1.客户端提交应用程序 2.RM找到一个NM启动第一个container来运行AM 3.AM会向RM请求资源的分配并通过心跳机制来汇报作业的运行状态 4.AM在分配的NM上启动container来运行作业Yarn和MRv.1的对比MRv.1中由两个进程控制作业的执行:JobTracker和TaskT
2016-05-02 11:10:50
2050
原创 Drools KIE API
在搭建Drools开发环境中我们接触了几个Drools的API,例如: KieServices KieContainer KieSession 还有kmodule.xml文件中的几个选项: kmodule kbase ksession 那么这些东西都是什么概念呢Kie是什么KIE是jBoss里面一些相关项目的统称,例如jB
2016-03-29 17:04:29
12544
原创 搭建Drools开发环境
篇幅中使用的Drools版本为6.3.0.Final,和5.x版本的API有较大区别,请留意 开发工具的设置开发工具为Intellij IDEA,网上逛了很久都没有发现一个使用IDEA开发drools的说明 只找到了一个IDEA的设置文件,导入该文件后新建.drl文件的话会有drools规则语法的智能提示 下载地址开发流程mavenIDEA可以直接创建drools类型的项目,但是无法和mav
2016-03-28 20:41:00
20581
3
原创 MapReduce性能调优记录
MapReduce原理要知道怎么对MapReduce作业进行调优前提条件是需要对Map-Reduce的过程了然于胸。 Map-Reduce运行原理图: Map Side1.从磁盘读取数据并分片默认每个block对应一个分片,一个map task2.进行map处理运行自定义的map业务过程3.输出数据到缓冲区中map输出的数据并不是直接写入磁盘的,而是会先存储在一个预定义的buffer中4、分区、
2016-03-18 13:54:22
14151
原创 MapReduce开发技巧
数据类型的选择自定义数据类型参考:Hadoop提交作业自定义排序和分组MapWritable/SortedMapWritableHadoop中可传输的Map集合,和Java中的Map用法差不多,但是可以用与mapper和reducer之间的数据传输Map输出不同类型的Value使用自定义的数据类型继承自GenericWritable可以实现在mapper中输出多个不同类型的value//使用这个数据
2016-03-18 13:53:18
1003
原创 大数据平台生产环境部署指南
总结一下在生产环境部署Hadoop+Spark+HBase+Hue等产品遇到的问题、提高效率的方法和相关的配置。集群规划假设现在生产环境的信息如下: 服务器数量:6 操作系统:Centos7 Master节点数:2 Zookeeper节点数:3 Slave节点数:4 划分各个机器的角色如下: 主机名 角色 运行进程 hadoop1 Master
2016-03-18 13:44:04
8739
2
原创 自定义分片策略解决大量小文件问题
自定义分片策略解决大量小文件问题@(Hadoop)默认的TextInputFormat应该都知道默认的TextInputFormat是一行行的读取文件内容,这对于一个或几个超大型的文件来说并没有什么问题,但是在实验读取大量小文件的时候,性能及其低下。实验过程分别有5个文件夹,每个文件夹下有不同数量(1-2千个)的小文件(10+k大小),总量大概有8k+个文件,使用CLI命令上传到HDFS就花费了一个
2016-03-01 11:41:25
4309
3
原创 ItermCF的MR并行实现
ItermCF的MR并行实现@(Hadoop)ItermCF的基本思想基于物品相似度的协同过滤推荐的思想大致可分为两部分: 1.计算物与物之前的相似度 2.根据用户的行为历史,给出和历史列表中的物品相似度最高的推荐通俗的来讲就是:对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都 喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出 用户
2016-02-26 17:42:21
4521
5
原创 MapReduce中的分布式缓存使用
MapReduce中的分布式缓存使用@(Hadoop)简介DistributedCache是Hadoop为MapReduce框架提供的一种分布式缓存机制,它会将需要缓存的文件分发到各个执行任务的子节点的机器中,各个节点可以自行读取本地文件系统上的数据进行处理。符号链接可以同在原本HDFS文件路径上+”#somename”来设置符号连接(相当于一个快捷方式) 这样在MapReduce程序中可以直
2016-02-26 16:51:57
11075
原创 多个Mapper和Reducer的Job
多个Mapper和Reducer的Job@(Hadoop)对于复杂的mr任务来说,只有一个map和reduce往往是不能够满足任务需求的,有可能是需要n个map之后进行reduce,reduce之后又要进行m个map。在hadoop的mr编程中可以使用ChainMapper和ChainReducer来实现链式的Map-Reduce任务。ChainMapper以下为官方API文档翻译: ChainM
2016-02-22 21:21:49
4411
原创 Hive配置与操作实践
Hive配置与操作实践@(Hadoop)安装hivehive的安装十分简单,只需要在一台服务器上部署即可。上传hive安装包,解压缩,将其配入环境变量。mysql的设置在要作为元数据库的mysql服务器上建立hive数据库:#建立数据库create database if not exists hive;#设置远程登录的权限GRANT ALL PRIVILEGES ON *.* TO 'root
2016-01-25 16:12:40
2099
原创 关于Web界面查看日志的权限问题
关于Web界面查看日志的权限问题@(Hadoop)<!--author: 小黑date: 2016-01-20title: 关于Web界面查看日志的权限问题tags: Hadoopcategory: Hadoopstatus: publishsummary: 关于Web界面查看日志的权限问题-->访问集群的8088端口,通过web ui查看作业日志时,发现没有权限查
2016-01-21 10:16:13
2501
原创 使用rsync进行多服务器同步
使用rsync进行多服务器同步@(Others)当集群数量很大时,修改配置文件和节点之间的文件同步是一件很麻烦且浪费时间的事情。rsync是linux上实现不同机器之间文件同步、备份的工具,centos系统中默认已经安装,使用rsync -h检查是否已经安装rsync。使用前提确保各个节点部署的目录结构是一致的,不然同步起来很麻烦。使用过程在网上找到一大堆rsync的配置资料,然而使用起来不尽人意,
2016-01-20 16:09:29
3847
tachyon-0.6.4-bin.tar.gz
2015-05-29
在spark streaming中实时更新mllib的ALS算法的模型遇到的问题!
2015-06-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人