Hadoop-yarn
Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 Y****arn基本架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 Y****arn工作机制 (1)MR程序提交到客户端所在的节点。 (2)YarnRunner向ResourceManager申请一个Application。 (3)RM将该应用程序的资源路径返回给YarnRunner。 (4)该程序将运行所需资源提交到HDFS上。 (5)程序资源提交完毕后,申请运行mrAppMaster。 (6)RM将用户的请求初始化成一个Task。 (7)其中一个NodeManager领取到Task任务。 (8)该NodeManager创建容器Container,并产生MRAppmaster。 (9)Container从HDFS上拷贝资源到本地。 (10)MRAppmaster向RM 申请运行MapT...
阻塞、非阻塞、同步、异步的区别是什么?
同步异步描述的是被调用方。阻塞非阻塞描述的是调用方。二者没有必然联系。 阻塞是调用方A发出命令后,必须等待B返回结果。非阻塞是调用方A发出命令后,A不需要等待B,可以做自己的事情。 同步是B收到A的指令之后会立即执行,A可以得到结果。异步是B收到A的指令之后不会立即执行要做的事情,A的本次调用不会得到结果,但是B执行完要做的事情之后会通知A。 我们常常混淆的同步异步、阻塞非阻塞其实是放在特定场景下的,不能一概而论,IO也分为磁盘IO和网络IO。这里所讲的IO一般指网络IO。 阻塞IO和非阻塞IO:指的是socket编程中发起read函数系统调用读取数据后是否阻塞住 如果一直等待到有数据才返回,这个read就是阻塞的,也是同步的 如果没有数据就返回-1而不是等待,这个read就是非阻塞的,也是同步的 同步IO和异步IO:指的操作系统内核是否自动将数据从内核空间拷贝到用户空间 如果需要read函数自己将数据拷贝到用户空间就是同步IO 如果内核自动将数据拷贝到用户空间,并且通知用户,就是异步IO(一般在Linux上用的少,windows有完整实现) 同步执行和异步执行:指...
Istio部署监控
apiVersion: apps/v1kind: Deploymentmetadata: name: productpage-v1 labels: app: productpage version: v1spec: replicas: 1 selector: matchLabels: app: productpage version: v1 template: metadata: labels: app: productpage version: v1 annotations: datakit/prom.instances: | [[inputs.prom]] url = “http://$IP:15020/stats/prometheus” source = “ack-istio-product” me...
shell高级
shell高级组命令和子 shellbash 允许把命令组合在一起。可以通过两种方式完成;要么用一个 group 命令,要么用一个子 shell。 组命令: 1{ command1; command2; [command3; ...] } 子 shell: 1(command1; command2; [command3;...]) 组命令用花括号把它的命令包裹起来,而子 shell 用括号。花括号与命令之间必须有一个空格,并且最后一个命令必须用一个分号或者一个换行符终止。 它们都是用来管理重定向的。 123ls -l > output.txtecho "Listing of foo.txt" >> output.txtcat foo.txt >> output.txt >>是追加 这些代码相当简洁明了。三个命令的输出都重定向到一个名为 output.txt 的文件中。 使用一个组命令,我们可以重新编 写这些代码 1{ ls -l; echo "Listing o...
进程、线程和协程之间的区别和联系
进程、线程和协程之间的区别和联系一、进程 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。 【进程间通信(IPC)】: 管道(Pipe)、命名管道(FIFO)、消息队列(Message Queue) 、信号量(Semaphore) 、共享内存(Shared Memory);套接字(Socket)。 二、线程 线程,有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度(CPU调度)执行的最小单位。 三、进程和线程的区别与联系【区别】: 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位; 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行; 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。进程所维护的是程序所包含的资源(静态资源), 如:地址空间,打开的文件句柄集,文件系统...
Java监控服务器信息
1、引入依赖1234567891011<!-- 获取系统信息 --><dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>5.8.2</version></dependency><!-- lang3 工具包 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId></dependency> 2、依赖工具类 目录结构: Model 1234567891011121314151617181920212223242526272829303132333435363738394041/** * CPU相关信息 */public ...
HEAD以及分离头指针
HEAD 是一个对当前检出记录的**符号引用** —— 也就是**指向你正在其基础上进行工作的提交记录**。HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。 HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。 1234git checkout c1git checkout master git commit -m "c2"git checkout c2 如果想看 HEAD 指向,可以通过 cat .git/HEAD 查看 分离的 HEAD**分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。**在命令执行之前的状态如下所示: HEAD -> master -> C1 HEAD 指向 master, master 指向 C1 1git checkout c1 现在变成了 HEAD -> C1
消息队列重点问题
参考资料: 从 0 开始带你成为消息中间件实战高手 中华石杉互联网 Java 工程师面试突击(第一季) 重点 一定要在自己的核心链路里做文章,有没有可能一个关键的步骤会失败?如果这个关键步骤失败了,这个时候会怎么样?如果某个步骤没有成功,是不是需要启动后台线程定时扫描进行补偿? 所谓的核心链路,不是说查询链路,即并不是一次请求全部是查询。而是说的是数据更新链路,即一次请求过后会对你的各种核心数据进行更新,同时还会调用其他服务或者系统进行数据更新或者查询,这样的一个链路叫做系统的核心链路。针对这样的系统核心数据链路,你考虑一下有没有哪些环节拖累了性能?你能否通过在系统里打印日志的方式,排查出来核心数据链路中的每个环节的耗时是多长?哪些环节是最耗时的?有没有可能引入MQ技术把一些耗时的步骤做成异步化的方式,来优化核心数据链路的性能?如果可以的话,你应该如何设计这个技术方案?哪些环节同步执行?哪些环节要异步执行? 主动思考能力,随机应变的本事。 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路。从整体了解把握住一个消息队列的架构原理,给出一些关键点出来。技术的基本原理、...
CPU分析和优化总结
CPU 性能指标CPU 使用率 用户 CPU 使用率,包括**用户态 CPU 使用率(user)和低优先级用户态 CPU 使用率 (nice),表示 CPU 在用户态运行的时间百分比。用户 CPU 使用率高,通常说明有应用程序比较繁忙。** 系统 CPU 使用率,表示 CPU 在内核态运行的时间百分比(不包括中断)。系统 CPU 使 用率高,说明内核比较繁忙。 等待 I/O 的 CPU 使用率,通常也称为 iowait,表示等待 I/O 的时间百分比。iowait 高,通常说明系统与硬件设备的 I/O 交互时间比较长。 软中断和硬中断的 CPU 使用率,分别表示内核调用软中断处理程序、硬中断处理程序的 时间百分比。它们的使用率高,通常说明系统**发生了大量的中断**。 除了上面这些,还有在虚拟化环境中会用到的窃取 CPU 使用率(steal)和客户 CPU 使 用率(guest),分别表示被其他虚拟机占用的 CPU 时间百分比,和运行客户虚拟机的 CPU 时间百分比。 平均负载(Load Average), 系统的平均活跃进程分别指过去 1 分钟...
Hadoop概念以及安装
Hadoop概论 Hadoop是一个由 Apache基金会所开发的分布式系统基础架构。 主要解决,海量数据的存储和海量数据的分析计算问题。 广义上来说, Hadoop通常是指一个更广泛的概念 Hadoop生态圈。 Hadoop三大发行版本:Apache、Cloudera、Hortonworks。 Apache版本最原始(最基础)的版本,对于入门学习最好。 Cloudera内部集成了很多大数据框架。对应产品CDH。用的最多,方便 Hortonworks文档较好。对应产品HDP。 高可靠性: Hadoop底层维护多个数据副本,所以即使 Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可便的扩展数以千计的节点。 3)高效性:在 MapReduce的思想下, Hadoop是并行工作的,以加快任务处理速度。 4)高容错性:能够自动将失败的任务重新分配 Hadoop组成计算+资源调度+存储 1.x中MapReduce负责计算和资源调度 2.x中MapReduce负责计算,Yarn负责资源调度,解耦 HDFS存储 Hadoop ...
