首页 文章 精选 留言 我的

精选列表

搜索[运行平台],共10028篇文章
优秀的个人博客,低调大师

Flink on Yarn运行机制

从图中可以看出,Yarn的客户端需要获取hadoop的配置信息,连接Yarn的ResourceManager。所以要有设置有YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_CONF_PATH,只要设置了其中一个环境变量,就会被读取。如果读取上述的变量失败了,那么将会选择hadoop_home的环境变量,都区成功将会尝试加载$HADOOP_HOME/etc/hadoop的配置文件。 1、当启动一个Flink Yarn会话时,客户端首先会检查本次请求的资源是否足够。资源足够将会上传包含HDFS配置信息和Flink的jar包到HDFS。 2、随后客户端会向Yarn发起请求,启动applicationMaster,随后NodeManager将会加载有配置信息和jar包,一旦完成,ApplicationMaster(AM)便启动。 3、当JobManager and AM 成功启动时,他们都属于同一个container,从而AM就能检索到JobManager的地址。此时会生成新的Flink配置信息以便TaskManagers能够连接到JobManager。同时,AM也提供Flink的WEB接口。用户可并行执行多个Flink会话。 4、随后,AM将会开始为分发从HDFS中下载的jar以及配置文件的container给TaskMangers.完成后Fink就完全启动并等待接收提交的job. 启动Flink cluster on YARN ./bin/yarn-session.sh -n 1 -jm 1024 -tm 4096 可以看到启动了1个TaskManager 给jm与tm分配的资源数 将Flink的配置与jar包上传至HDFS 提交于Application Master 启动完毕后,就可提交任务。

优秀的个人博客,低调大师

Influxdb的部署以及运行cadvisor

环境为CentOS7.4 1.安装influxdb1.7 mkdir -p /home/influxdb/ cd /home/influxdb wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_linux_amd64.tar.gz tar xf influxdb-1.7.8_linux_amd64.tar.gz cd /home/influxdb/influxdb-1.7.8-1/ mkdir data log meta wal cd /home/influxdb/influxdb-1.7.8-1/etc/influxdb cp influxdb.conf influxdb.conf.bak 2.目录解释 /usr/bin/ influxd //influxdb服务器 influx //influxdb命令行客户端 influx_inspect //查看工具 influx_stress //压力测试工具 influx_tsm //数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式) /var/lib/influxdb/ data //存放最终存储的数据,文件以.tsm结尾 meta //存放数据库元数据 wal //存放预写日志文件 /var/log/influxdb/ influxd.log //日志文件 /etc/influxdb/ influxdb.conf //配置文件 /var/run/influxdb/ influxd.pid //PID文件 3.修改配置文件 [root@es_data02 influxdb]# egrep -v "^#|^$|#" influxdb.conf [meta] dir = "/home/influxdb/influxdb-1.7.8-1/meta" [data] dir = "/home/influxdb/influxdb-1.7.8-1/data" wal-dir = "/home/influxdb/influxdb-1.7.8-1/wal" series-id-set-cache-size = 100 [coordinator] [retention] enabled = true check-interval = "30m" [shard-precreation] [monitor] [http] [logging] [subscriber] [[graphite]] [[collectd]] [[opentsdb]] [[udp]] [continuous_queries] [tls] 4.启动 cd /home/influxdb/influxdb-1.7.8-1/logs nohup /home/influxdb/influxdb-1.7.8-1/usr/bin/influxd -config /home/influxdb/influxdb-1.7.8-1/etc/influxdb/influxdb.conf & 注:默认情况下,InfluxDB 使用以下网络端口: TCP 端口 8083 用于 InfluxDB 的管理面板(1.3版本之后无web界面); TCP 端口 8086 用于通过 InfluxDB 的 HTTP API 进行客户端到服务器的通信; 5.登录 cd /home/influxdb/influxdb-1.7.8-1/usr/bin [root@es_data02 bin]# ./influx Connected to http://localhost:8086 version 1.7.8 InfluxDB shell version: 1.7.8 > show databases; name: databases name ---- _internal 默认用户名密码为 root [root@es_data02 bin]# ./influx -username root -password root Connected to http://localhost:8086 version 1.7.8 InfluxDB shell version: 1.7.8 > 6.InfluxDB重要概念 database: 数据库如之前创建的数据库 cadvisor。 timestamp: 时间戳,因为 InfluxDB 是时序数据库,它的数据里面都有一列名为 time 的列,存储记录生成时间。如 rx_bytes 中的 time 列,存储的就是时间戳。 fields: 包括 field key,field value 和 field set 几个概念。field key 是字段名,在 rx_bytes 表中,字段名为 value。field value 是字段值,如 17858781633,1359398 等。而 field set 是字段集合,由 field key 和 field value构成如 rx_bytes 中的字段集合如下: value = 17858781633 value tags: 包括 tag key, tag value, tag set 几个概念。tag key 是标签名,在 rx_bytes 表中 container_name,game,machine,namespace,type 都是标签。tag value 就是标签的值了。tag set 就是标签集合,由 tag key 和 tag value 构成。InfluxDB 中标签是可选的,不过标签是有索引的。如果查询中经常用的字段,建议设置为标签而不是字段。标签相当于传统数据库中有索引的列。 retention policy: 数据保留策略,cadvisor 的保留策略为 cadvisor_retention,存储 30 天,副本为 1。一个数据库可以有多个保留策略。 measurement: 类似传统数据看的表,是字段,标签以及 time 列的集合。 series: 共享同一个 retention policy,measurement 以及 tag set 的数据集合。 7.增删改查 创建数据库 cadvisor > create database cadvisor; 创建用户和设置密码 > CREATE USER cadvisor WITH PASSWORD 'cadvisor'; 授权数据库给指定用户 > GRANT ALL PRIVILEGES ON cadvisor TO cadvisor; 创建默认的数据保留策略,设置保存时间 30 天,副本为1 > CREATE RETENTION POLICY "cadvisor_retention" ON "cadvisor" DURATION 30d REPLICATION 1 DEFAULT; 显示表 > show databases; name: databases name ---- _internal > use cadvior; > show MEASUREMENTS; name: measurements name ---- cpu_usage_per_cpu cpu_usage_system cpu_usage_total cpu_usage_user fs_limit fs_usage load_average memory_usage memory_working_set rx_bytes rx_errors tx_bytes tx_errors 查询内存使用 > select * from memory_usage order by time desc limit 5; name: memory_usage time container_name machine value ---- -------------- ------- ----- 1570606022314528492 /system.slice/systemd-user-sessions.service e1510f5156f6 0 1570606022165528044 /system.slice/rhel-import-state.service e1510f5156f6 0 1570606022130190231 /system.slice e1510f5156f6 164671488 1570606022030381573 /user.slice e1510f5156f6 518492160 1570606021889689198 /system.slice/telegraf.service e1510f5156f6 1859584 8.集成cadvisor docker pull google/cadvisor:latest docker run -d --name cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=root -storage_driver_host=192.168.1.8:8086 启动 cadvisor 容器,并使用 influxdb 为存储(cadvisor 数据库名, 数据访问账号密码 root, 地址为本地 8086 端口,别用 127.0.0.1 连不上) docker pull google/cadvisor:latest docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ -storage_driver=influxdb \ -storage_driver_db=cadvisor \ -storage_driver_user=root \ -storage_driver_password=root \ -storage_driver_host=172.16.131.211:8086 或者 docker run -d --name cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume

