自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安装Mysql8.0

wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum updateyum install mysql-server权限设置:chown -R mysql:mysql /var/lib/mysql初始化 MySQL:mysqld --initialize启动 MySQL:.

2022-04-11 16:02:38 921

原创 Kubernetes(十五)Kubernetes ReplicaSet 的实现原理

Kubernetes 中的 ReplicaSet 主要的作用是维持一组Pod副本的运行,它的主要作用就是保证一定数量的 Pod 能够在集群中正常运行,它会持续监听这些 Pod 的运行状态,在 Pod 发生故障重启数量减少时重新运行新的 Pod 副本。这篇文章会介绍 ReplicaSet 的工作原理,其中包括在 Kubernetes 中是如何被创建的、如何创建并持有 Pod 并在出现问题时重启它们。概述在具体介绍 ReplicaSet 的实现原理之前,我们还是会先简单介绍它的使用,与其他的 Kub

2022-04-03 11:34:12 307

原创 Kubernetes(十四)垃圾收集器的实现原理

垃圾收集器在 Kubernetes 中的作用就是删除之前有所有者但是现在所有者已经不存在的对象,例如删除 ReplicaSet 时会删除它依赖的 Pod,虽然它的名字是垃圾收集器,但是它在 Kubernetes 中还是以控制器的形式进行设计和实现的。在 Kubernetes 引入垃圾收集器之前,所有的级联删除逻辑都是在客户端完成的,kubectl 会先删除 ReplicaSet 持有的 Pod 再删除 ReplicaSet,但是垃圾收集器的引入就让级联删除的实现移到了服务端,我们在这里就会介绍垃圾收集器

2022-04-03 11:27:44 380 2

原创 Kubernetes(十三)etcd详解

导读:etcd 是用于共享配置和服务发现的分布式、一致性的 KV 存储系统。本文从 etcd 项目发展所经历的几个重要时刻开始,为大家介绍了 etcd 的总体架构及其设计中的基本原理。希望能够帮助大家更好的理解和使用 etcd。一、etcd 项目的发展历程etcd 诞生于 CoreOS 公司,它最初是用于解决集群管理系统中 OS 升级的分布式并发控制以及配置文件的存储与分发等问题。基于此,etcd 被设计为提供高可用、强一致的小型 keyvalue 数据存储服务。项目当前隶属于 CNCF 基金会

2022-04-03 10:19:13 1362

原创 Linux命令学习

那么多命令先学什么,后学什么是一个大问题,本文期望找一种方式,通过解决“Where”的问题,通过几个核心命令的学习,让你可以举一反三通过实践学习其他命令,从而解决Linux命令的“what”问题。我们使用的Linux发行版是Ubuntu,使用Ubuntu有几个快捷键要掌握一下,可以提高使用命令行的效率:CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了; CTRL+SHIFT+T:新建标签页,编程时有重要应用; ALT+数字N:终端中切换到第N个标签页,编程时有重要应用; Tab

2022-04-03 10:07:53 340

原创 Windows 10 Java 环境变量配置

下载 JDK下载地址:Java Downloads | Oracle点击下载按钮:开始安装JDK:可以设置为你想安装的路径。环境变量配置1. 打开 环境变量窗口右键This PC(此电脑) -> Properties(属性) -> Advanced system settings(高级系统设置) -> Environment Variables(环境变量)...2. 新建JAVA_HOME 变量点击New(新建)...按...

2022-04-03 10:02:51 107

原创 大数据学习之Hbase面试题

1,hbase读流程首先通过meta表找到要读数据的region所在的RegionServer,然后去BlockCash中读取,如果没有就去Memstore中读取,如果也没有,那就去Hfile中去读(1) 客户端访问Zookeeper,获取存放目标数据的Region信息,从而找到对应的RegionServer。(2) 通过RegionServer获取需要查找的数据。(3) Regionserver的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCa

2022-04-03 10:00:03 647

原创 大数据学习之Spark面试题

