自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Hadoop学习-06-生产环境参数\调优

HDFS核心参数建议配置NameNode内存Hadoop2.x:NameNode 内存默认2000m,如果服务器内存4G,NameNode内存可以配置3g。在hadoop-env.sh 文件中配置如下。HADOOP_NAMENODE_OPTS=-Xmx3072mHadoop3.xhadoop-env.sh 中描述 Hadoop 的内存是动态分配的建议配置:NameNode最小值为1G,每增加1000000个Block增加1G内存DataNode最小值为4G,每增加100

2021-05-17 16:45:54 794

原创 Hadoop学习-05-Yarn

理论相关Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式 的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。基础架构主要由ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。ResourceManager:处理客户端请求监控NodeManager启动或监控c资源的分配与调度NodeManager:管理单个节点上的资源处理来自Re

2021-05-17 15:06:44 293

原创 Hadoop学习-04-MapReduce

概述MapReduce 是一个分布式运算程序的编程框架,是用户开发“基于Hadoop 的数据分析应用”的核心框架。MapReduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个 Hadoop 集群上。优缺点易于编程,简单的实现一些接口,就可以完成一个分布式程序良好的扩展性,通过简单的增加机器来扩展它的计算能力高容错性,其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行, 不至于这个任务运行失败PB级以上的海量数据的离线处理不

2021-05-13 15:26:59 403

原创 Hadoop学习-03-HDFS

概述HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS 的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。HDFS优缺点:高容错性数据自动保存为多个副本,通过增加副本的形式,提高容错性某一个副本丢失后,可以自动恢复适合处理大数据数据规模:能够处理数据达到GB,TB甚至PB级别数据

2021-05-13 15:25:30 268

原创 Hadoop学习-02-基础

Hadoop部署基础环境准备Linux - Centos7JDK 1.8Hadoop 3.x模板机准备#基础包yum install -y epel-release net-tool vim# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld.service#创建用户并授权useradd atguigupasswd atguigu#atguigu 这一行不要直接放到 root 行下面,因为所有用户都属于 w

2021-05-13 15:24:23 410 3

转载 Hadoop学习-01-概述

概述Hadoop 是什么1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。2)主要解决,海量数据的存储和海量数据的分析计算问题。3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。Apache 版本最原始(最基础)的版本,对于入门学习最好。2006官网地址:http://hadoop.apache.org下载地址:https://hadoop.apache..

2021-05-13 15:23:22 231 2

原创 Ty学习笔记-Redis6

https://www.bilibili.com/video/BV1Rv41177Af数据都在内存中,支持持久化,主要用作备份恢复作为缓存数据库辅助持久化数据库会周期性到把更新到数据写入磁盘或把修改操作写入追加到记录文件支持存储string,list,set,zset(sorted set),hash类型支持push,pop,add,remove,并交差等操作,操作都是原子性的默认16个数据库,从0开始,默认使用0号数据库使用select <dbid>,比如:select 8来使

2021-04-29 18:38:28 788

原创 Scala-5-类、对象、包、特质

类和对象Scala中,一切皆对象类scala中, 类并不声明public,所有的类都默认是public的,在定义类时添加public会报错一个Scala源文件中可以定义多个class,并且这些 class都是public的,Scala在编译的时候,会编译成多个.class文件属性在声明一个属性时, Scala底层属性是private的,同时会生成两个方法,一个是以属性名命名的相当于getter,另一个是属性名+_$eq命名,相当于setter所以在调用类属性时,不是直接调用的是类属性,而

2021-03-04 10:01:45 170 1

原创 JVM-23-JVM常用参数

打印设置相关参数介绍-XX:+PrintCommandLineFlags程序运行前打印出用户手动设置或JVM自动设置的XX选项-XX:+PrintFlagsInitial打印出所有XX选项默认值-XX:+PrintFlagsFinal打印出XX选项在运行程序时生效的值-XX:+PrintVMOptions打印JVM的参数内存大小相关栈相关参数介绍-Xss<value>设置每个线程的栈的大小等价于-XX:Thr

2021-02-22 15:25:44 143

原创 JVM-22-JVM参数

仅列出了java命令显示的一些参数,其他参数详情查阅官方文档JDK7链接JDK8链接标准参数特点: 比较稳定, 后续版本基本不会变化, 以-开头java -help出来的提示就是所有的标准参数参数名功能-d32使用 32 位数据模型 (如果可用)-d64使用 64 位数据模型 (如果可用)-server选择 “server” VM, 默认 VM 是 server.-cp<目录和 zip/jar 文件的类搜索路径>-class.

2021-02-22 10:36:40 118

转载 JVM-21-JVM监控及诊断工具之GUI(三)-Arthas

