
Big Data
文章平均质量分 80
0x12A2A7F
探索数据宇宙.
展开
-
YARN的ResourceManager故障(一)
cdh6.2仍然无法解决zookeeper注册信息过期造成yarn的主备脑裂问题。yarn无法启动、无法手动切换主备等。解决办法一我们需要删除yarn在ZK上的 rmstore 信息, 之后重启yarn,就可以了。但是在删除zk上 rmstore 信息的时候, 遇到了问题, yarn在注册时候的时候自己添加上ACL。所以我们直接删除是不行的。但我们可以可以重新设置一个ACL(Access Control List),就可以了, 如下:# 连接zookeeper,如果是客户端需添加 -serve.转载 2022-03-08 10:03:02 · 1851 阅读 · 0 评论 -
Adaptive Query Execution: Speeding Up Spark SQL at Runtime
This is a joint engineering effort between the Databricks Apache Spark engineering team — Wenchen Fan, Herman van Hovell and MaryAnn Xue — and the Intel engineering team — Ke Jia, Haifeng Chen and Carson Wang.Over the years, there’s been an extensive an.转载 2021-10-19 10:41:17 · 299 阅读 · 0 评论 -
flume环境部署(二)
flume HA部署环境使用的基础环境版本:CentOS7、hadoop-3.2.2、flume-1.9.0、zookeeper-3.6.2、jdk1.8.0hadoop部署请看《hadoop3.2.2集群搭建》虚拟机列表及角色部署主机名IP角色node1192.168.56.114agentnode1192.168.56.115agent, collectornode3192.168.56.116collectorflume配置解压flu原创 2021-07-22 16:02:56 · 288 阅读 · 2 评论 -
线程与线程池
线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重要的核心参数,几个重要的方法,底层实现,拒绝策略,参数设置,动态调整,线程隔离等等。主要的大纲如下:线程池的好处线程池,使用了池化思想来管理线程,池化技术就是为了最大化效益,最小化用户风险,将资源统一放在一起管理的思想。这种思想在很多地方都有使用到,不仅仅是计算机,比如金融,企业管理,设备管理等。为什么要线程池?如果在并发的场景,编码人转载 2021-06-28 17:44:54 · 342 阅读 · 0 评论 -
flume环境部署(一)
环境CentOS7、hadoop-3.2.2、flume-1.9.0、zookeeper-3.6.2、jdk1.8.0安装测试使用的软件:[root@node-1 ~]# yum -y install telnet-server[root@node-1 ~]# yum -y install telnet[root@node-1 ~]# systemctl start telnet.socketflume的netcat-logger配置${FLUME_HOME}/conf/flume-env.原创 2021-06-24 16:26:59 · 783 阅读 · 0 评论 -
flink on yarn集群搭建
环境需求CentOS7.5.1804、jdk1.8.0_181、zookeeper3.6.2、hadoop3.2.2、flink1.12.2关于hadoop的安装细节请查看《hadoop3.2.2集群搭建》集群部署下载flink-1.12.2的安装包,下载地址:https://archive.apache.org/dist/flink/flink-1.12.2/,如下图下载scala-2.12.13的安装包,下载地址:https://scala-lang.org/download/2.12.原创 2021-06-22 14:29:07 · 6345 阅读 · 0 评论 -
开源许可证选择
六种开源许可证之间的区别:原创 2021-06-16 10:51:41 · 224 阅读 · 0 评论 -
scala学习笔记 - 注解
什么可以被注解在scala中,可以为类、方法、字段、局部变量和参数添加注解,例如:@Entity class Credentials @Test def testSomeFeature() {} @BeanProperty var username = _def doSomething(@NotNull message: String) {}在给主构造器添加注解时,需要将注解放置在构造器之前,并加上一对圆括号(如果注解不带参数的话)。例如:class Credentials @Inj原创 2021-06-16 10:34:51 · 766 阅读 · 0 评论 -
sparkcore实现word count
spark core几种实现word count的方式(基于spark3.1.2和scala2.12.13):import org.apache.spark.{SparkConf, SparkContext}object WordCount { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local[4]").setAppName("WordCount") val sc原创 2021-06-10 11:10:53 · 295 阅读 · 0 评论 -
scala学习笔记 - 隐式参数
隐式参数函数或方法可以带有一个标记为implicit的参数列表。在这种情况下,编译器将会查找默认值,提供给本次函数调用,以下是一个简单的示例:case class Delimiters(left: String, right: String) def quote(what: String)(implicit delims: Delimiters) delims.left + what + delims.right可以用一个显式的Delimiters对象来调用quote方法,就像这样:quo原创 2021-05-31 17:43:32 · 463 阅读 · 0 评论 -
scala学习笔记 - 隐式转换
隐式转换在Scala中,隐式转换函数(implicit conversion function)指的是那种以implicit关键字声明的带有单个参数的函数。正如它的名称所表达的那样,这样的函数将被自动应用,将值从一种类型转换为另一种类型。如下,有一个*方法用来将两个分数相乘,我们想把整数n转换成分数n / 1:implicit def int2Fraction(n: Int) = Fraction(n, 1)这样我们就可以做如下表达式求值:val result = 3 * Fraction(4,原创 2021-05-31 14:54:30 · 251 阅读 · 0 评论 -
scala学习笔记 - 高级类型(二)
自身类型特质可以要求混入它的类扩展自另一个类型,用自身类型(self type)的声明来定义特质:this: 类型 =>这样的特质只能被混入给定类型的子类当中。在如下示例中,LoggedException特质只能被混人扩展自 Expcetion的类:trait Logged { def log(msg: String) }trait LoggedException extends Logged{ this: Exception => def log(){ lo原创 2021-05-31 09:32:56 · 202 阅读 · 0 评论 -
scala学习笔记 - 高级类型(一)
单例类型给定任何引用v,你可以得到类型v.type,它有两个可能的值:v和null,这听上去像是一个挺古怪的类型,但它在有些时候很有用。首先,我们来看那种返回this的方法,通过这种方式你可以把方法调用串接起来:class Document { def setTitle(title: String) = { ... ; this } def setAuthor(author: String) = { ... ; this ) ...}然后,你就可以编写如下代码:val s =原创 2021-05-27 15:25:16 · 255 阅读 · 0 评论 -
scala学习笔记 - 类型参数(二)
多重界定类型变量可以同时有上界和下界。写法为:T >: Lower <: Upper不能同时有多个上界或多个下界;不过,你依然可以要求一个类型实现多个特质,就像这样:T <: Comparable[T] with Serializable with Cloneable可以有多个上下文界定:T : Ordering : ClassTag类型约束类型约束提供给你的是另一个限定类型的方式,总共有三种关系可供使用:T =:= U // T是否等于UT <:<原创 2021-05-27 11:03:19 · 256 阅读 · 0 评论 -
scala学习笔记 - 类型参数(一)
泛型类类和特质可以带类型参数,Scala中,我们用方括号来定义类型参数,例如:class Pair[T, S](val first: T, val second: S)以上将定义一个带有两个类型参数T和S的类。在类的定义中,你可以用类型参数来定义变量、方法参数、以及返回值的类型。Scala会从构造参数推断出实际类型:val p = new Pair(30, "aaaa") // 这是一个Pair[Int, String]你也可以自己指定类型:val p2 = new Pair[Any, A原创 2021-05-26 17:39:41 · 290 阅读 · 0 评论 -
scala学习笔记 - 模式匹配和样例类(二)
样例类样例类是一种特殊的类,它们经过优化以被用于模式匹配;在本例中,有两个扩展自常规(非样例)类的样例类:abstract class Amountcase class Dollar(value : Double) extends Amountcase class Currency (value : Double , unit: String) extends Amount你也可以有针对单例的样例对象:case object Nothing extends Amount当我们有一个类型为A原创 2021-05-25 13:44:18 · 331 阅读 · 1 评论 -
scala学习笔记 - 模式匹配和样例类(一)
认识match var sign = 0 val ch: Char = '-' ch match { case '+' => sign = 1 case '-' => sign = -1 case _ => sign = 0 }与default等效的是捕获所有的case _模式。有这样一个捕获所有的模式是有好处的,否则,如果没有模式能匹配,代码会抛出MatchError。与switch语句不同,Scala模式匹配并不原创 2021-05-24 17:50:24 · 256 阅读 · 0 评论 -
scala学习笔记 - scala与java集合的互操作
JavaConversions对象提供了用于在Scala和Java集合之间来回转换的一组方法。给目标值显式地指定一个类型来触发转换 例如:import scala col lec ti JavaConversions._val props: scala.collection.mutable.Map[String, String] = System .getProperties()如果你担心那些不需要的隐式转换也被引人的话,只引入需要的即可 例如:import scala.collection.J原创 2021-05-24 13:46:09 · 621 阅读 · 1 评论 -
scala学习笔记 - 高阶函数
作为值的函数在Scala中,函数是“头等公民”,就和数字一样。你可以在变量中存放函数:scala> import scala.math._import scala.math._scala> val num = 3.14num: Double = 3.14scala> val fun = ceil _fun: Double => Double = <function1>scala> fun(num)res0: Double = 4.0从技术原创 2021-05-21 15:05:49 · 362 阅读 · 0 评论 -
scala学习笔记 - 特质
特质当接口使用Scala的特质可以像Java的接口那样工作,如下:trait Logger { def log(msg: String) // 定义一个抽象方法}无需使用abstract声明,特质中没有实现的方法默认就是抽象方法。子类可以实现,如下:class ConsoleLogger extends Logger {// override def log(msg: String): Unit = println(msg) // 也可以 def log(msg: String):原创 2021-05-19 16:42:29 · 217 阅读 · 0 评论 -
scala学习笔记 - 类构造器
scala类的构造器辅助构造器scala的类可以有任意多的辅助构造器。辅助构造器的名称为this。每一个辅助构造器都必须以一个对先前已定义的其他辅助构造器或主构造器的调用开始。如下:class Demo { private var name: String = _ private var age = 0 def this(name: String) { this() // 调用主构造器 this.name = name } def this(name:原创 2021-05-17 15:34:18 · 406 阅读 · 0 评论 -
scala学习笔记 - 类属性
Scala的类属性Scala类最简单的形式看上去和Java或C++中的很相似:class Demo1 { private var value = 0 // 必须初始化字段 def increment(): Unit = { // 方法默认是共有的 value += 1 } // def current(): Int = value def current: Int = value}调用无参方法(比如current时,可以写上圆括号,也可以写;?一般认为对于改值器方法原创 2021-05-17 11:15:52 · 440 阅读 · 1 评论 -
GraphFrames介绍
由Databricks、UC Berkeley以及MIT联合为Apache Spark开发了一款图像处理类库,名为:GraphFrames,该类库是构建在DataFrame之上,它既能利用DataFrame良好的扩展性和强大的性能,同时也为Scala、Java和Python提供了统一的图处理API。什么是GraphFrames与Apache Spark的GraphX类似,GraphFram转载 2016-04-12 22:20:04 · 2629 阅读 · 0 评论 -
Zookeeper全解析——Paxos作为灵魂
ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算转载 2016-05-17 21:38:03 · 663 阅读 · 0 评论 -
Hive原理及查询优化
Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,功能非常强大,所以非常流行。通常来说,Hive只支持数据查询和加载,但后面的版本也支持了插入,更新和删除以及流式api。Hive具有目前Hadoop上最丰富最全的SQL语法,也拥有最慢最稳定的执行。是目前Hadoop上几乎标准的ETL和数据仓库工具。Hive这个特点与转载 2016-05-21 12:24:26 · 12938 阅读 · 2 评论 -
RDD:基于内存的集群计算容错抽象
摘要 本文提出了分布式内存抽象的概念——弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见;二是交互式数据挖掘工具。这两种情况下,将数据保存在内存中能够极大地提高性能。转载 2016-05-22 20:49:22 · 1550 阅读 · 0 评论 -
yarn任务调度
yarn作为hadoop目前最新的调度工具,在其上面调度作业是非常重要的Hadoop YARN同时支持内存和CPU两种资源的调度(默认只支持内存,如果想进一步调度CPU,需要自己进行一些配置),本文将介绍YARN是如何对这些资源进行调度和隔离的。yarn对于自己运行时作业的资源分配模式有Capacity Scheduler和Fair Scheduler两种。在YARN中,资源管理由转载 2016-07-05 08:36:47 · 3504 阅读 · 0 评论 -
GC调优在Spark应用中的实践
Spark立足内存计算,常常需要在内存中存放大量数据,因此也更依赖JVM的垃圾回收机制。与此同时,它也兼容批处理和流式处理,对于程序吞吐量和延迟都有较高要求,因此GC参数的调优在Spark应用实践中显得尤为重要。Spark是时下非常热门的大数据计算框架,以其卓越的性能优势、独特的架构、易用的用户接口和丰富的分析计算库,正在工业界获得越来越广泛的应用。与Hadoop、HBase生态圈的众多项目一转载 2016-08-30 22:29:02 · 737 阅读 · 0 评论 -
spark 中rdd与dataframe的合并
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copy转载 2016-08-11 22:57:41 · 3062 阅读 · 0 评论 -
分享Spark MLlib训练的广告点击率预测模型
2015年,全球互联网广告营收接近600亿美元,比2014年增长了近20%。多家互联网巨头都依赖于广告营收,如谷歌,百度,Facebook,互联网新贵们也都开始试水广告业,如Snapchat, Pinterest, Spotify.作为互联网广告的老大哥,谷歌花了很大的力气研发自己的社交网络,Google+,并期待能与Facebook,Twitter抗衡。然后事与愿违,Google+的转载 2017-01-14 14:05:41 · 6151 阅读 · 0 评论 -
JVM内幕:Java虚拟机详解
上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程 JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享 堆内存管理非堆内存即时编译方法区类文件结构类加载器更快的类加载方法区在哪里类加载器参考运行时常量池异常表符转载 2016-11-16 22:18:45 · 707 阅读 · 0 评论 -
Zookeeper序列化及通信协议
一、Jute Jute是Zookeeper底层序列化组件,其用于Zookeeper进行网络数据传输和本地磁盘数据存储的序列化和反序列化工作。 2.1 Jute序列化 MockReHeader实体类package com.hust.grid.leesf.jute.examples;import org.apache.jute.InputArchive;im转载 2017-02-21 20:54:24 · 2751 阅读 · 0 评论 -
Zookeeper源码分析之请求处理链
一、总体框图 对于请求处理链而言,所有请求处理器的父接口为RequestProcessor,其框架图如下说明: AckRequestProcessor,将前一阶段的请求作为ACK转发给Leader。 CommitProcessor,将到来的请求与本地提交的请求进行匹配,这是因为改变系统状态的本地请求的返回结果是到来的请求。 FinalReques转载 2017-02-21 22:25:36 · 1158 阅读 · 0 评论 -
Zookeeper与Paxos
一、前言 Paxos在开源软件Zookeeper中的应用。二、Zookeeper Zookeeper是一个开源的分布式协调服务,其设计目标是将那些复杂的且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一些列简单的接口提供给用户使用。其是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/发布、负载均衡、命名服务、分布式协调转载 2017-02-21 22:40:58 · 300 阅读 · 0 评论 -
Zookeeper源码分析之Watcher机制(一)
一、前言 分析Zookeeper中的Watcher机制所涉及到的类。二、总体框图 对于Watcher机制而言,主要涉及的类主要如下。 说明: Watcher,接口类型,其定义了process方法,需子类实现。 Event,接口类型,Watcher的内部类,无任何方法。 KeeperState,枚举类型,Event的内部类,表示转载 2017-02-21 22:59:19 · 549 阅读 · 0 评论 -
Zookeeper源码分析之Watcher机制(二)
一、前言 前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManager类。二、WatchManager源码分析 2.1 类的属性 public class WatchManager { // Logger private ...转载 2017-02-21 23:04:12 · 382 阅读 · 0 评论 -
Zookeeper源码分析之Watcher机制(三)
一、前言 前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。二、ZooKeeper源码分析 2.1 类的内部类 ZooKeeper的内部类框架图如下图所示 说明: · ZKWatchManager,Zookeeper的Watcher管理者,其源码在之前已经分析过,不再累赘。 · WatchRe...转载 2017-02-21 23:14:07 · 670 阅读 · 0 评论 -
ZooKeeper原理及使用场景
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。转载 2017-01-24 11:16:27 · 357 阅读 · 0 评论 -
HBase列族设计优化
随着大数据的越来越普及,HBase也变得越来越流行。会用HBase现在已经变的并不困难,然而,怎么把它用的更好却并不简单。那怎么定义‘用的好’呢?很简单,在保证系统稳定性、可用性的基础上能够用最少的系统资源(CPU,IO等)获得最好的性能(吞吐量,读写延迟)就是’用的好’。HBase是一个庞大的体系,涉及到很多方面,很多因素都会影响到系统性能和系统资源使用率,根据场景对这些配置进行优化会很大程度上转载 2017-01-24 11:38:35 · 663 阅读 · 0 评论 -
Hadoop,HBase分布式集群和solr环境搭建
1. 机器准备(这里做测试用,目的准备5台CentOS的linux系统)1.1 准备了2台机器,安装win7系统(64位) 两台windows物理主机: 192.168.131.44 administrator/(密码是一个空格) 192.168.131.67 administrator/(密码是一个空格) 1.2. 每台机器上安装VMwareWorkstation8.0.转载 2017-01-24 12:07:25 · 787 阅读 · 0 评论