1. Spark 的运行流程?Spark运行流程具体运行流程如下:SparkContext 向资源管理器注册并向资源管理器申请运行 Executor资源管理器分配 Executor,然后资源管理器启动 ExecutorExecutor 发送心跳至资源管理器SparkContext 构建 DAG 有向无环图将 DAG 分解成 Stage(TaskSet)把 Stage 发送给 TaskSchedulerExecutor 向 SparkContext 申请 TaskTaskScheduler 将 T

2022-04-03 09:49:43 437

原创 Hive/HiveQL常用优化方法全面总结(下篇)

本文接上篇继续讲解Hive/HiveQL常用优化方法,按照目录,会从“优化SQL处理join数据倾斜”说起。优化SQL处理join数据倾斜上篇已经多次提到了数据倾斜,包括已经写过的sort by代替order by,以及group by代替distinct方法,本质上也是为了解决它。join操作更是数据倾斜的重灾区,需要多加注意。空值或无意义值这种情况很常见,比如当事实表是日志类数据时,往往会有一些项没有记录到,我们视情况会将它置为null,或者空字符串、-1等。如果缺失的项很多,在做joi

2022-04-03 09:43:56 313

原创 Hive/HiveQL常用优化方法全面总结(上篇)

Hive作为大数据领域常用的数据仓库组件,在平时设计和查询时要特别注意效率。影响Hive效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等等。对Hive的调优既包含对HiveQL语句本身的优化,也包含Hive配置项和MR方面的调整。由于在写的过程中发现篇幅过长,因此决定拆成上下两篇发布。上篇包含从开头到join优化的内容。目录列裁剪和分区裁剪 谓词下推 sort by代替order by group by代替distinct group

2022-04-03 09:41:22 262

原创 大数据学习之HDFS面试题

mapreduce工作流程:1、client提交数据到DFS,然后被分为多个split,然后通过inputformatter以key-value传给jobTraker。jobTraker分配工作给多个map(taskTraker)。project师重写map,在各个taskTraker上分别运行代码任务。做到数据不动,代码动(改革之中的一个)。真正实现代码分布式。2、tasktraker运行完代码后,将结果通过上下文收集起来,再传给reduce(也是taskTraker)。经过排序等操作,再运行pro

2022-04-03 09:36:29 367

原创 flink架构体系及部署分类

一:Flink的架构体系1.基础概念JobManager 主节点,老大节点用于管理 Flink 集群,容错机制,状态管理,心跳机制的管理等 TaskManager 从节点,干活节点,用于具体任务执行 Slot 任务槽:静态的概念,具备的能力,包含CPU(一个线程)和内存,任务task就是在 Slot 中执行,每个Slot中最多只能执行一个 task。内存分配是静态的,将可执行的内存大小平均的分配给 n 份,slot中内存之间是隔离的,cpu core不隔离的。 并行度 parallelis

2022-04-02 22:31:08 513

原创 springboot面试题

1. 什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。2. Spring Boot 有哪些优点?Spring Boot 主要有如下优点:容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。 开箱即用,远离繁琐的配置。 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运

2022-04-02 22:27:31 181

原创 100道MySQL面试题及答案

1. MySQL 索引使用有哪些注意事项呢?可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则索引哪些情况会失效 查询条件包含or,可能导致索引失效 如何字段类型是字符串,where时一定用引号括起来,否则索引失效 like通配符可能导致索引失效。 联合索引,查询时的条件列不是联合索引中的第一个列,索引失效。 在索引列上使用mysql的内置函数,索引失效。 对索引列运算(如,+、-、*、/),索引失效。 索引

2022-04-02 22:23:26 47319 6

原创 Java多线程:使用多线程的几种方式以及对比

