春风十里不如你 —— Taozi - 部署 https://xiongan.host/index.php/tag/%E9%83%A8%E7%BD%B2/ 【MySQL】主从复制介绍及配置 https://xiongan.host/index.php/archives/216/ 2023-06-14T20:42:42+08:00 MySQL的主从复制什么是mysql的主从复制?MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。主从原理三个步骤:在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。主从形式(五个)包括一主一从、主主复制、一主多从、多主一从、连级复制mysql主从复制安装配置(一主一从)主机名ipmaster192.168.11.10(mysql5.7)node192.168.11.20(mysql5.7)数据库安装rpm方式(两台)下载rpm文件wget https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm安装下载好的rpm文件yum -y localinstall mysql57-community-release-el7-10.noarch.rpm安装成功后会在/etc/yum.repos.d/下看到两个新增加的repo文件使用yum安装mysqlyum -y install mysql-community-server --nogpgcheck设置mysql服务开机自启#启动mysql服务 systemctl start mysqld #设置mysql开机启动 systemctl enable mysqld --now获取mysql服务的临时密码grep "password" /var/log/mysqld.log使用临时密码登录,进入后修改密码,并修改远程访问权限(也可以不用)mysql -uroot -p #输入密码 //修改密码 set global validate_password_policy=0; 修改密码策略 set global validate_password_length=1; 修改密码长度 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 修改密码为123456 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; 允许其他机器远程连接 flush privileges;主从配置在两台数据库中分别创建数据库--注意两台必须全部执行 create database tz;在主(master)服务器进行如下配置:#修改配置文件,执行以下命令打开mysql配置文件 vi /etc/my.cnf #在mysqld模块中添加如下配置信息 log-bin=master-bin #二进制文件名称 binlog-format=ROW #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内 容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服 务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复 制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。 server-id=1 #要求各个服务器的id必须不一样 binlog-do-db=zq #同步的数据库名称配置从服务器登录主服务器的账号授权--授权操作 set global validate_password_policy=0; set global validate_password_length=1; grant replication slave on *.* to 'root'@'%' identified by '123456'; --刷新权限 flush privileges;从服务器配置(node节点)#修改配置文件,执行以下命令打开mysql配置文件 vi /etc/my.cnf #在mysqld模块中添加如下配置信息 log-bin=master-bin #二进制文件的名称 binlog-format=ROW #二进制文件的格式 server-id=2 #服务器的id重启主服务器的mysql服务#重启mysql服务 systemctl restart mysqld #登录mysql数据库 mysql -uroot -p #查看master的状态 show master status;重启从服务器(node)并进行相关配置#重启mysql服务 systemctl restart mysqld #登录mysql mysql -uroot -p #连接主服务器 change master to master_host='192.168.11.10',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154; #启动slave start slave; #查看slave的状态 show slave status\G(注意没有分号)验证主从数据库//主库中: mysql> use tz; mysql> create table user(id int,age int); mysql> insert into user values(1,1);从库中查看mysql> use tz; mysql> show tables; mysql> select * from user;注意:主库中插入数据,从库中会实现同步。从库中插入数据,主库不会实现同步。 【k8s】将Go服务上传到k8s https://xiongan.host/index.php/archives/215/ 2023-06-07T22:56:55+08:00 将Go服务发布到k8s集群首先安装go环境下载go的tar.gz包,可以前往阿里云镜像站go页面下载相应版本地址:https://mirrors.aliyun.com/golang/?spm=a2c6h.13651104.mirror-free-trial.1.75b41e57BOxyw5然后下载到虚拟机中,并且解压到/usr/local/src中//解压缩go包 [root@master ~]# tar -zxf go1.18.10.linux-amd64.tar.gz -C /usr/local/src //添加环境变量 [root@master src]# vim /etc/profile //添加如下: export GOROOT=/usr/local/src export PATH=$PATH:$GOROOT/bin //保存退出后source一下 source /etc/profile //查看是否成功 go version创建源码文件[root@master ~]# mkdir 0607tz [root@master ~]# cd 0607tz/ [root@master 0607tz]# vim main.go //编辑到文件中 package main import (       "net/http"       "github.com/gin-gonic/gin" ) func statusOKHandler(c *gin.Context) {       c.JSON(http.StatusOK, gin.H{"status": "success~welcome to study"}) } func versionHandler(c *gin.Context) {       c.JSON(http.StatusOK, gin.H{"version": "v1.1版本"}) } func main() {       router := gin.New()       router.Use(gin.Recovery())       router.GET("/", statusOKHandler)       router.GET("/version", versionHandler)       router.Run(":8080") }Go mod初始化项目初始化项目[root@master 0607tz]# go mod init 0607tz go: creating new go.mod: module 0607tz go: to add module requirements and sums:       go mod tidy //成功初始化 //设置代理 [root@master 0607tz]# go env -w GOPROXY=https://goproxy.cn,direct [root@master 0607tz]# go mod tidy //构建源码 [root@master 0607tz]# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go创建镜像编写dockerfile文件[root@master 0607tz]# vim Dockerfile FROM alpine ADD k8s-demo /data/app/ WORKDIR /data/app/ CMD ["/bin/sh","-c","./k8s-demo"]构建镜像[root@master 0607tz]# docker build -t taozheng/k8sdemo:v1 .打包镜像,传到k8s工作节点[root@master 0607tz]# docker save -o k8sdemo.tar.gz taozheng/k8sdemo:v1 [root@master 0607tz]# scp k8sdemo.tar.gz node:/root/ k8sdemo.tar.gz                               100%   16MB 68.0MB/s   00:00 //在node节点解压镜像创建deployment的yaml文件[root@master 0607tz]# vim k8s.yaml //k8s.yaml apiVersion: apps/v1 kind: Deployment metadata: name: k8s-demo namespace: default labels:   app: k8s-demo   cy: taozheng spec: selector:   matchLabels:     app: k8s-demo replicas: 4 template:   metadata:     labels:       app: k8s-demo   spec:     containers:     - image: taozheng/k8sdemo:v1       imagePullPolicy: IfNotPresent       name: k8s-demo       ports:       - containerPort: 8080         protocol: TCP       resources:         limits:           cpu: 100m           memory: 100Mi         requests:           cpu: 50m           memory: 50Mi       livenessProbe:         tcpSocket:           port: 8080         initialDelaySeconds: 10         timeoutSeconds: 3       readinessProbe:         httpGet:           path: /           port: 8080         initialDelaySeconds: 10         timeoutSeconds: 2创建go的服务[root@master 0607tz]# vim gosvc.yaml kind: Service apiVersion: v1 metadata: name: k8s-demo-svc namespace: default labels:   app: k8s-demo   cy: taozheng spec: ports:   - name: api     port: 8080     protocol: TCP     targetPort: 8080 selector:   app: k8s-demok8s部署查看pod和服务信息修改svc的type类型变成nodePort[root@master 0607tz]# kubectl edit svc k8s-demo-svc保存后再次查看,已经修改成功查看svc标签浏览器测试访问: 【Hive】Hadoop下的部署(未上接) https://xiongan.host/index.php/archives/194/ 2023-03-27T23:41:04+08:00 Hive的部署MySQL安装安装首先上传mysql数据库的rpm压缩包到主机/opt/software//解压缩包到当前目录中 [root@master-tz software]# unzip mysql-5.7.18.zip //进入到rpm软件目录中,首先检查mariadb,如果有就要卸载//安装数据库 [root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm [root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm [root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm //安装下面的rpm需要首先安装perl软件 [root@master-tz mysql-5.7.18]# yum install -y net-tools perl [root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm配置修改配置文件/etc/my.cnfvim /etc/my.cnf //最后添加五行 default-storage-engine=innodb innodb_file_per_table collation-server=utf8_general_ci init-connect='SET NAMES utf8' character-set-server=utf8 //最后保存退出启动[root@master-tz mysql-5.7.18]# systemctl start mysqld [root@master-tz mysql-5.7.18]# systemctl status mysqld查看MySQL初始密码[root@master-tz mysql-5.7.18]# cat /var/log/mysqld.log | grep password 2023-03-27T08:52:43.074230Z 1 [Note] A temporary password is generated for root@localhost: KbVXiHlul3:> //查看初始密码,下方需要填写 [root@master-tz mysql-5.7.18]# mysql_secure_installation //重新设定密码,并把密码设置为Password123$ //注:允许远程连接设定为n,表示允许远程连接,其它设定为y除了以下是n其他都是y登录数据库客户端[root@master-tz mysql-5.7.18]# mysql -uroot -pPassword123$新建hive用户与元数据mysql>create database hive_db; mysql>create user hive identified by 'Password123$'; mysql>grant all privileges on *.* to hive@'%' identified by 'Password123$' with grant option ; mysql>grant all privileges on *.* to 'root'@'%'identified by 'Password123$' with grant option; mysql>flush privileges;Hive安装安装首先将hive的压缩包上传到虚拟机,并解压,重命名hive,设置hive权限[root@master-tz ~]# tar -zxf apache-hive-2.0.0-bin.tar.gz -C /usr/local/src/ [root@master-tz ~]# cd /usr/local/src/ [root@master-tz src]# mv apache-hive-2.0.0-bin/ hive [root@master-tz src]# chown -R hadoop:hadoop hive/修改环境变量[root@master-tz src]# vim /etc/profile # set Hive environment export HIVE_HOME=/usr/local/src/hive # Hive安装目录 export PATH=$HIVE_HOME/bin:$PATH # 添加将Hive的bin目录 export HIVE_CONF_DIR=$HIVE_HOME/conf #Hive的环境变量 [root@master-tz src]# source /etc/profile修改配置文件hive-site.xml文件首先切换到hadoop用户[hadoop@master-tz conf]$ cd /usr/local/src/hive/conf [hadoop@master-tz conf]$ vim hive-site.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--元数据库地址--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master-tz:3306/hive_db?createDatabaseIfNotExist=true</value> </property> <!--mysql用户名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <!--mysql中hive用户密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>Password123$</value> </property> <!--mysql驱动--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/usr/local/src/hive/tmp</value> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/usr/local/src/hive/tmp/${hive.session.id}_resources</value> </property> <property> <name>hive.querylog.location</name> <value>/usr/local/src/hive/tmp</value> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>/usr/local/src/hive/tmp/operation_logs</value> </property> <property> <name>hive.server2.webui.host</name> <value>master-tz</value> </property> <property> <name>hive.server2.webui.port</name> <value>10002</value> </property> </configuration>hive-env.sh[hadoop@master-tz conf]$ cp hive-env.sh.template hive-env.sh [hadoop@master-tz conf]$ vim hive-env.sh //增加如下配置项 # Set JAVA export JAVA_HOME=/usr/local/src/java # Set HADOOP_HOME to point to a specific hadoop install directory export HADOOP_HOME=/usr/local/src/hadoop # Hive Configuration Directory can be controlled by: export HIVE_CONF_DIR=/usr/local/src/hive/conf # Folder containing extra ibraries required for hive compilation/execution can be controlled by: export HIVE_AUX_JARS_PATH=/usr/local/src/hive/lib将MySQL的驱动jar包上传至虚拟机,然后将该jar包复制到hive安装路径下的lib文件夹中[root@master-tz software]# cp mysql-connector-java-5.1.46.jar /usr/local/src/hive/lib/确保hadoop集群正常,然后初始化hive元数据库[hadoop@master-tz conf]$ schematool -initSchema -dbType mysql进入hive shell界面[hadoop@master-tz ~]$ hive hive>如果出现以下情况则需要去hive-site.xml配置文件修改为<value>jdbc:mysql://master-tz:3306/hive_db?createDatabaseIfNotExist=true&useSSL=false</value> 【Rabbitmq】集群服务部署 https://xiongan.host/index.php/archives/82/ 2022-10-17T12:23:00+08:00 主机名ip角色Node1192.168.123.23节点1Node2192.168.123.123节点2两个节点:都需要安装两个软件Yum install -y erlang rabbitmq-server安装完成后检查信息rabbitmq-plugins list运行rabbitmq-server服务提前修改主机名分别是node1 node2查看插件状态rabbitmqctl cluster_status查看端口开放情况:netstat -ntap | grep 5672停掉节点的服务:Systemctl stop rabbitmq-server查看node1的cookie的值cat /var/lib/rabbitmq/.erlang.cookie将node1的cookie值复制到node2节点上scp /var/lib/rabbitmq/.erlang.cookie192.168.123.123:/var/lib/rabbitmq/这样node1和node2的cookie值相同了开启各节点的rabbitmq服务systemctl start rabbitmq-server只在node2节点操作:关闭app应用systemctl start rabbitmq-server在node2作为磁盘节点与node1连接起来rabbitmqctl join_cluster --ram rabbit@node1-tz启动app服务并且查看状态rabbitmqctl start_apprabbitmqctl cluster_status访问http://192.168.123.23:15672账号密码guest