Arthas概述Arthas可以解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么办法可以监控到JVM的实时运行状态?怎么快速定位应用的热点,生成火焰图?Arthas支持JDK 6+,支持Linux/Ma

2021-02-20 14:37:53 156

原创 JVM-20-JVM监控及诊断工具之GUI(二)-MAT与JProfiler

MAT概述MAT(Memory Analyzer Tool)工具是一款功能强大的Java堆内存分析器, 可以用于查找内存泄漏以及查看内存消耗情况MAT是基于Eclipse进行开发的, 不仅可以单独使用, 也可以作为插件的形式嵌入在Eclipse中使用可以在 官网下载并使用主要作用就是用来分析Dump文件的MAT不是一个万能工具, 并不能处理所有类型的堆存储文件, 但是比较主流的如Sun, HP, SAP所采用的的hprof二进制堆存储文件, 已经IBM的PHD堆存储文件等都能被很好的解析最最

2021-02-20 14:20:39 1413

原创 OQL语言(部分基本示例)

OQL语言(示例)OQL语言使用类SQL语法, 可以在堆中进行对象的查找和筛选, 不区分大小写SELECT子句SELECT子句的格式与SQL基本一致, 用于指定要显示的列, SELECT子句中可以使用*号,查看结果对象的引用实例(相当于outgoing references)SELECT * FROM java.util.Vector v/* 使用OBJECTS 关键字, 可以将返回的结果集中的项以对象的形式显示 */SELECT OBJECTS v.elementData FROM

2021-02-20 10:27:33 2679

原创 内存泄漏相关

泄漏的分类经常发生, 发生泄漏的代码会被多次执行, 每次执行泄漏一块内存偶然发生, 在某些特定情况下才会发生一次性, 发生内存泄漏的方法只会执行一次隐式泄漏, 一直占着内存不释放, 直到执行结束, 严格的说这个不算内存泄漏, 因为最终释放掉了, 但是如果执行时间特别长, 也可能会导致内存耗尽内存泄漏的八种情况静态集合类如HashMap, LinkedList等等, 如果这些容器为静态的, 那么它们的生命周期与JVM程序一致, 则容器中的对象在程序结束之前将不能被释放, 从而造成内存泄

2021-02-20 10:26:03 146

原创 JVM-19-JVM监控及诊断工具之GUI(一)-JConsole与VisualVM

jconsole概述从Java5开始, 在JDK中自带的java监控和管理控制台用于对JVM中内存, 线程和类等的监控, 是一个基于JMX的GUI性能监控工具官方使用文档启动cmd中直接输入jconsole即可三种连接方式local使用Jconsole连接一个正在本地系统运行的JVM, 需要执行程序的用户与运行jconsole的用户是同一个, jconsole使用文件系统的授权通过RMI连接器连接到平台的MBean服务器上, 这种从本地连接的监控能力只有Sun的JDK有

2021-02-18 11:52:16 190 1

原创 JVM-18-JVM监控及诊断工具之命令行

以下使用<>括起来的是参数, [] 括起来的是可选填jps查看正在运行的Java进程, 显示指定系统内所有的HotSpot虚拟机进程, 对本地虚拟机进程来说, 进程的本地虚拟机ID与操作系统的进程ID是一致的语法: jps [-q] [-mlvV] [<hostid>]options参数:-q: 只显示进程ID,不显示主类名称-l : 输出应用程序主类的全类名, 如果进程执行的是jar包, 则输出jar完整路径-m: 输出虚拟机进程启动时传递给主类main的参数.

2021-02-07 12:51:13 218

原创 JVM-17-性能监控与调优概述

调优之前准备工作:运行日志异常堆栈GC日志线程快照堆转储快照性能优化的步骤:发现问题: 性能监控GC频繁CPU load过高OOM内存泄漏死锁程序响应时间较长排查问题: 性能分析打印GC日志,通过GCViewer或其他工具分析日志信息灵活使用命令行工具dump出堆文件, 使用内存分析工具分析文件使用Arthas或jconsole,JVisualVM实时查看JVM状态jstack查看堆栈信息解决问题: 性能调优适当增加内存, 根据业务背景选择垃.

2021-02-03 10:41:53 329

原创 Scala基础-4-函数基础

Scala中方法和函数几乎是可以等同的, 只是函数的使用方式更加灵活多样函数式编程是从编程方式的角度来谈的, Scala中,函数可以像变量一样, 既可以作为函数的参数使用,也可以将函数赋值给一个变量, 函数的创建不用依赖于类或对象函数定义基本语法def 函数名(参数名:参数类型,...):返回值类型 = { 函数体}def: 函数声明关键字返回值:: 返回值类型 =,返回该类型返回值只有一个等于, 表示返回值不确定,使用类型推导完成什么都没有, return不生效如果没.

2021-01-21 10:39:23 140