前言Java多线程的使用有三种方法:继承Thread类、实现Runnable接口和使用Callable和Future创建线程,本文将对这三种方法一一进行介绍。1、继承Thread类实现方式很简单,只需要创建一个类去继承Thread类然后重写run方法,在main方法中调用该类实例对象的start方法即可实现多线程并发。代码:public class MyThread extends Thread { @Override public void run(){

2022-04-02 22:11:35 1255

原创 Java面试题

包含的模块本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM,如下图所示:共包含 208 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。Java 基础1. JDK 和 JRE 有什..

2022-04-02 22:10:19 226

原创 IDEA maven配置

1. 下载maven下载地址从官网上,下载一个压缩包,然后解压到任意的文件夹Maven的安装必须需要jdk1.7+2. 环境变量设置M2_HOME改为具体的路径,其他的就直接复制就好复制M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-3.2.5M2=%M2_HOME%\binMAVEN_OPTS=-Xms256m -Xmx512mPath目录下添加以下复制%M2%打开cm

2022-04-02 22:07:04 155

原创 Java JDK和IntelliJ IDEA 配置及安装

idea 软件官方下载地址:Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrainsjdk环境变量Path: C:\ProgramFiles\Java\jdk1.8.0_162\binCLASSPATH: C:\ProgramFiles\Java\jdk1.8.0_162\libJAVA_HOMEC:\ProgramFiles\Java\jdk1.8.0_162Code ...

2022-04-02 22:05:27 522

原创 Kubernetes(十二)Kubernetes ConfigMap&Secret详解

一、ConfigMap官方文档 ConfigMap概念ConfigMap的功能在k8s1.2版本中引入的,许多应用程序会从配置文件,命令行参数或环境变量中读取配置信息。ConfigMap API会给我们提供了向容器中注入配置信息的机制,ConigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制的对象1. 为什么需要configmap我们经常都需要为我们的应用程序配置一些特殊的数据,比如密钥、Token 、数据库连接地址或者其他私密的信息。你的应用可能会使用一些特

2022-04-01 23:27:27 749

原创 Kubernetes(十一)Kubernetes ingress的实现原理

一、Ingress概念Kubernetes关于服务的暴露主要是通过NodePort方式,通过绑定宿主机的某个端口,然后进行pod的请求转发和负载均衡,但这种方式下缺陷是:Service可能有很多个,如果每个都绑定一个node主机端口的话,主机需要开放外围一堆的端口进行服务调用,管理混乱无法应用很多公司要求的防火墙规则。理想的方式是通过一个外部的负载均衡器,绑定固定的端口,比如80,然后根据域名或者服务名向后面的Service ip转发,Nginx很好的解决了这个需求,但问题是如果有新的服务加入,

2022-04-01 23:16:31 3987

原创 Kubernetes(六)Kubernetes Namespace 详解

命名空间Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。何时使用多个命名空间命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。当需要名称空间提供的功能时,请开始使用它们。命名空间为名称提供了一个范围。资源的名称需要在命名空间内是唯一的,但不能跨命名空间。命名空间不能相互嵌套,每个 Kubernetes 资源只能在一个命名空间中。命名空间是在多个用户之间划分集群资源的一种方法(通过

2022-04-01 23:01:36 358

原创 Kubernetes(五)Kubernetes Volume详解

Volume的作用一切container和它之中的数据都是临时的。如果container重启,这些数据会丢失。Volume用于container保存需要持久化的数据。这些数据也可以用于container共享。Volume的概念Docker中有volume的概念。在Docker中,volume是container中的一个目录。Volume没有生命周期的概念,volume中的数据只有储存在本地磁盘这一种形式。Kubernetes的volume具有明确的生命空间。Volume生命周期比pod中运行

2022-04-01 22:58:32 1532

原创 Kubernetes(四)Kubernetes Service 的实现原理

在上一篇文章中,我们介绍了Kubernetes 中 Pod 的实现原理,Pod 是 Kubernetes 中非常轻量的对象。集群中的每一个 Pod 都可以通过podIP被直接访问的,但是正如我们所看到的,Kubernetes 中的 Pod 是有生命周期的对象,尤其是被 ReplicaSet、Deployment 等对象管理的 Pod,随时都有可能由于集群的状态变化被销毁和创建。这也就造成了一个非常有意思的问题,当 Kubernetes 集群中的一些 Pod 需要为另外的一些 Pod 提供...

2022-03-30 20:20:22 1433

原创 Kubernetes(三)Kubernetes Pod 的实现原理

Pod、Service、Volume 和 Namespace 是 Kubernetes 集群中四大基本对象,它们能够表示系统中部署的应用、工作负载、网络和磁盘资源,共同定义了集群的状态。Kubernetes 中很多其他的资源其实只对这些基本的对象进行了组合。Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元,想要彻底和完整的了解 Kubernetes 的实现原理,我们必须要清楚 Pod 的实现原理以及最佳实践。在这里,我们将分两个部分对 Pod 进行解析,第一部分主要会从概.

2022-03-30 20:17:35 285

原创 Kubernetes(十)Kubernetes Job 和 CronJob 的实现原理

之前介绍了 Kubernetes 中用于长期提供服务的ReplicaSet、Deployment、StatefulSet和DaemonSet等资源,但是作为一个容器编排引擎,任务和定时任务的支持是一个必须要支持的功能。Kubernetes 中使用 Job 和 CronJob 两个资源分别提供了一次性任务和定时任务的特性,这两种对象也使用控制器模型来实现资源的管理,我们在这篇文章种就会介绍它们的实现原理。概述Kubernetes 中的 Job 可以创建并且保证一定数量 Pod 的成功停止,...

2022-03-30 20:12:35 642

原创 Kubernetes(九) Kubernetes DaemonSet 的实现原理

Deployment是 Kubernetes 中用于处理无状态服务的资源,而StatefulSet是用于支持有状态服务的资源,这两种不同的资源从状态的角度对服务进行了划分,而 DaemonSet 从不同的维度解决了集群中的问题 — 如何同时在集群中的所有节点上提供基础服务和守护进程。我们在这里将介绍 DaemonSet 如何进行状态的同步、Pod 与节点(Node)之间的调度方式和滚动更新的过程以及实现原理。概述DaemonSet 可以保证集群中所有的或者部分的节点都能够运行同一份 Pod...

2022-03-30 20:10:22 1978

原创 Kubernetes(八)Kubernetes StatefulSet 实现原理

在 Kubernetes 的世界中,ReplicaSet和Deployment主要用于处理无状态的服务,无状态服务的需求往往非常简单并且轻量,每一个无状态节点存储的数据在重启之后就会被删除,虽然这种服务虽然常见,但是我们仍然需要有状态的服务来实现一些特殊的需求,StatefulSet 就是 Kubernetes 为了运行有状态服务引入的资源,例如 Zookeeper、Kafka 等。这篇文章会介绍 Kubernetes 如何在集群中运行有状态服务,同时会分析这些有状态服务 StatefulS...

2022-03-30 20:08:48 222

原创 Kubernetes(七) Kubernetes Deployment 的实现原理

如果你在生产环境中使用过 Kubernetes,那么相信你对 Deployment 一定不会陌生,Deployment 提供了一种对Pod和ReplicaSet的管理方式,每一个 Deployment 都对应集群中的一次部署,是非常常见的 Kubernetes 对象。我们在这篇文章中就会介绍 Deployment 的实现原理,包括它是如何处理 Pod 的滚动更新、回滚以及支持副本的水平扩容。概述作为最常用的 Kubernetes 对象,Deployment 经常会用来创建Replica...

2022-03-30 20:06:01 802

原创 Kubernetes(二)了解k8s的基本组件与概念

Kubernetes是什么Kubernetes是Google于2014年基于其内部Brog系统开源的一个容器编排管理系统,可使用声明式的配置(以yaml文件的形式)自动地执行容器化应用程序的管理,包括部署、伸缩、负载均衡、回滚等。kubernetes提供的功能:自动发布与伸缩:可以通过声明式的配置文件定义想要部署的容器,Kubernetes将自动进行容器的部署,达到期望的结果;通过指定容器副本数,或者设置根据资源负载情况(如CPU、内存使用率),自动对容器组进行快速的伸缩——增大或缩小容器数量

2022-03-30 19:41:30 187

原创 Kubernetes(一) 从零搭建K8S

阅读这篇文章你能收获到:如何阅读Kubernetes官方安装指南并搭建一个Kubernetes环境. Kubernetes安装过程中的注意事项. 避过常见的坑.阅读本文你需要:熟悉Linux命令. 知道Kubernetes是用来干什么的 (不然装它干啥(ಥ_ಥ)). 知道Docker器材准备文档链接: Before you begin序号 名称 数量 备注 1 服务器 2 操作系统: Linux(centos7, 其它操作系统也可,..

2022-03-30 19:33:51 499

空空如也

空空如也

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

TA关注的人

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