Kerberos从入门到精通以及案例实操系列(二)

5、安全集群使用说明

5.1、用户要求

  1. 具体要求以下使用说明均基于普通用户,安全集群对用户有以下要求:
  • 集群中的每个节点都需要创建该用户
  • 该用户需要属于hadoop用户组
  • 需要创建该用户对应的Kerberos主体
  1. 实操,此处以atguigu用户为例,具体操作如下
  • 创建用户(存在可跳过),须在所有节点执行
[root@hadoop102 ~]# useradd atguigu
[root@hadoop102 ~]# echo atguigu | passwd --stdin atguigu[root@hadoop103 ~]# useradd atguigu
[root@hadoop103 ~]# echo atguigu | passwd --stdin atguigu[root@hadoop104 ~]# useradd atguigu
[root@hadoop104 ~]# echo atguigu | passwd --stdin atguigu
  • 加入hadoop组,须在所有节点执行
[root@hadoop102 ~]# usermod -a -G hadoop atguigu
[root@hadoop103 ~]# usermod -a -G hadoop atguigu
[root@hadoop104 ~]# usermod -a -G hadoop atguigu
  • 创建主体
[root@hadoop102 ~]# kadmin -p admin/admin -wadmin -q"addprinc -pw atguigu atguigu"

5.2、访问HDFS集群文件

5.2.1、Shell命令

  1. 认证
[atguigu@hadoop102 ~]$ kinit atguigu
  1. 查看当前认证用户
[atguigu@hadoop102 ~]$ kinit atguigu

在这里插入图片描述

  1. 执行命令
[atguigu@hadoop102 ~]$ hadoop fs -ls /

在这里插入图片描述

  1. 注销认证
[atguigu@hadoop102 ~]$ kdestroy
  1. 再次执行查看命令
[atguigu@hadoop102 ~]$ hadoop fs -ls /

在这里插入图片描述

5.2.2、web页面

  1. 安装Kerberos客户端,下载地址:http://web.mit.edu/kerberos/dist/kfw/4.1/kfw-4.1-amd64.msi
  • 下载之后按照提示安装
  • 编辑C:\ProgramData\MIT\Kerberos5\krb5.ini文件,内容如下
[libdefaults]dns_lookup_realm = falseticket_lifetime = 24hforwardable = truerdns = falsedefault_realm = EXAMPLE.COM[realms]EXAMPLE.COM = {kdc = hadoop102admin_server = hadoop102}[domain_realm]
  1. 配置火狐浏览器
  • 打开浏览器,在地址栏输入“about:config”,点击回车
    在这里插入图片描述
  • 搜索“network.negotiate-auth.trusted-uris”,修改值为要访问的主机名(hadoop102)
    在这里插入图片描述
  • 搜索“network.auth.use-sspi”,双击将值变为false
    在这里插入图片描述

5.2.3、认证

1. 启动Kerberos客户端,点击Get Ticket
在这里插入图片描述

  1. 输入主体名和密码,点击OK

在这里插入图片描述

  1. 认证成功
    在这里插入图片描述

  2. 访问HDFS

在这里插入图片描述

  1. 注销认证

在这里插入图片描述

  1. 重启浏览器,再次访问HDFS

在这里插入图片描述

5.3、提交MapReduce任务

  1. 认证
[atguigu@hadoop102 ~]$ kinit atguigu
  1. 提交任务
