自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员学习圈

行胜于言、质胜于华

  • 博客(65)
  • 收藏
  • 关注

原创 Scala 高级类型

1. 读取行import scala.io.Sourceobject FileSyllabus {def main(args: Array[String]): Unit = {//文件读取val file1 = Source.fromFile("C:\\Users\\61661\\Desktop\\scala笔记.txt")val line...

2018-09-30 23:11:21 373

原创 Scala 类型参数

1.隐式转换 隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型。implicit def a(d: Double) = d.toInt//不加上边这句你试试val i1: Int = 3.5println(i1)2.利用隐式转换丰富类库功能 如果需要为一个类增加一个方法,可以通过...

2018-09-30 23:00:22 294

原创 Scala 注解

Scala 类型参数

2018-09-30 22:51:49 371

原创 Scala 文件和正则表达式

注解就是标签。标签是用来标记某些代码需要特殊处理的。处理的手段可以在代码运行时操作,也可以在编译期操作。1.什么可以被注解1)可以为类,方法,字段局部变量,参数,表达式,类型参数以及各种类型定义添加注解@Entity class Student@Test def play() {}@BeanProperty var username = _def doS...

2018-09-30 22:22:14 938

原创 并发编程模型 Akka

1.不允许多重继承 所有的面向对象的语言都不允许直接的多重继承,因为会出现“deadly diamond of death”问题。Scala提供了特质(trait),特质可以同时拥有抽象方法和具体方法,一个类可以实现多个特质。2.当做接口使用的特质 特质中没有实现的方法就是抽象方法。类通过extends继承特质,通过with可以继承多个特质。trait Logg...

2018-09-29 12:05:08 417

原创 使用递归的方式去思考、编程

1.继承类 和Java一样使用extends关键字,在定义中给出子类需要而超类没有的字段和方法,或者重写超类的方法。class Person { var name = ""}class Employee extends Person{ var salary = 0.0 def description = "员工姓名:" + name + " 薪水:...

2018-09-28 23:50:14 337

原创 Scala 函数式编程高级

1.包/作用域 在Java和Scala中管理项目可以使用包结构,C和C#使用命名空间。 对于package,有如下几种形式: 形式体现:package com.nick.impatient.peopleclass Person{ val name = "Nick" def play(message: String): Unit ={ }...

2018-09-28 23:30:19 882

原创 Scala 模式匹配和样例类

1.单例对象 Scala中没有静态方法和静态字段,可以用object这个语法结构来达到同样的目的。object Dog { println("已初始化...") private var leg = 0 def plus() = { leg += 1 leg }} 对象的构造器在该对象第一次使用时调用。如果对象没有使用过,...

2018-09-28 23:08:37 267

原创 Scala 数据结构(下)-集合操作

1.简单类和无参方法类的定义可以通过class关键字实现,如下:class Dog {@BeanPropertyvar leg = 4def shout(content: String) {println(content)}def currentLeg = leg} 使用这个类:println("===简单类和无参方法=...

2018-09-28 22:07:57 227

原创 Scala 数据结构(上)-集合

1.作为参数的函数 函数作为一个变量传入到了另一个函数中,那么该作为参数的函数的类型是:function1,即:(参数类型) => 返回类型def plus(x: Int) = 3 + xval result1 = Array(1, 2, 3, 4).map(plus(_))println(result1.mkString(“-")) 注:带有一个参数的函数...

2018-09-28 13:35:04 713

原创 Scala 隐式转换

1.switch 与default等效的是捕获所有的case_ 模式。如果没有模式匹配,抛出MatchError,每个case中,不用break语句。可以在match中使用任何类型,而不仅仅是数字。var result = 0;val op : Char = '-'op match { case '+' => result = 1 case '-' =...

2018-09-28 10:08:16 449

原创 Scala 面向对象编程高级

1.数据结构 Scala同时支持可变集合和不可变集合,不可变集合从不可变,可以安全的并发访问,两个主要的包: 不可变集合:scala.collection.immutable 可变集合:scala.collection.mutable Scala优先采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本。不可变集合继承层次:...

2018-09-27 18:29:58 398

原创 Scala 面向对象编程中级

异常 当碰到异常情况时,方法抛出一个异常,终止方法本身的执行,异常传递到其调用者,调用者可以处理该异常,也可以升级到它的调用者。运行系统会一直这样升级异常,直到有调用者能处理它。 如果一直没有处理,则终止整个程序。 Scala的异常的工作机制和Java一样,但是Scala没有“checked”异常,你不需要声明说函数或者方法可能会抛出某种异常。受检异常在编译器被检查,java必...

2018-09-27 17:08:48 1810 1

原创 Scala 面向对象编程基础

懒值(补:调用时才执行) 当val被声明为lazy时,他的初始化将被推迟,直到我们首次对此取值,适用于初始化开销较大的场景。 lazy示例:通过lazy关键字的使用与否,来观察执行过程object Lazy { def init(): String = { println("init方法执行") "嘿嘿嘿,我来了~" } def m...

2018-09-27 16:37:19 432

原创 Scala 函数式编程基础

过程 我们将函数的返回类型为Unit的函数称之为过程。(1) 定义过程示例1:def shout1(content: String) : Unit = {println(content)}(2)定义过程示例2:(补:定义函数时常用)def shout1(content: String) = {println(content)}(3)定义过程...

2018-09-27 16:10:20 632

原创 Scala 程序流程控制

函数 scala定义函数的标准格式为: def 函数名(参数名1: 参数类型1, 参数名2: 参数类型2) : 返回类型 = {函数体}(1)函数示例1:返回Unit类型的函数def f1() : Unit = { println(“f1”)}(2)函数示例2:返回Unit类型的函数,但是没有显式指定返回类型。(当然也可以返回非Unit类型的值)...

2018-09-27 16:02:59 260

原创 Scala 运算符与运算符重载

1.if…else scala中没有三元运算符,因为根本不需要。scala中if else表达式是有返回值的,如果if或者else返回的类型不一样,就返回Any类型(所有类型的公共超类型)。例如:if else返回类型一样val a3 = 10val a4 =if(a3 > 20){"a3大于20"}el...

2018-09-26 18:37:04 494

原创 Scala 基础语法

1.变量 Scala声明变量有两种方式,一个用val,一个用var。 val / var 变量名 : 变量类型 = 变量值。 val定义的值是不可变的,它不是一个常量,是不可变量,或称之为只读变量。val示例:scala> val a1 = 10scala> a1 = 20(此处会报错,因为val不允许初始化后再次修改a1变量的引用)va...

2018-09-26 11:50:46 597

原创 Scala 的 HelloWorld

1.Scala的HelloWorld(IDEA运行HelloScala程序)(1)在scala上右键,创建scala object(2)pom.xml打包插件<dependencies><dependency><groupId>org.scala-lang</groupId><a...

2018-09-25 18:12:07 581

原创 Scala 简单介绍与安装配置

1.Scala简述 Scala(斯卡拉)是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。 Scala运行在Java虚拟机上,并兼容现有的Java程序。 源代码被编译成Jav...

2018-09-25 18:06:10 361

原创 Flume 经验浅谈

 1.Flume 的停止    使用 kill 停止 Flume 进程。    不可使用 kill -9,因为 Flume 内部注册了很多钩子函数执行善后工作,如果使用 kill -9 会导致钩子函数不执行,使用 kill 时,Flume 内部进程会监控到用户的操作,然后调用钩子 函数,执行一些善后操作,正常退出。 2.Flume 数据丢失问题的讨论    在一些网络资料中...

2018-09-21 18:15:13 1199

原创 Flume 组件介绍

1.Flume 组件介绍  名称 解析 Event 一个数据单元,带有一个可选的消息头,其实就是一条消息, 一个日志;(Kafka 的消息没有消息头,因此,Flume 的消息进入 Kafka 后,消息头就丢失了) Flow 数据流,Event 从源点到达目的点的迁移的抽象 ...

2018-09-21 18:03:55 3475

原创 Kafka 资料整理

1.Ganglia的安装与部署(1) 安装httpd服务与php [luomk@hadoop102 flume]$ sudo yum -y install httpd php(2) 安装其他依赖 [luomk@hadoop102 flume]$ sudo yum -y install rrdtool perl-rrdtool rrdtool-devel [lu...

2018-09-21 16:18:10 919

原创 Flume 监控之Ganglia

1.Ganglia的安装与部署(1) 安装httpd服务与php    [luomk@hadoop102 flume]$ sudo yum -y install httpd php(2) 安装其他依赖    [luomk@hadoop102 flume]$ sudo yum -y install rrdtool perl-rrdtool rrdtool-devel    [lu...

2018-09-21 15:57:54 832 1

原创 Flume 案例实操

1.监控端口数据官方案例(1) 案例需求:首先,Flume监控本机44444端口,然后通过telnet工具向本机44444端口发送消息,最后Flume将监听的数据实时显示在控制台。(2) 需求分析: (3) 实现步骤:① 安装telnet工具    在/opt/software目录下创建flume-telnet文件夹    [luomk@hadoop10...

2018-09-21 13:17:17 265

原创 Flume 安装部署

1.Flume安装地址(1) Flume 官网地址:http://flume.apache.org/(2) 文档查看地址:http://flume.apache.org/FlumeUserGuide.html(3)下载地址:http://archive.apache.org/dist/flume/ 2.安装部署(1) 将apache-flume-1.7.0-bin.tar....

2018-09-21 11:39:27 217

原创 Flume 简单概述

1.Flume概念    Apache Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输系统。Flume基于流式架构,灵活简单,支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。 2.为什么使用Flume   3.Flume组成架...

2018-09-21 11:11:02 269

原创 Flume对接Kafka

1.Kafka 高可靠性存储 Kafka 的高可靠性的保障来源于其健壮的副本(replication)策略。通过调节其副本相关 参数,可以使得 Kafka 在性能和可靠性之间运转的游刃有余。Kafka 从 0.8.x 版本开始提供 partition 级别的复制,replication 的数量可以在$KAFKA_HOME/config/server.properties 中配 置(...

2018-09-20 14:38:53 491

原创 Kafka 监控

KafkaCluster 在使用 Kafka 低阶消费者时,可以通过 KafkaCluster 类实现 offset 向 ZooKeeper 的提交 和获取。 Kafka 协议非常简单,只有六个核心客户端请求 API: 元数据(Metadata) - 描述当前可用的代理,主机和端口信息,并提供有关哪个代理主机分区的信息。 发送(Send) -...

2018-09-20 12:16:07 1239

原创 Kafka Manager

1. 使用消费者组实现消息队列的两种模式 Kafka 集群的数据需要被不同类型的消费者使用,而不同类型的消费者处理逻辑不 同。Kafka 使用消费组的概念,允许一组消费者进程对消费工作进行划分。每个消费者都可 以配置一个所属的消费组,并且订阅多个主题。Kafka 会发送每条消息给每个消费组中的一 个消费者进程( 同一条消息广播给多个消费组,单播给同一组中的消费者)。被订阅主题 的所有分区...

2018-09-20 12:13:57 818

原创 kafka Streams

1. Kafka 高级消费者 高阶消费者是一把双刃剑,一方面简化了编程,一方面也由于编程者参与的功能过少, 可控内容过少而造成很多问题。(1) 自动负载均衡 高阶消费者为了简化编程,封装了一系列 API,这套 API 会均匀地将分区分配给消费者 线程,消费者消费哪个分区不由消费者决定,而是由高阶 API 决定,如果有消费者线程挂 掉了,高阶 API 会检测到,进而进行重新分...

2018-09-20 11:58:09 1900

原创 Kafka API

1.Kafka分区分配策略 在 Kafka 内部存在两种默认的分区分配策略:Range 和 RoundRobin。当以下事件发 生时,Kafka 将会进行一次分区分配: 同一个 Consumer Group 内新增消费者 消费者离开当前所属的 Consumer Group,包括 shuts down 或 crashes 订阅的主...

2018-09-20 11:50:33 435

原创 Kafka 事务

1. Kafka Streams Kafka Streams。Apache Kafka开源项目的一个组成部分。是一个功能强大,易于使用的库。用于在Kafka上构建高可分布式、拓展性,容错的应用程序。2.Kafka Streams特点(1) 功能强大 ① 高扩展性,弹性,容错(2) 轻量级 ①无需专门的集群 ② 一个库,而不是框架(3...

2018-09-20 09:33:11 1077

原创 Zookeeper在Kafka中的作用

1.拦截器原理 Producer拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 对于producer而言,interceptor使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer允许用户指定多个interceptor按序作用于同一条消息从而形...

2018-09-19 20:08:05 445

原创 Kafka 高效读写数据

1.环境准备(1) 在eclipse中创建一个java工程(2) 在工程的根目录创建一个lib文件夹(3) 解压kafka安装包 将安装包libs目录下的jar包拷贝到工程的lib目录下,并build path。(4) 启动zk和kafka集群,在kafka集群中打开一个消费者 [luomk@hadoop102 kafka]$ bin/kafka-console...

2018-09-19 18:36:05 616

原创 Kafka 消费者

kafka提供了两套consumer API:高级Consumer API和低级API。1.消费模型 消息由生产者发布到Kafka集群后,会被消费者消费。消息的消费模型有两种:推送模型(push)和拉取模型(pull)。 基于推送模型(push)的消息系统,由消息代理记录消费者的消费状态。消息代理在将消息推送到消费者后,标记这条消息为已消费,但这种方式...

2018-09-19 17:53:14 752

原创 Kafka 生产者

1.存储方式 物理上把topic分成一个或多个patition(对应 server.properties 中的num.partitions=3配置),每个patition物理上对应一个文件夹(该文件夹存储该patition的所有消息和索引文件),如下:[luomk@hadoop102 logs]$ ls -ldrwxrwxr-x 2 luomk luomk4096 7月...

2018-09-19 17:39:44 349

原创 Kafka工作流程及文件存储机制

1.写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障kafka吞吐率)。2.分区(Partition) Kafka集群有多个消息代理服务器(broker-server)组成,发布到Kafka集群的每条消息都有一个类别,用主题(to...

2018-09-19 17:33:24 903

原创 Kafka 配置信息解读

1. Broker 配置信息 属性 默认值 描述 broker.id   必填参数,broker的唯一标识 log.dirs /tmp/kafka-logs Kafka数据存放的目录。可以指定多个目录,中间用逗号分隔,...

2018-09-19 16:36:43 278

原创 Kafka 命令行操作

—启动集群(分别启动)    [luomk@hadoop102 kafka]$ /opt/module/kafka/bin/kafka-server-start.sh /opt/module/kafka/config/server.properties &    或者    [luomk@hadoop102 kafka]$ /opt/module/kafka/bin/kafka...

2018-09-19 16:21:43 820

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除