原创 Scala基础-3-流程控制

分支Scala中任意表达式都是有返回值的, if-else的返回值取决于代码块中最后一行内容val res1 = { if (Double >= 6) { println("Double大于6") 9+7 "aaa" } else "Double不大于6"}//res="aaa" 或"Double不大于6"//没有进入循环时返回值为UnitScala中没有Switch分支,而是使用模式匹配来处理,后面会涉及到

2021-01-18 14:11:24 104

原创 Scala基础-2-运算符

算数运算符%: 取模运算计算方法: a%b= a-a/b*b++或--: Scala中取消掉了++或--, 使用+=1或-=1### 关系运算符两个浮点类型进行比较时,要保证数据类型一致赋值运算符Scala中支持代码块返回:val res={ if (Double>6) "Double大于6" else "Double不大于6"}printf(res)运算符优先级和说明Scala不再支持三目运算符,而是使用if-else来代替val num = if(

2021-01-18 10:55:42 140

原创 Scala基础-1-变量

变量定义:var/val 变量名: 变量类型 = 变量值,Scala要求声明变量时必须初始化val p: String="Scala"val i: Int=10声明变量时,变量类型可以省略类型确定后,就不能再更改用 var声明的变量可以修改,val修饰的不可改,即相当于val修饰的变量添加了final,使用val修饰没有线程安全问题数据类型:Scala中有和java相同的数据类型,在scala中数据类型都是对象,也就是说scala中没有java中的原生类型Scala数据类型分为两

2021-01-18 10:16:57 147

原创 Scala基础-0-简介

ScalaScala是Scalable Language的简写,是一门多范式的编程语言以JVM为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言Scala源代码.scala文件会被编译成.class文件,运行在JVM上面,并可以调用现有的java类库,实现两种语言的无缝对接Scala与JavaScala注意事项:以.scala为扩展名执行入口也是main函数严格区分大小写一般每个语句占一行,最后不需要加分号;但如果多个语句在一行,那么每个语句中间需要分.

2021-01-18 10:15:48 131

原创 Ty-Mysql函数笔记

字符函数length(String)-- 用来获取一个字符串的字节长度-- gbk字符集中一个汉字字符占2字节,utf-8中一个占3字节-- varchar(length) 中的length值的是字符长度SELECT LENGTH('123456');-- 6concat(String…)-- 拼接字符串,将多个字符串拼接在一起SELECT CONCAT('%',name,'%') FROM ...;-- %Ty%upper(String)\lower(String)

2020-12-24 17:25:29 183 1

原创 Ty-JDBC学习笔记

概述JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系

2020-12-24 12:00:18 304

原创 Ty-JUC基础笔记

JUC简介在 Java 5.0 提供了 java.util.concurrent (简称 JUC )包,在此包中增加了在并发编程中很常用 的实用工具类,用于定义类似于线程的自定义子 系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于 多线程上下文中的 Collection 实现等。volatile 关键字与内存可见性内存可见性内存可见性(Memory Visibility)是指当某个线程正在使用对象状态 而另一个线程在同时修改该状态,需要确保当一个线

2020-12-18 14:47:33 217

原创 Ty-NIO笔记