[atguigu@hadoop102 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 1 1

6、Hive用户认证配置

6.1、前置要求

6.1.1、Hadoop集群启动Kerberos认证

按照上述步骤为Hadoop集群开启Kerberos安全认证。

6.1.2、创建Hive系统用户和Kerberos主体

  1. 创建系统用户
[root@hadoop102 ~]# useradd hive -g hadoop
[root@hadoop102 ~]# echo hive | passwd --stdin hive[root@hadoop103 ~]# useradd hive -g hadoop
[root@hadoop103 ~]# echo hive | passwd --stdin hive[root@hadoop104 ~]# useradd hive -g hadoop
[root@hadoop104 ~]# echo hive | passwd --stdin hive
  1. 创建Kerberos主体并生成keytab文件,创建hive用户的Kerberos主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey hive/hadoop102"

在Hive所部署的节点生成keytab文件

[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/hive.service.keytab hive/hadoop102"
  1. 修改keytab文件所有者和访问权限
[root@hadoop102 ~]# chown -R root:hadoop /etc/security/keytab/
[root@hadoop102 ~]# chmod 660 /etc/security/keytab/hive.service.keytab

6.2、配置认证

  1. 修改$HIVE_HOME/conf/hive-site.xml文件,增加如下属性
[root@hadoop102 ~]# vim $HIVE_HOME/conf/hive-site.xml<!-- HiveServer2启用Kerberos认证 -->
<property><name>hive.server2.authentication</name><value>kerberos</value>
</property><!-- HiveServer2服务的Kerberos主体 -->
<property><name>hive.server2.authentication.kerberos.principal</name><value>hive/hadoop102@EXAMPLE.COM</value>
</property><!-- HiveServer2服务的Kerberos密钥文件 -->
<property><name>hive.server2.authentication.kerberos.keytab</name><value>/etc/security/keytab/hive.service.keytab</value>
</property><!-- Metastore启动认证 -->
<property><name>hive.metastore.sasl.enabled</name><value>true</value>
</property>
<!-- Metastore Kerberos密钥文件 -->
<property><name>hive.metastore.kerberos.keytab.file</name><value>/etc/security/keytab/hive.service.keytab</value>
</property>
<!-- Metastore Kerberos主体 -->
<property><name>hive.metastore.kerberos.principal</name><value>hive/hadoop102@EXAMPLE.COM</value>
</property>
  1. 修改$HADOOP_HOME/etc/hadoop/core-site.xml文件,具体修改如下
[root@hadoop102 ~]# vim $HADOOP_HOME/etc/hadoop/core-site.xml
  • 删除以下参数
<property><name>hadoop.http.staticuser.user</name><value>atguigu</value>
</property><property><name>hadoop.proxyuser.atguigu.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.atguigu.groups</name><value>*</value>
</property><property><name>hadoop.proxyuser.atguigu.users</name><value>*</value>
</property>
  • 增加以下参数
<property><name>hadoop.proxyuser.hive.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.hive.groups</name><value>*</value>
</property><property><name>hadoop.proxyuser.hive.users</name><value>*</value>
</property>
  1. 分发配置core-site.xml文件
[root@hadoop102 ~]# xsync $HADOOP_HOME/etc/hadoop/core-site.xml
  1. 重启Hadoop集群
[root@hadoop102 ~]# stop-dfs.sh
[root@hadoop103 ~]# stop-yarn.sh[root@hadoop102 ~]# start-dfs.sh
[root@hadoop103 ~]# start-yarn.sh

6.3、启动hiveserver2

注:需使用hive用户启动

[root@hadoop102 ~]# sudo -i -u hive hiveserver2

7、Hive Kerberos认证使用说明

以下说明均基于普通用户

7.1、beeline客户端

  1. 认证,执行以下命令,并按照提示输入密码
[atguigu@hadoop102 ~]$ kinit atguigu
  1. 使用beeline客户端连接hiveserver2
[atguigu@hadoop102 ~]$ beeline

使用如下url进行连接

> !connect jdbc:hive2://hadoop102:10000/;principal=hive/hadoop102@EXAMPLE.COM

在这里插入图片描述

  1. 测试查询

7.2、DataGrip客户端

7.2.1、新建Driver

  1. 创建Driver

在这里插入图片描述

  1. 配置Driver

在这里插入图片描述
注:url模板:jdbc:hive2://{host}:{port}/{database}[;<;,{:identifier}={:param}>]

7.2.2、新建连接

  1. 创建连接

在这里插入图片描述

  1. 配置连接
  • 基础配置
    在这里插入图片描述
    注:url:jdbc:hive2://hadoop102:10000/;principal=hive/hadoop102@EXAMPLE.COM
  • 高级配置
    在这里插入图片描述
    配置参数:
  • -Djava.security.krb5.conf=“C:\ProgramData\MIT\Kerberos5\krb5.ini”
  • -Djava.security.auth.login.config=“C:\ProgramData\MIT\Kerberos5\atguigu.conf”
  • -Djavax.security.auth.useSubjectCredsOnly=false
  1. 编写JAAS(Java认证授权服务)配置文件,内容如下,文件名和路径须和上图中java.security.auth.login.config参数的值保持一致。
com.sun.security.jgss.initiate{com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=trueuseTicketCache=falsekeyTab="C:\\ProgramData\\MIT\\Kerberos5\\atguigu.keytab"principal="atguigu@EXAMPLE.COM";
};
  1. 为用户生成keytab文件,在krb5kdc所在节点(hadoop102)执行以下命令
[root@hadooop102]# kadmin.local -q"xst -norandkey -k /home/atguigu/atguigu.keytab atguigu"
  1. 将上一步生成的atguigu.keytab文件,置于Windows中的特定路径,该路径须与3中的keyTab属性的值保持一致。
  2. 测试连接

在这里插入图片描述

8、即席查询之Presto

Presto集群开启Kerberos认证可只配置Presto Coordinator和Presto Cli之间进行认证,集群内部通讯可不进行认证。Presto Coordinator和Presto Cli之间的认证要求两者采用更为安全的HTTPS协议进行通讯。

若Presto对接的是Hive数据源,由于其需要访问Hive的元数据和HDFS上的数据文件,故也需要对Hive Connector进行Kerberos认证。

8.1、改动实操

8.1.1、用户准备

  1. 在所有节点创建presto系统用户
[root@hadoop102 ~]# useradd presto -g hadoop
[root@hadoop102 ~]# echo presto | passwd --stdin presto[root@hadoop103 ~]# useradd presto -g hadoop
[root@hadoop103 ~]# echo presto | passwd --stdin presto[root@hadoop104 ~]# useradd presto -g hadoop
[root@hadoop104 ~]# echo presto | passwd --stdin presto
  1. 为Hive Connector创建Kerberos主体
  • 创建presto用户的Kerberos主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey presto"
  • 生成keytab文件
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/presto.keytab presto"
  • 修改keytab文件的访问权限
[root@hadoop102 ~]# chown presto:hadoop /etc/security/keytab/presto.keytab
  • 分发keytab文件
[root@hadoop102 ~]# xsync /etc/security/keytab/presto.keytab
  1. 为Presto Coordinator创建Kerberos主体
  • 创建presto用户的Kerberos主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey presto/hadoop102"
  • 生成keytab文件
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/presto.service.keytab presto/hadoop102"
  • 修改keytab文件的访问权限
[root@hadoop102 ~]# chown presto:hadoop /etc/security/keytab/presto.service.keytab

8.1.2、创建HTTPS协议所需的密钥对

  • alias(别名)需要和Presto CoordinatorKerberos主体名保持一致
  • 名字与姓氏 需要填写Coordinator所在的主机名
  1. 使用Java提供的keytool工具生成密钥对
[root@hadoop102 ~]# keytool -genkeypair -alias presto -keyalg RSA -keystore /etc/security/keytab/keystore.jks
输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?[Unknown]:  hadoop102
您的组织单位名称是什么?[Unknown]:  
您的组织名称是什么?[Unknown]:  
您所在的城市或区域名称是什么?[Unknown]:  
您所在的省//自治区名称是什么?[Unknown]:  
该单位的双字母国家/地区代码是什么?[Unknown]:  
CN=hadoop102, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?[]:  y输入 <presto> 的密钥口令(如果和密钥库口令相同, 按回车):
  1. 修改keystore文件的所有者和访问权限
[root@hadoop102 ~]# chown presto:hadoop /etc/security/keytab/keystore.jks
[root@hadoop102 ~]# chmod 660 /etc/security/keytab/keystore.jks

8.1.3、修改Presto Coordinator配置文件

/opt/module/presto/etc/config.properties文件中增加以下参数

[root@hadoop102 ~]# vim /opt/module/presto/etc/config.properties
http-server.authentication.type=KERBEROShttp.server.authentication.krb5.service-name=presto
http.server.authentication.krb5.keytab=/etc/security/keytab/presto.service.keytab
http.authentication.krb5.config=/etc/krb5.confhttp-server.https.enabled=true
http-server.https.port=7778
http-server.https.keystore.path=/etc/security/keytab/keystore.jks
http-server.https.keystore.key=123456

8.1.4、修改Hive Connector配置文件

  1. /opt/module/presto/etc/catalog/hive.properties中增加以下参数
[root@hadoop102 ~]# vim /opt/module/presto/etc/catalog/hive.propertieshive.metastore.authentication.type=KERBEROS
hive.metastore.service.principal=hive/hadoop102@EXAMPLE.COM
hive.metastore.client.principal=presto@EXAMPLE.COM
hive.metastore.client.keytab=/etc/security/keytab/presto.keytabhive.hdfs.authentication.type=KERBEROS
hive.hdfs.impersonation.enabled=true
hive.hdfs.presto.principal=presto@EXAMPLE.COM
hive.hdfs.presto.keytab=/etc/security/keytab/presto.keytab
hive.config.resources=/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
  1. 分发/opt/module/presto/etc/catalog/hive.properties文件
[root@hadoop102 ~]# xsync /opt/module/presto/etc/catalog/hive.properties

8.1.5、配置客户端Kerberos主体到用户名之间的映射规则

  1. 新建/opt/module/presto/etc/access-control.properties配置文件,内容如下
[root@hadoop102 ~]# vim /opt/module/presto/etc/access-control.propertiesaccess-control.name=file
security.config-file=etc/rules.json
  1. 新建/opt/module/presto/etc/rules.json文件,内容如下
[root@hadoop102 ~]# vim /opt/module/presto/etc/rules.json{"catalogs": [{"allow": true}],"user_patterns": ["(.*)","([a-zA-Z]+)/?.*@.*"]
}

8.1.6、配置Presto代理用户

  1. 修改Hadoop配置文件
    修改$HADOOP_HOME/etc/hadoop/core-site.xml配置文件,增加如下内容
[root@hadoop102 ~]# vim $HADOOP_HOME/etc/hadoop/core-site.xml<property><name>hadoop.proxyuser.presto.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.presto.groups</name><value>*</value>
</property><property><name>hadoop.proxyuser.presto.users</name><value>*</value>
</property>
  1. 分发修改的文件
[root@hadoop102 ~]# xsync $HADOOP_HOME/etc/hadoop/core-site.xml
  1. 重启Hadoop集群
[root@hadoop102 ~]# stop-dfs.sh
[root@hadoop103 ~]# stop-yarn.sh[root@hadoop102 ~]# start-dfs.sh
[root@hadoop103 ~]# start-yarn.sh

8.1.7、重启Presto集群

  1. 关闭集群
[root@hadoop102 ~]# /opt/module/presto/bin/launcher stop
[root@hadoop103 ~]# /opt/module/presto/bin/launcher stop
[root@hadoop104 ~]# /opt/module/presto/bin/launcher stop
  1. 修改Presto安装路径所有者为presto
[root@hadoop102 ~]# chown -R presto:hadoop /opt/module/presto
[root@hadoop103 ~]# chown -R presto:hadoop /opt/module/presto
[root@hadoop104 ~]# chown -R presto:hadoop /opt/module/presto
  1. 使用hive用户启动MetaStore服务
[root@hadoop102 ~]# sudo -i -u hive hive --service metastore
  1. 使用presto用户启动Presto集群
[root@hadoop102 ~]# sudo -i -u presto /opt/module/presto/bin/launcher start
[root@hadoop103 ~]# sudo -i -u presto /opt/module/presto/bin/launcher start
[root@hadoop104 ~]# sudo -i -u presto /opt/module/presto/bin/launcher start

8.1.8、客户端认证访问Presto集群

[root@hadoop102 presto]# ./prestocli \
--server https://hadoop102:7778 \
--catalog hive \
--schema default \
--enable-authentication \
--krb5-remote-service-name presto \
--krb5-config-path /etc/krb5.conf \
--krb5-principal atguigu@EXAMPLE.COM \
--krb5-keytab-path /home/atguigu/atguigu.keytab \
--keystore-path /etc/security/keytab/keystore.jks \
--keystore-password 123456 \
--user atguigu

9、即席查询之Kylin

从Kylin的架构,可以看出Kylin充当只是一个Hadoop客户端,读取Hive数据,利用MR或Spark进行计算,将Cube存储至HBase中。所以在安全的Hadoop环境下,Kylin不需要做额外的配置,只需要具备一个Kerberos主体,进行常规的认证即可。

但是Kylin所依赖的HBase需要进行额外的配置,才能在安全的Hadoop环境下正常工作。

9.1、改动实操

9.1.1、HBase开启Kerberos认证

9.1.1.1、用户准备

  1. 在各节点创建hbase系统用户
[root@hadoop102 ~]# useradd -g hadoop hbase
[root@hadoop102 ~]# echo hbase | passwd --stdin hbase[root@hadoop103 ~]# useradd -g hadoop hbase
[root@hadoop103 ~]# echo hbase | passwd --stdin hbase[root@hadoop104 ~]# useradd -g hadoop hbase
[root@hadoop104 ~]# echo hbase | passwd --stdin hbase
  1. 创建hbase Kerberos主体
  • 在hadoop102节点创建主体,生成密钥文件,并修改所有者
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey hbase/hadoop102"
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/hbase.service.keytab hbase/hadoop102"
[root@hadoop102 ~]# chown hbase:hadoop /etc/security/keytab/hbase.service.keytab
  • 在hadoop103节点创建主体,生成密钥文件,并修改所有者
[root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey hbase/hadoop103"
[root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/hbase.service.keytab hbase/hadoop103"
[root@hadoop103 ~]# chown hbase:hadoop /etc/security/keytab/hbase.service.keytab
  • 在hadoop104节点创建主体,生成密钥文件,并修改所有者
[root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey hbase/hadoop104"
[root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/hbase.service.keytab hbase/hadoop104"
[root@hadoop104 ~]# chown hbase:hadoop /etc/security/keytab/hbase.service.keytab

9.1.1.2、修改HBase配置文件,修改$HBASE_HOME/conf/hbase-site.xml配置文件,增加以下参数

[root@hadoop102 ~]# vim $HBASE_HOME/conf/hbase-site.xml<property><name>hbase.security.authentication</name><value>kerberos</value>
</property><property> <name>hbase.master.kerberos.principal</name> <value>hbase/_HOST@EXAMPLE.COM</value> 
</property> <property> 
<name>hbase.master.keytab.file</name> 
<value>/etc/security/keytab/hbase.service.keytab</value> 
</property><property><name>hbase.regionserver.kerberos.principal</name> <value>hbase/_HOST@EXAMPLE.COM</value> 
</property> <property> <name>hbase.regionserver.keytab.file</name> <value>/etc/security/keytab/hbase.service.keytab</value> 
</property><property> <name>hbase.coprocessor.region.classes</name><value>org.apache.hadoop.hbase.security.token.TokenProvider</value>
</property>

9.1.1.3、分发配置文件

[root@hadoop102 ~]# xsync $HBASE_HOME/conf/hbase-site.xml

9.1.1.4、修改hbase.rootdir路径所有者

  • 使用hdfs/hadoop用户进行认证
[root@hadoop102 ~]# kinit hdfs/hadoop
  • 修改所有者
[root@hadoop102 ~]# hadoop fs -chown -R hbase:hadoop /hbase

9.1.1.5、启动HBase

  1. 修改各节点HBase安装目录所有者
[root@hadoop102 ~]# chown -R hbase:hadoop /opt/module/hbase
[root@hadoop103 ~]# chown -R hbase:hadoop /opt/module/hbase
[root@hadoop104 ~]# chown -R hbase:hadoop /opt/module/hbase
  1. 配置hbase用户从主节点(hadoop102)到所有节点的ssh免密
  2. 使用hbase用户启动HBase
[root@hadoop102 ~]# sudo -i -u hbase start-hbase.sh

9.1.1.6、停止HBase

启用Kerberos认证之后,关闭HBase时,需先进行Kerberos用户认证,认证的主体为hbase。

  1. 认证为hbase主体
[root@hadoop102 ~]# sudo -i -u hbase kinit -kt /etc/security/keytab/hbase.service.keytab hbase/hadoop102
  1. 停止hbase
[root@hadoop102 ~]# sudo -i -u hbase stop-hbase.sh

9.1.2、Kylin进行Kerberos认证

9.1.1.1、用户准备

  1. 创建kylin系统用户
[root@hadoop102 ~]# useradd -g hadoop kylin
[root@hadoop102 ~]# echo kylin | passwd --stdin kylin
  1. 修改kylin.env.hdfs-working-dir路径所有者为kylin
  • 使用hdfs/hadoop用户进行认证
[root@hadoop102 ~]# kinit hdfs/hadoop
  • 修改所有者
[root@hadoop102 ~]# hadoop fs -chown -R hive:hadoop /kylin
  1. 修改/opt/module/kylin所有者为kylin
[root@hadoop102 ~]# chown -R kylin:hadoop /opt/module/kylin
  1. 启动kylin
  • 在kylin用户下认证为hive主体
[root@hadoop102 ~]# sudo -i -u kylin kinit -kt /etc/security/keytab/hive.keytab hive
  • 以kylin用户的身份启动kylin
[root@hadoop102 ~]# sudo -i -u kylin /opt/module/kylin/bin/kylin.sh start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352461.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

3.了解Spring Boot2自动配置原理

了解Spring Boot2自动配置原理 1、SpringBoot特点 1.1、依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEAS…

Docker搭建Elasticsearch方法及启动后服务自动关闭的问题

太长不看&#xff0c;一句话总结 内存太小&#xff0c;启动命令中添加参数修改虚拟机大小即可 docker run -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.6.0配…

NTP自动退出问题排查

为什么80%的码农都做不了架构师?>>> 问题现象:ntp进程运行一段时间后自动退出 排查过程: 查看/var/log/message ntp异常信息如下 Feb 20 22:54:41 xnu_1 ntpd[2187]: 0.0.0.0 0617 07 panic_stop -28777 s; set clock manually within 1000 s. Feb 20 22:54:57 …

Docker部署Elasticsearch及安装后自动关闭的问题

Docker搭建Elasticsearch方法 前往dockerhub官网&#xff1a;dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像&#xff0c;如docker pull elasticsearch:7.9.2 不输入版本默认拉取最新版 启动容器 映射端口为9200和9300 docker pull elasticsearch:…

自动化基础笔记--元素操作

元素操作&#xff08;附带鼠标悬停&#xff09; 一些课程回顾&#xff0c;问题原因总结 函数只有在return的时候&#xff0c;才会返回一个数据。返回数据了才可以赋值的 报错&#xff1a; 等待时间不够返回的元素不是你想要的确实是你表达式写错了有句柄未切换或者有iframe未…

服务器设置了自动校时但是,同步时钟配置电脑自动校时

同步时钟配置电脑自动校时 一、同步时钟操作和指示灯说明。 同步时钟可接收全球定位系统GPS、北斗卫星信号。当GPS/北斗天线架设到屋顶时&#xff0c;天线的高度必须低于房屋顶避雷天线的高度&#xff0c;防止被雷击。 先关闭电源后再连接或者去掉天线。 电源指示灯&#xff1a…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包&#xff0c;Algorithm2e&#xff0c;这个工具包的使用手册下载地址为&#xff08;http://mlg.ulb.ac.be/files/algorithm2e.pdf&#xff09;CSDN的链接为&#xff08;&#xff09; 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

【复杂网络建模】——基于微博数据的影响力最大化算法(PageRank)

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

【Markdown小技巧】 整理小图标和表情符号

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f436;座右铭&#xff1a;总有一天你所坚持的会反过来拥抱你。 &#x1f308;写在前面&#xff1a; 让博客变得…

工信部—高级软件开发工程师认证

工业和信息化部教育与考试中心是工业和信息化部直属事业单位&#xff0c;承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee…

EasyCVR视频汇聚智能边缘网关在多平台级联及上下级对接中的应用说明

一、行业背景 近年来&#xff0c;在政务数据共享平台的建设上&#xff0c;对国家、省数据、市数据及区县对接上要求打破“信息孤岛”&#xff0c;拔掉“数据烟囱”&#xff0c;全面打通数据“脉络”的主通道。省市平台“级联对接”工作&#xff0c;由国家数据共享平台、省级数据…

水球图的使用

水球图的使用 注意&#xff1a; echarts-liquidfill3 版本匹配 echarts5 版本&#xff0c;echarts-liquidfill2 版本匹配 echarts4 版本 npm install echarts-liquidfill2.0.2 --savevue代码演示&#xff1a; <template> <div class"com-container">…

python制作水球图

水球图是一种适合于展现单个百分比数据的图表类型&#xff0c;pyecharts模块能够非常方便画出水球图&#xff0c;进而实现酷炫的数据展示效果。 下面给大家介绍一下常见水球图的实现方法&#xff1a; 一、基本水球图 from pyecharts import options as opts from pyecharts.cha…

vue3实现水球图

水球图实现的方式有很多种&#xff0c;譬如&#xff1a; a.通过canvas 的sin 绘制水波实现 b.通过canvas的贝塞尔曲线实现水波 c.通过echarts的echarts-liquidfill水球图插件实现 canvas手写水球图确实也不难&#xff0c;只不过效果没有使用echarts-liquidfill插件的好&…

动态水球效果

&#xff08;1&#xff09;首先画出两条虚线之间的弧&#xff0c;以左上的那个点为原点 <div class"wave"></div> .wave { height: 100px; background-color: rgb(125, 242, 142); margin-top…

echart-水球图

Echarts学习之——水球图(echarts-liquidfill) ​ 水球图(Liquid Fill Chart)是填充仪表盘的一种,适合于展现单个百分比数据的图表类型。一般用以于显示利润,回款等财务指标。 安装 npm i echarts npm i echarts-liquidfill注意&#xff1a;echarts-liquidfill3版本匹配echar…

echarts 水球示例

使用echarts水球要先安装水球的依赖。 npm i echarts-liquidfill 代码&#xff1a; // import Common from "./common";import * as echarts from "echarts"; import "echarts-liquidfill/src/liquidFill.js";// ecahrts的水球 export defaul…

echarts-liquidfill 水球图使用

下载及文档&#xff1a;https://github.com/ecomfe/echarts-liquidfill#api 下载好之后把 echarts-liquidfill.js 导入项目即可 水球图支持非常高度定制化的需求&#xff0c;包括颜色&#xff08;color&#xff09;、大小&#xff08;radius&#xff09;、波的振幅&#xff…

android 动态水球,Canvas 制作动态进度加载水球详解及实例代码

Canvas 动态进度加载水球 前言 之前看到一些球型的动态加载的效果&#xff0c;一直想自己动手做一个&#xff0c;正好这段时间重温了一个Canvas&#xff0c;所以就尝试了一下。 实现思路 关于水波的实现&#xff0c;使用了sin()函数&#xff0c;通过每一帧不断的移动sin()函数曲…