优秀的个人博客,低调大师

Docker创建运行多个mysql容器

1.使用mysql/mysql-server:latest镜像快速启动一个Mysql实例 docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:latest ilink_user_01是容器名称,通过--name指令指定 123456为数据库root的密码,通过-e指定环境MYSQL_ROOT_PASSWORD为123456,-e (指定容器内的环境变量) -d 使用-d参数,容器会进入到后台,用户无法看到容器中的信息,也无法进行操作 3307:3306 为端口映射,指定本地主机端口3307映射到容器的3306端口 2.进入实例修改mysql配置信息 docker exec -it ilink_user_01 bash exec 可以在容器内部直接执行人员命令 参数 -it 用来保存表中输入的打开,在不影响容器内其他应用的潜艇先,用户可以很容易的与容器进行交互 3.查看MYSQL数据库中所有用户 SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 4.修改mysql的root用户允许从任何ip登录用户 update mysql.user set host='%' where user='root'; flush privileges; 5.使用navicat测试连接 出现authentication plugin 'caching_sha2_password',因为mysql镜像是使用caching_sha2_password进行加密的,而navicat没有支持caching_sha2_password加密方式, 6.解决authentication plugin 'caching_sha2_password' ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 7.重新使用navicat 连接 博客内容仅代表个人观点,如发现阐述有误,麻烦指正,谢谢!

优秀的个人博客,低调大师

MySQL运行原理与基础架构!

