![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 88
catch that elf
一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;
展开
-
PHP笔记6--数组及相关操作
文章目录数组定义语法PHP数组特点二维数组多维数组数组遍历数组相关函数数组,数据的组合,指将一组数据(多个)存储到一个指定的容器中数组定义语法在PHP中系统提供多种定义数组的方式1、 使用array关键字:最常用的$变量 = array(元素1,元素2,元素3…);2、 可以使用中括号来包裹数据:$变量 = [元素1,元素2…];3、隐形定义数组:给变量增加一个中括号,系统自动变成数组$变量[] = 值1; //如果不提供下标也可以,系统自动生成(数字:从0开始)$变量[下标] = 值;原创 2020-09-11 17:33:44 · 597 阅读 · 0 评论 -
PHP笔记1--代码标记、注释、变量、常量、数据类型
文章目录php 代码标记注释及分隔符变量常量数据类型php 代码标记1、asp 标记 <% echo ‘hello world2’; %> 需要在配置文件http.conf中开启 asp_tags = Off2、短标记 <? echo 'hello world2'; ?> 需要在配置文件http.conf中开启 short_open_tag = Off3、脚本标记 4、标准标记 <?php echo 'hello world' ?> 用的最多原创 2020-09-10 10:52:43 · 536 阅读 · 0 评论 -
PHP笔记3--函数、可变函数、匿名函数、闭包
文章目录函数作用域静态变量可变函数匿名函数闭包伪类型函数是一种语法结构,将实现某一个功能的代码块(多行代码)封装到一个结构中,从而实现代码的重复利用(复用)函数定义语法function sayHello(){ echo 'Hello'; }//调用方法sayHello();示例function sayHello(){ echo 'Hello'; }命名规范由字母、数字和下划线组成,但是不能以数字开头,一般采用如下两种方式命名1、驼峰法:除了左边第一个单词外,后面所有的单词首原创 2020-09-10 00:26:42 · 523 阅读 · 0 评论 -
PHP笔记2--运算符、流程控制及文件包含
文章目录PHP运算符流程控制分支循环替代语法文件包含文件包含四种形式基本语法文件加载原理文件加载原理:Include和Include_once区别Require和include的区别文件加载路径文件嵌套包含PHP运算符1.赋值运算符: =2.算数运算符:+ - * / %3.比较运算符:> >= < <= == != === !==4.逻辑运算符: && and || or !逻辑与和逻辑或又称之为短路运算,如果第一个表达式结果已经满足条件了,那么就不原创 2020-09-10 00:12:49 · 622 阅读 · 0 评论 -
Flink服务的HA配置
文章目录Standalone 模式HA配置HAFlink On Yarn 模式HA默认情况下,每个 Flink 集群只有一个 JobManager,这将导致单点故障(SPOF),如果这个 JobManager 挂了,则不能提交新的任务,并且运行中的程序也会失败。使用JobManager HA,集群可以从 JobManager 故障中恢复,从而避免单点故障。用户可以在Standalone 或 Flink on Yarn 集群模式下配置 Flink 集群 HA(高可用性)。Flink 的HA需要Zookee原创 2020-08-24 19:36:59 · 2275 阅读 · 0 评论 -
Flink on Yarn 部署Session-Cluster和Per-Job-Cluster
文章目录原理介绍Flink on Yarn模式部署启动Session-Clusterm模式Per-Job-Cluster模式Flink on Yarn 模式的原理是依靠 YARN 来调度 Flink 任务,目前在企业中使用较多。这种模式的好处是可以充分利用集群资源,提高集群机器的利用率,并且只需要 1 套 Hadoop集群,就可以执行 MapReduce 、Spark和Flink 任务,操作非常方便,运维方面也很轻松。Flink on Yarn 模式需要依赖 Hadoop 集群,并且Hadoop 的版本需原创 2020-08-21 18:17:22 · 12494 阅读 · 4 评论 -
Scala函数编程高级偏函数、匿名函数、高阶函数、闭包
文章目录偏函数匿名函数高阶函数参数推断及简写闭包偏函数偏函数专门实现对集合元素的过滤+操作的。实现需求: 对集合List(1,2,3,4,“abc”) 中的 int类型+1 后加入到新的集合, 其他类型元素舍弃五种实现方式对比def test: Unit ={ val list =List(1,2,3,4,"abc"); //实现对 list 中int类型 进行 +1操作 并返回新的数组 //实现方式1 filter+map println("方式1:"+list原创 2020-08-13 19:57:19 · 697 阅读 · 0 评论 -
Scala模式匹配
文章目录模式匹配类型匹配匹配数组匹配List原组匹配对象匹配表达式中的模式匹配模式匹配Scala 中模式匹配类似于java中的switch,但是更加强大模式匹配的语法采用 match关键字声明,每个分支采用case进行声明,从第一个case 开始如果匹配成功那么执行对应的逻辑代码,执行完成后自动终止终止代码块执行(不需要手工填写break)。如果匹配不成功则进行下一个分支判断,如果所有的case不匹配那么执行 case _ 分支(类似于java switch 中的 default)注意事项1)原创 2020-08-08 13:43:06 · 702 阅读 · 0 评论 -
Scala集合映射操作map、reduce、filter等
文章目录高阶函数map映射操作flatMap映射filterreducefoldscanzip迭代器流 Stream视图 View并行集合操作符高阶函数可以接受函数作为参数的函数成为高阶函数示例 //test 是一个高阶函数,可以接受一个(入参double返回值double)函数,和一个double参数 def test(f:Double=>Double,n1:Double) ={ f(n1) } //普通函数 接受double返回double def sum2(原创 2020-07-28 18:13:51 · 1504 阅读 · 0 评论 -
Scala集合Map和Set
文章目录MapSetMapScala中的Map和Java类似,是一个散列表 存储的内容也是 键值对 Scala中不可变Map是有序的 可变Map是无序 的可变Map scala.collection.mutable.Map不可变Map scala.collection.immutable.Map操作示例如下def main(args: Array[String]): Unit = { //构造不可变Map /* 默认 使用 不可变map 在map底层,每队 key原创 2020-07-28 10:46:32 · 831 阅读 · 0 评论 -
Scala集合List、ListBuffer和Queue
文章目录ListListBufferListscala 中的List和javaList 不同,java 中List是一个接口,实际存取数据的是ArrayList而scala中的list可以直接存放数据,默认情况下Scala的List是不可变的,List属于序列Seq操作示例:def testList(): Unit ={ //默认使用不可变集合 val list1= List(1,2,3); //list1 println(list1) val list2原创 2020-07-27 17:37:34 · 1395 阅读 · 0 评论 -
Scala集合-数组、元组
文章目录scala集合基本介绍定长数组变长数组定长数组与变长数组转换多维数组定义和使用scala数组和javaList的转换元组Tuplescala集合基本介绍1)Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问不可变集合包:scala.collection.immutable可变集合包:scala.collection.mutable2)对于几乎所有的集合类,Scala都提供了可变和不可变两种版本,Scala默认采用不可变集合3)Scala集合有三大类:序列 Seq(有序的原创 2020-07-27 16:30:19 · 1141 阅读 · 0 评论 -
Scala面向对象编程-包
文章目录Java语言中的包Scala 语言中的包命名规则 及规范注意事项和使用细节包对象包的可见性包的引入Java语言中的包java 语言中 类文件的文件路径必须和包相匹配,包的作用1)区分同名的类2)类很多时便于管理3)访问控制范围Scala 语言中的包scala中也使用包,但是功能比java更加强大,使用也相对复杂基本语法: package 包名sala中包作用和java中包作用基本一致,但是scala中包可以对类的功能进行扩展在scala中包名和源码所在的目录结构可以不一致,但是编原创 2020-07-27 09:41:59 · 722 阅读 · 0 评论 -
Scala面向对象编程-隐式转换
文章目录隐式转换隐式转换函数隐式转换丰富类功能隐式值隐式类隐式转换的时机隐式解析机制隐式转换的前提隐式转换隐式转换就是自动类型转换。 如 var dbl:Double = 12 int 自动转换double, 但是 val num:Int =3.5 确会报错。我们可以自己通过定义隐式转换来实现 double自动转换Int隐式转换函数隐式转换函数是以implicit 关键字声明的带有单个参数的函数,这种函数会自动应用将值从一种类型转换为另一种类型注意事项:1)隐式转换的函数名可以是任意的,饮原创 2020-07-26 15:29:07 · 740 阅读 · 0 评论 -
Scala面向对象编程-接口、特质和内部类
文章目录接口java接口回顾scala特质动态混入叠加特质特质中的字段特质的构造顺序特质继承类自身类型内部类接口java接口回顾定义:interface 接口名实现接口方式: class 类名 implements 接口1,接口2总结:1)java 中一个类可以实现多个接口2)java中接口之间支持多继承3)接口中属性都是常量4)接口中方法都是抽象的scala特质1)从面向对象来看,接口并不属于面相对象的范畴,scala是纯面向对象的语言,在scala中没有接口2)scala中采用原创 2020-07-25 20:41:06 · 1176 阅读 · 0 评论 -
Scala静态编程实现方式-伴生对象
文章目录伴生对象注意事项伴生对象 apply方法伴生对象scala 语言是完全面向对象的,所以并没有静态操作,但是为了能够和java语言交互就产生了一种特殊的对象来模拟类对象实现java中的静态的功能。这类特殊的对象我们称之为伴生对象.伴生类的所有静态内容都可以放在它的伴生对象中,声明和调用注意事项1)Scala中伴生对象采用object关键字来声明,伴生对象中声明的内容全是静态内容,可以通过伴生对象的名称直接调用2)伴生对象对应的类称之为伴生类,伴生对象的名称要和伴生类名称一样3)伴生对象原创 2020-07-25 17:56:33 · 838 阅读 · 0 评论 -
Scala面向对象编程-封装、继承
文章目录封装注意事项继承方法重写覆写字段java 中动态绑定机制scala覆写字段注意事项抽象类注意事项scala中的类型检查和转换构造器说明面向对象三大特征:封装、继承和多态封装封装的好处1)隐藏实现细节2)可以对数据进行验证,保证数据安全合理3)封装的同时可以加入业务逻辑封装的步骤1)属性私有化2)提供公共的 get set 方法 用于赋值和读取值注意事项1)Scala中为了简化代码开发,当属性声明为 var【非private】时会自动生成 public 的 xxx 和 xx原创 2020-07-25 16:26:53 · 1059 阅读 · 0 评论 -
Scala面向对象编程-构造器
文章目录Scala构造器基本语法构造器注意事项构造器参数bean属性Scala对象创建流程Scala构造器基本语法Scala构造器和java一样,构造对象需要调用类的构造器,并且支持构造器重载(可以创建无数哥构造器) 和 java 不同的是 scala构造器分为 主构造器和辅助构造器class 类名(形参列表){//主构造器def this(形参列表){} //辅助构造器def this(形参列表){}//辅助构造器//类体}示例如下class ConPerson private (inN原创 2020-07-24 15:26:01 · 996 阅读 · 0 评论 -
Scala面向对象编程- 类、属性、方法
文章目录类创建类的基本语法创建对象语法注意事项成员变量/属性注意事项底层原理方法类Scala语言来自于java,天生就是面向对象的语言,且Scala是纯粹的面向对象的语言, 在Scala中一些皆对象创建类的基本语法 [修饰符] class 类名{ 类体}示例:class Cat{ //定义三个属性 var name:String="";//初始化值为 “” var age:Int =_;//给age 复制为该类型的默认取值,Int 默认值是0 var color:Stri原创 2020-07-21 09:55:37 · 1302 阅读 · 0 评论 -
Filebeat+Logstash+Elasticsearch+Kibana实现图形化日志监控
文章目录Elasticsearch集群启动Filebeat 配置及启动Logstash 配置及启动模拟写入数据到日志文件Kibana启动及配置Elasticsearch集群启动启动es集群Filebeat 配置及启动创建配置文件log-monitor.yml内容如下:[root@localhost filebeat]# vi log-monitor.ymlfilebeat.inputs:- type: log enabled: true paths: - /opt/apps/f原创 2020-06-29 19:40:26 · 1656 阅读 · 1 评论 -
Logstash 安装+配置+数据采集示例
文章目录简介部署安装配置详解输入过滤输出读取地自定义日志输出内容到Elasticsearch简介Logstash是一个开源的数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据保存到指定库中,如ES。部署安装logstash运行需要java1.8环境,因此需要先安装java环境下载安装文件并复制到服务器解压后目录结构如下:[root@localhost apps]# ll总用量 687700drwxr-xr-x. 9 elsearch elsearch 155 6原创 2020-06-29 18:36:57 · 1413 阅读 · 0 评论 -
Kibana 安装配置及数据展示
文章目录Kibana介绍配置安装数据探索添加索引信息Metricbeat 仪表盘Nginx 日志仪表盘自定义图表开发者工具Kibana介绍Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。官网:https://www.elastic.co/cn/produc原创 2020-06-29 17:14:36 · 1980 阅读 · 0 评论 -
Metricbeat 指标采集工具应用示例
文章目录Metricbeat介绍Metricbeat组成Metricbeat部署及测试部署配置及测试Module 使用启用nginx Module 并修改配置nginx 安装对应的Module启动 metricbeat 并观察es中指标结果Metricbeat介绍Metricbeat 是一个轻量级指标采集器,可以从系统或服务收集指标存储到es中,进行试试分析Metricbeat组成Metricbeat有2部分组成,一部分是Module,另一部分为Metricset。Module收集的对象,如:m原创 2020-06-29 11:40:58 · 1974 阅读 · 0 评论 -
Filebeat 日志收集工具配置实践
文章目录Filebeat介绍Filebeat工作原理部署与运行解压安装包配置运行读取文件自定义字段输出到Elasticsearch读取Nginx日志文件Module使用Module启用Nginx Module配置Filebeat介绍Filebeat是一个轻量型日志采集器,可以方便的同kibana集成,启动filebeat后,可以直接在kibana中观看对日志文件进行detail的过程。结合搜索功能可以查看某个程序、某个服务器 在某段时间的日志情况。Filebeat工作原理Filebeat由两个主要组原创 2020-06-29 00:19:04 · 2378 阅读 · 0 评论 -
Elasticsearch JavaRESTAPI
文章目录Java RESTAPIJava 低级客户端引入依赖示例代码Java 高级客户端引入依赖示例代码Java RESTAPIElasticsearch提供了2种REST客户端,一种是低级客户端,一种是高级客户端。Java Low Level REST Client:官方提供的低级客户端。该客户端通过http来连接Elasticsearch集群。用户在使用该客户端时需要将请求数据手动拼接成Elasticsearch所需JSON格式进行发送,收到响应时同样也需要将返回的JSON数据手动封装成对象。虽然原创 2020-06-27 19:00:20 · 961 阅读 · 0 评论 -
Elasticsearch集群及数据读写原理
文章目录集群节点搭建集群部署文件修改配置服务启动状态查询分片和副本故障转移将data节点停止将master节点停止分布式文档读写路由文档写操作文档搜索操作全文搜索集群节点ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并用于区分其它的集群,每个节点通过node.name指定节点的名称。在Elasticsearch中,节点的类型主要有4种:master节点配置文件中node.master属性为true(默认为true),就有资格被选为master节点。ma原创 2020-06-27 16:58:15 · 2224 阅读 · 0 评论 -
Elasticsearch中文分词及全文检索
分词就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch中称之为Analysis。分词API接口:POST http://192.168.12.10:9200/_analyze参数{ "analyzer":"standard", "text":"我是中国人"}中文分词器 IK AnalyzerIK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初原创 2020-06-26 17:58:32 · 3081 阅读 · 0 评论 -
结构化索引及结构化查询
结构化索引前面我们创建的索引以及插入数据,都是由Elasticsearch进行自动判断类型,有些时候我们是需要进行明确字段类型的。Elasticsearch中支持的数据类型和JSON中数据类型对应关系如下(粗体为默认类型):JSON类型ES中数据类型Stringstring , text , keywordWhole numberbyte , short , integer , longFloating pointfloat , doubleBool原创 2020-06-26 00:43:41 · 1079 阅读 · 0 评论 -
ElasticSearch 基础概念及RESTful API
基本概念索引可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的。Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。文档存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录。Elasticsearch和MongoDB中的文档类似,都可以有不同的结构,但Elasticsearch的文档中,相同字段必须有原创 2020-06-25 22:59:40 · 655 阅读 · 0 评论 -
CentOS7 安装Elasticsearch详细教程
单机安装安装准备安装jdk1.8 并配置网络环境 关闭防火墙准备安装文件 elasticsearch-6.5.4.tar.gz创建用户#创建elsearch用户,Elasticsearch不支持root用户运行useradd elsearch文件解压用root解压安装文件并修改配置tar -xvf elasticsearch-6.5.4.tar.gz解压后修改 文件目录所有者为 elsearchchown elsearch:elsearch elasticsearch-6.5原创 2020-06-23 16:13:00 · 1285 阅读 · 0 评论 -
HBase优化思路及策略
高可用HMaster高可用在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 Hmaster 的高可用配置。HBase设计之初就考虑到了高可用,只需做配置backup-masters并启动多个HMaster即可关闭 HBase 集群(如果没有开启则跳过此步)bin/stop-hbase.sh原创 2020-06-18 20:50:38 · 778 阅读 · 0 评论 -
HBase数据结构及操作原理
数据结构命名空间命名空间相当于mysql 的database。命名空间中包括了表、权限等信息Table表(相当于mysql中的表),所有的表都是命名空间的成员,即表必属于某个命名空间,如果没有指定,则在 default 默认的命名空间中RowKey与 nosql 数据库们一样,RowKey 是用来检索记录的主键。访问 HBASE table 中的行,只有三种方式:通过单个 RowKey 访问通过 RowKey 的 range(正则)访问全表扫描RowKey 行键 (RowKe原创 2020-06-18 00:22:17 · 840 阅读 · 2 评论 -
CentOS安装HBase详细教程
安装准备1、安装JDK及Hadoop环境 见: https://blog.csdn.net/zhangxm_qz/article/details/1066953472、安装Zookeeper 见:https://blog.csdn.net/zhangxm_qz/article/details/889631943、准备好Hbase安装包 hbase-1.3.1-bin.tar.gzHadoop和 Hbase的版本存在依赖关系,必须保证版本匹配,匹配关系如下,我们这里使用hadoop2.6.1 和Hb原创 2020-06-15 16:42:22 · 2917 阅读 · 0 评论 -
hadoop 环境详细安装步骤
安装准备1、准备好虚拟机环境三台 我这里采用 centos7.8 安装好jdk1.82、准备 hadoop2.6.1安装包配置虚拟机 ip 和hosts修改三台服务器的ip为固定ip 并配置hosts127.0.0.1 server03 #localhost localhost.localdomain localhost4 localhost4.localdomain4 server01#::1 localhost localhost.localdomain localhost原创 2020-06-11 19:40:35 · 1799 阅读 · 0 评论 -
selenium自动化测试详细教程
环境准备1、下载火狐驱动 位置:https://cdn.npm.taobao.org/dist/geckodriver/ (我这里选择 v0.21.0 版本,如果版本太旧程序执行可能会报错)2、将驱动复制到 火狐浏览器的安装目录代码编写创建maven工程引入selenium依赖如下: <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId>原创 2020-06-11 19:20:35 · 3442 阅读 · 0 评论 -
Mybatis调用存储过程
java调用代码 Map<String, String> callParams = new HashMap<String, String>(7); callParams.put("lbbm", codeEntity.getLbbm()); callParams.put("languageGuid", codeEntity.getLanguageGuid()); callParams.pu原创 2020-05-28 10:43:29 · 676 阅读 · 0 评论 -
位运算
1、计算机所有的位操作都是针对 操作数的补码进行 操作 得到的结果也是补码。2、对正数而言 原码=反码=补码 对负数而言:补码=反码+1 反码=源码除符号位(1)外取反3、为什么这么设定? 计算机为了保证相反数二进制存储相加结果为0如果没有补码: 4 二进制:0000 0100 -4二进制:1000 0100 二者直接相加 1000 1000 结果是 -8如果使用补码运算: 4 二进...原创 2020-04-01 23:27:47 · 608 阅读 · 0 评论 -
HashMap源码分析
HashMap核心数据结构HashMap是基于哈希表(散列表),实现Map接口的双列集合java7:数组加链表java8及之后:数组、链表加红黑树,链表长度大于8 链表自动转换为红黑树。数据结构示意图如下:为什么大于8时转换为红黑树根据泊松分布规律当loadFactor为0.75时,8 最合适HashMap构造方法HashMap 有四个构造方法,可初始化容量及加载因子,如下: ...原创 2020-04-01 00:11:15 · 599 阅读 · 0 评论 -
小程序开发环境搭建
工具下载下载:访问https://mp.weixin.qq.com 进入 小程序界面点击文档 进入小程序文件界面(如果要开发小程序可按照文档指示注册开发账号)在文档目录中找到安装开发工具-前往开发者工具下载界面即可下载开发工具选择对应版本,下载安装工具安装使用双击运行安装开发工具安装完成 运行 开发工具微信扫码登录点击加号图标,可以新建项目,如果没有appid 可以点...原创 2020-02-26 14:51:30 · 1429 阅读 · 0 评论 -
prometheus HelloWorld
Prometheus简介Prometheus是一套开源的系统监控报警框架。Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix)拥有如下优点。易管理性Prometheus: Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。Nagios: 需要有专业的人员进行安装,配置和管理,并且过程很复杂。业务数据...原创 2020-01-17 16:35:53 · 1002 阅读 · 0 评论