NIO简介Java NIO(New IO)是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API。 NIO与原来的IO有同样的作用和目的,但是使用 的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作NIO与IO的主要区别IONIO面向流面向缓冲区阻塞IO非阻塞IO选择器缓冲区-Buffer和通道-ChannelJava NIO系统的核心在于:通道(Channel

2020-12-17 16:05:35 169

原创 Ty-JDK8部分新特性笔记

Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以 传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了 提升。本质上还是一个接口的实例语法Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操 作符。这个操作符为 “->” , 该操作符被称为 Lambda 操作符 或箭头操作符。它将 Lambda 分为两个部分:左侧:指定了 Lambda 表

2020-12-16 16:08:05 300

原创 Ty-反射基础笔记

概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期 借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内 部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个 类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可 以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看 到类的结构,所以,我们形象的称之为:反射。动态语言 vs 静态语言动态语言 是一类在运行时可以改变其结

2020-12-15 16:08:07 216

原创 Ty-网络编程(Socket)基础笔记

概述Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层 细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并 且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一 的网络编程环境。网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯网络编程中有两个主要的问题:如何准确地定位网络上一台或多台主机;定位主

2020-12-14 17:05:47 373

原创 Ty-IO流相关笔记

Filejava.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器File类的常用构造器public File(String pathname

2020-12-14 15:21:01 313

原创 泛型相关笔记

泛型类可能有多个参数,此时应将多个参数一起放在尖括号内。比如:<E1,E2,E3>泛型类的构造器如下:public GenericClass(){}。 而下面是错误的:public GenericClass(){}实例化后,操作原来泛型位置的结构必须与指定的泛型类型一致。泛型不同的引用不能相互赋值。尽管在编译时ArrayList<String> 和ArrayList<Integer>是两种类型,但是,在运行时只有 一个ArrayList被加载到JVM中。.

2020-12-08 12:02:28 79 1

原创 Ty集合相关笔记

概述集合和数组:都是对多个数据进行存储(内存层面)操作的结构,简称java容器数组一旦初始化后,其长度就确定了,元素类型也确定了,就只能操作指定类型的数据数组提供的方法非常有限,对添加、删除、插入数据非常不便,效率也不高,获取数组中实际元素的个数的需求,没有现成属性或方法可用数组存储数据的特点:有序、可重复,对于无序、不可重复需求不能满足集合可分为Collection和map两种体系Collection:单例数据,定义了存储一组对象的方法的集合list:元素有序,可重复set:

2020-12-04 17:41:03 264

原创 HashMap源码初探

HashMap源码解读:基于JDK8类声明://HashMap类声明,继承了AbstractMap类、Map接口、Cloneable、Serializable接口public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {}成员变量://底层数组的默认初始化容量,必须是2的幂次方,也就是桶的个数static final

2020-12-04 15:52:42 92

原创 一些java常用类笔记

一些Java常用类字符串相关StringString是一个final类,代表不可变的字符序列字符串是常量,值在创建后不能更改String对象的字符内容是存储在一个字符数组中的 char value[]String对象的创建String str="hello";String s1=new String();String s2=new String(Stirng);String s3=new String(char[]);String s4=new String(char

2020-11-23 17:14:40 171

原创 Ty的线程学习笔记

线程线程的创建方式继承Thread类:创建一个继承于Thread类的子类重新run方法创建子类对象调用start方法启动启动一个线程,必须调用start方法不能直接使用run方法如果再启动一个线程,必须重写创建一个子类对象,不能再次使用之前创建好的public class Thread1 implements Runnable { @Override public void run() { }}实现Runnable接口创建实现R

2020-11-20 17:03:10 231 1

原创 Mycat+HAProxy+keepalived+MycatWeb

Mycat权威指南概述MyCat:数据库中间件为什么用MyCat:解决java程序与数据库之间的紧耦合,高访问量高并发,读写请求数据不一致市面上的一些数据库中间件MyCat可以做到什么:读写分离,数据库分片,多数据源整合安装从官网下载安装包,上传到服务器并解压三个重要的配置文件:schema.xml:定义逻辑库、表、分片节点等内容rule.xml:定义分片规则server.xml:定义用户以及系统相关变量修改server.xml<!--修改用户名密码,数据库

2020-11-19 10:22:01 216

原创 Mysql环境搭建

typora-root-url: C:\Apt安装Ubuntu18.04版本安装更新数据源:apt-get update安装数据库:apt-get install mysql-server默认安装 5.7.32版本注意: 系统将提示您在安装过程中创建 root 密码。选择一个安全的密码,并确保你记住它,因为你以后需要它。接下来,我们将完成 MySQL 的配置。配置注意: 因为是全新安装,您需要运行附带的安全脚本。这会更改一些不太安全的默认选项,例如远程 root 登录和示例.

2020-11-16 14:24:06 297

原创 JVM-16-类的加载器(二)

概述类加载时jvm执行类加载机制的前提ClassLoader的作用:ClassLoader是java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入jvm内部,转换为一个与目标类对应的java.lang.Class对象实例,然后交给java虚拟机进行链接初始化等操作,因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化等行为,只有他是否可以

2020-11-12 09:57:43 144

原创 JVM-15-类的加载过程详解

概述在java中数据类型分为基本数据类型和引用数据类型,基本数据类型有虚拟机预先定义,引用数据类型则需要执行类的加载从class文件到加载到内存中的类到类卸载出内存为止,整个生命周期包括如下七个阶段:从程序中类的使用过程看:加载-Loading加载完成的操作所谓加载 ,就是将java类的字节码文件加载到机器内存中,并在内存中构建出java类的原型–类模板对象(java类在jvm内存中的一个快照),jvm将从字节码文件中解析出的常量池、类字段、类方法等信息存储到类模板中,这样jvm在运行期边

2020-11-09 16:06:22 156

原创 JVM-14-字节码指令集

字节码指令集与解析举例指令集官方文档概述java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数组(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)构成,由于java虚拟机采用面向操作数栈而不是寄存器的结构,所以大多数的指令都不包含操作数,只有一个操作码由于限制了java虚拟机操作码的长度为一个字节,即0-255,所以指令集的操作码数不可能超过256条执行模型:java虚拟机的解释器可以使用下面的伪代码当做最基本的执行模型来理

2020-11-06 10:59:10 505

空空如也

空空如也

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

TA关注的人

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