下面是关于上述部件的介绍: connectors 与其他编程语言中的sql 语句进行交互,如php、java等。 Management Serveices & Utilities系统管理和控制工具 Connection Pool (连接池)管理缓冲用户连接,线程处理等需要缓存的需求 SQL Interface (SQL接口)接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface Parser (解析器)SQL命令传递到解析器的时候会被解析器验证和解析。 主要功能: a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,后面SQL语句的传递和处理就是基于这个结构的 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的,语句将不会继续执行下去 Optimizer (查询优化器)SQL语句在查询之前会使用查询优化器对查询进行优化(产生多种执行计划,最终数据库会选择最优化的方案去执行,尽快返会结果) 他使用的是“选取-投影-联接”策略进行查询。 用一个例子就可以理解: select uid,name from user where gender = 1; 这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤 这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤 将这两个查询条件联接起来生成最终查询结果. Cache和Buffer (查询缓存)如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。 这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等 8.Engine (存储引擎) 存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。 Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎) SQL 语句执行过程 数据库通常不会被直接使用,而是由其他编程语言通过SQL语句调用mysql,由mysql处理并返回执行结果。那么Mysql接受到SQL语句后,又是如何处理的呢? 首先程序的请求会通过mysql的connectors与其进行交互,请求到处后,会暂时存放在连接池(connection pool)中并由处理器(Management Serveices & Utilities)管理。当该请求从等待队列进入到处理队列,管理器会将该请求丢给SQL接口(SQL Interface)。SQL接口接收到请求后,它会将请求进行hash处理并与缓存中的结果进行对比,如果完全匹配则通过缓存直接返回处理结果;否则,需要完整的走一趟流程: (1)由SQL接口丢给后面的解释器(Parser),上面已经说到,解释器会判断SQL语句正确与否,若正确则将其转化为数据结构。 (2)解释器处理完,便来到后面的优化器(Optimizer),它会产生多种执行计划,最终数据库会选择最优化的方案去执行,尽快返会结果。 (3)确定最优执行计划后,SQL语句此时便可以交由存储引擎(Engine)处理,存储引擎将会到后端的存储设备中取得相应的数据,并原路返回给程序。 这里有几点需要注意: (1)如何缓存查询数据? 存储引擎处理完数据,并将其返回给程序的同时,它还会将一份数据保留在缓存中,以便更快速的处理下一次相同的请求。具体情况是,mysql会将查询的语句、执行结果等进行hash,并保留在cache中,等待下次查询。 (2)buffer与cache的区别? 从上面的图可以看到,缓存那里实际上有buffer和cache两个,那它们之间是否有什么不同呢?简单的说就是,buffer是写缓存,cache是读缓存。 (3)如何判断缓存中是否已缓存需要的数据 这里可能有一个误区,觉得处理SQL语句的时候,为了判断是否已缓存查询结果,会将整个流程走一遍,取得执行结果后再与需要的进行对比,看看是否命中,并以此说,既然不管缓存中有没有缓存到查询内容,都要整个流程走一遍,那么缓存的优势又在哪里?? 实际上,并非如此,在第一次查询后,mysql便将查询语句以及查询结果进行hash处理并保留在缓存中,SQL查询到达之后,对其进行同样的hash处理后,将两个hash值进行对照,如果一样,则命中,从缓存中返回查询结果;否则,需要整个流程走一遍。 ​

优秀的个人博客,低调大师

Docker安装+HelloWorld+运行Tomcat

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇已经讲解了为什么需要Docker?,相信大家已经对Docker有一个简单的认识了。 这篇我来讲讲Docker入门的相关概念和常用的命令,跟大家一起入门Docker! 一、Docker相关术语 一般从零学习一门技术(语言),都是从HelloWorld开始的,但这次我偏不。我先来讲讲Docker的相关术语~ 镜像 容器 仓库 在之前分享的Docker科普文,也通俗易懂地讲解了这三个术语: 镜像、容器、仓库的概念可以类比代码、进程、github 如果让我来给完全不懂Docker解释这三个术语,我会这样做: 镜像就是镜像,我们重装系统/搞虚拟机的时候都要用镜像,没镜像哪来系统 我们安装完镜像,就可以跑起来一个系统(

优秀的个人博客,低调大师

关于ncnn的运行环境安装

ncnn是一个为手机端极致优化的高性能神经网络前向计算框架。 其开源代码网址为https://github.com/Tencent/ncnn 说一下我使用的环境配置: 1、操作系统:Ubuntu 16.04 2、cuda 8.0 3、Open CV 3.0 因为这些库在本地环境上安装起来即复杂又费时,所以我推荐使用docker。这样只需要找到适合的镜像文件进行docker的创建。使用docker不仅不会破坏本地的环境,还可以拥有管理员权限,适合在限制个人操作权限的公用服务器上安装。下面,我说一下我在安装过程中遇到的问题和具体的配置步骤。 Ubuntu的版本最好使用16.04。一开始,我装的是Ubuntu14.04,系统默认安装protobuf 2.5.0,然后发现因为protobuf 版本过低而报错。改成Ubuntu 16.04, 默认安装protobuf 2.6.1,错误消失。 镜像文件可以从网上下载,例如使用linux 指令下载一个名称为caffe - opencv - cuda8.0的镜像文件。 docker pull caffe - opencv - cuda8.0 可以使用指令 docker images 查看新的镜像文件是否部署完成。完成后,创建新的docker。创建的同时需要挂载目录。即在docker中可以读写本地服务器文件。例如,我们将本地/home/data目录下的所有内容挂载到docker的根目录/data下,指令为 docker run -it -v /home/data:/data --name docker_name caffe - opencv - cuda8.0 /bin/bash 也可以挂载多个目录,只需要重复使用-v。其中,docker_name 是docker 的名字,如果不进行命名,则会随机分配docker名。因为docker被创建后,会自动进入docker环境,一般显示root@docker_ID。如果需要给docker改名,可通过指令 docker rename old_name new_name 来修改。查看自己的docker,可以使用 docker ps -a 查找,-a 指所有的docker。也可以通过docker ID来寻找,通过指令 docker ps -a | grep docker_ID 即可,可以看到docker对应的name,确定是否修改成功。初次创建后用exit退出了docker,重新进入需要两条连续指令。 docker start docker_name docker attach docker_name 到这里,环境就基本配置好了。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册