hadoop高可用搭建

news2024/10/2 8:42:21

修改计算机名称

//修改计算机名称
[root@localhost ~]# hostnamectl set-hostname ant150

//快速生效
[root@localhost ~]# bash

主机名称映射

[root@ant150 ~]# vim /etc/hosts

192.168.153.150 ant150
192.168.153.151 ant151
192.168.153.152 ant152
192.168.153.153 ant153

 免密登录

[root@ant150 ~]# ssh-keygen -t rsa -P ''
[root@ant150 ~]# cd .ssh/
[root@ant151 .ssh]# cat id_rsa.pub >> ./authorized_keys


//将本机的公钥拷贝到要免密登陆的目标机器
[root@ant150 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant150
[root@ant150 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant151
[root@ant150 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant152
[root@ant150 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant153

 使用脚本安装jdk和zookeeper

#! /bin/bash
echo 'auto install begining....'

#global var
jdk=true
zk=true

if [ "$jdk" = true ];then
    echo 'jdk install set true'
    echo 'setup jdk-8u321-linux-x64.tar.gz'
    tar -zxf /opt/install/jdk-8u321-linux-x64.tar.gz -C /opt/soft/
    mv /opt/soft/jdk1.8.0_321 /opt/soft/jdk180
   sed -i '73a\export PATH=$PATH:$JAVA_HOME/bin' /etc/profile
   sed -i '73a\export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile 
   sed -i '73a\export JAVA_HOME=/opt/soft/jdk180' /etc/profile
   sed -i '73a\#jdk' /etc/profile
   echo 'setup jdk 8 success!!!'
fi

hostname=`hostname`

if [ "$zk" = true ];then
    echo 'zookeeper install set true'
    echo 'setup zookeeper-3.4.5-cdh5.14.2.tar.gz'
    tar -zxf /opt/install/zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/
    mv /opt/soft/zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk345
    cp /opt/soft/zk345/conf/zoo_sample.cfg /opt/soft/zk345/conf/zoo.cfg
    mkdir -p /opt/soft/zk345/datas
    sed -i '12c dataDir=/opt/soft/zk345/datas' /opt/soft/zk345/conf/zoo.cfg
    echo "server.0=$hostname:2287:3387" >> /opt/soft/zk345/conf/zoo.cfg
    echo "0" > /opt/soft/zk345/datas/myid
    sed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profile
    sed -i '73a\export ZOOKEEPER_HOME=/opt/soft/zk345' /etc/profile
    sed -i '73a\#ZK' /etc/profile
    echo 'setup zookeeper success!!!'
fi

zoo.cfg添加配置

server.0=ant150:2287:3387
server.1=ant151:2287:3387
server.2=ant152:2287:3387

 删除datas目录下所有文件

[root@ant150 datas]# rm -rf /opt/soft/zk345/datas/*

把ant150 上的jdk、zk、profile复制到其他服务器后

[root@ant150 zk345]# scp -r ../zk345/ root@ant151:/opt/soft/
[root@ant150 zk345]# scp -r ../zk345/ root@ant152:/opt/soft/
[root@ant150 zk345]# scp -r ../zk345/ root@ant153:/opt/soft/


[root@ant150 opt]# scp -r ./soft/jdk180/ root@ant151:/opt/soft/
[root@ant150 opt]# scp -r ./soft/jdk180/ root@ant152:/opt/soft/
[root@ant150 opt]# scp -r ./soft/jdk180/ root@ant153:/opt/soft/



[root@ant150 datas]# scp /etc/profile root@ant151:/etc/
[root@ant150 datas]# scp /etc/profile root@ant152:/etc/
[root@ant150 datas]# scp /etc/profile root@ant153:/etc/



[root@ant151 datas]# source /etc/profile
[root@ant152 datas]# source /etc/profile

在服务器150、151 、152  /opt/soft/zk345/datas目录下

[root@ant150 datas]# echo "0" > myid

[root@ant151 datas]# echo "1" > myid

[root@ant152 datas]# echo "2" > myid

启动zkServer.sh start

[root@ant150 datas]# zkServer.sh start
[root@ant151 datas]# zkServer.sh start
[root@ant152 datas]# zkServer.sh start

//查看状态
[root@ant150 datas]# zkServer.sh status
[root@ant151 datas]# zkServer.sh status
[root@ant152 datas]# zkServer.sh status

 出现任意一台mode为leader 另外两台为follower 安装成功

 

 

 时间同步

//安装ntpdate
[root@ant150 datas]# yum install ntpdate -y

//创建定时任务
[root@ant150 conf]# crontab -e

*/10 * * * * /usr/sbin/ntpdate time.windows.com


[root@ant150 conf]# service crond reload
[root@ant150 conf]# service crond restart

编写脚本批量操作zookeeper启动、关闭、查看状态

[root@ant150 shell]# vim zkop.sh


[root@ant150 shell]# chmod 777 ./zkop.sh
#! /bin/bash
case $1 in
"start") {
   for i in ant150 ant151 ant152
   do
      ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh start "
   done
};;
"stop"){
for i in ant150 ant151 ant152
   do
      ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh stop "
   done
};;
"status"){
for i in ant150 ant151 ant152
   do
      ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh status "
   done
};;
esac

编写脚本批量查看服务器启动状态

[root@ant150 shell]# vim showjps.sh

[root@ant150 shell]# chmod 777 ./showjps.sh
#! /bin/bash
for i in ant150 ant151 ant152 ant153
do
   echo --------$i 服务启动状态---------
   ssh $i "source /etc/profile; /opt/soft/jdk180/bin/jps"
done

安装psmisc 

[root@ant150 shell]# yum install psmisc -y
[root@ant151 shell]# yum install psmisc -y
[root@ant152 shell]# yum install psmisc -y
[root@ant153 shell]# yum install psmisc -y

解压hadoop-3.1.3.tar.gz

[root@ant150 install]# tar -zxf hadoop-3.1.3.tar.gz -C ../soft/

//修改文件名
[root@ant150 install]#  mv hadoop-3.1.3/ hadoop313

修改 /opt/soft/hadoop313/etc/hadoop 目录下配置文件

workers

ant150
ant151
ant152
ant153

hadoop-env.sh 

 export JAVA_HOME=/opt/soft/jdk180
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

core-site.xml 

<configuration>

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://gky</value>
    <description>逻辑名称,必须与hdfs-site.xml中dfs.nameservices保持一致</description>
  </property>
  
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/soft/hadoop313/tmpdata</value>
    <description>namenode上本地的hadoop临时文件夹</description>
  </property>
  
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
    <description>默认用户</description>
  </property>
  
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  
   <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
  
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    <description>读写文件的buffer大小为:128K</description>
  </property>
  
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>ant150:2181,ant151:2181,ant152:2181</value>
    <description></description>
  </property>
  
  <property>
    <name>ha.zookeeper.session-timeout.ms</name>
    <value>10000</value>
    <description>hadoop链接zookeeper的超时时长设置为10s</description>
  </property>
  
</configuration>

 hdfs-site.xml

<configuration>

<property>
    <name>dfs.replication</name>
    <value>3</value>
    <description>hadoop中每一个block文件的备份数量</description>
  </property>
  
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/soft/hadoop313/data/dfs/name</value>
    <description>namenode上存储hdfs名字空间元数据的目录</description>
  </property>
  
   <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/soft/hadoop313/data/dfs/data</value>
    <description>datanode上数据块的物理存储位置目录</description>
  </property>
  
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>ant150:9869</value>
    <description></description>
  </property>
  
  <property>
    <name>dfs.nameservices</name>
    <value>gky</value>
    <description>指定hdfs的nameservice,需要和core-site.xml中保持一致</description>
  </property>
  
  <property>
    <name>dfs.ha.namenodes.gky</name>
    <value>nn1,nn2</value>
    <description>gky为集群的逻辑名称,映射了两个namenode的逻辑名</description>
  </property>
  
  <property>
    <name>dfs.namenode.rpc-address.gky.nn1</name>
    <value>ant150:9000</value>
    <description>namenode1的RPC通信地址</description>
  </property>
  
  <property>
    <name>dfs.namenode.http-address.gky.nn1</name>
    <value>ant150:9870</value>
    <description>namenode1的HTTP通信地址</description>
  </property>
  
  <property>
    <name>dfs.namenode.rpc-address.gky.nn2</name>
    <value>ant151:9000</value>
    <description>namenode2的RPC通信地址</description>
  </property>
  
  <property>
    <name>dfs.namenode.http-address.gky.nn2</name>
    <value>ant151:9870</value>
    <description>namenode2的HTTP通信地址</description>
  </property>
  
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://ant150:8485;ant151:8485;ant152:8485/gky</value>
    <description>指定NameNode的edits元数据的共享存储位置(jouranalNode列表)</description>
  </property>
  
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/soft/hadoop313/data/journaldata</value>
    <description>指定JournalNode在本地磁盘数据的位置</description>
  </property>
  
 <!--容错-->
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    <description>开启NameNode故障自动切换</description>
  </property>
  
  <property>
    <name>dfs.client.failover.proxy.provider.gky</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    <description>失败后自动切换的实现方式</description>
  </property>
  
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    <description>防止脑裂的处理</description>
  </property>
  
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
    <description>使用sshfence隔离机制时,需要ssh免密登录</description>
  </property>

  <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
    <description>关闭HDFS操作权限验证</description>
  </property>
  
  <property>
    <name>dfs.image.transfer.bandwidthPerSec</name>
    <value>1048576</value>
    <description></description>
  </property>
  
  <property>
    <name>dfs.block.scanner.volume.bytes.per.second</name>
    <value>1048576</value>
    <description></description>
</property>
  
</configuration>

 mapred-site.xml

<configuration>

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>job执行框架: local, classic or yarn</description>
    <final>true</final>
  </property>
  
  <property>
    <name>mapreduce.application.classpath</name>
    <value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
  </property>
  
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>ant150:10020</value>
  </property>
  
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>ant150:19888</value>
  </property>
  
  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>1024</value>
    <description>map阶段的task工作内存</description>
  </property>
  
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>2048</value>
    <description>reduce阶段的task工作内存</description>
  </property>
  

</configuration>

yarn-site.xml

<configuration>

<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
    <description>开启resourcemanager高可用</description>
</property>

<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yrcabc</value>
    <description>指定yarn集群中的id</description>
</property>

<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
    <description>指定resourcemanager的名字</description>
</property>

<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>ant152</value>
    <description>设置rm1的名字</description>
</property>

<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>ant153</value>
    <description>设置rm2的名字</description>
</property>

<property>
    <name>yarn.resourcemanager.webapp.address.rm1</name>
    <value>ant152:8088</value>
  </property>
  
  <property>
    <name>yarn.resourcemanager.webapp.address.rm2</name>
    <value>ant153:8088</value>
  </property>
  
  <property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>ant150:2181,ant151:2181,ant152:2181</value>
    <description>指定zk集群地址</description>
  </property>
  
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>运行mapreduce程序必须配置的附属服务</description>
  </property>

  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/opt/soft/hadoop313/tmpdata/yarn/local</value>
    <description>nodemanager本地存储目录</description>
  </property>
  
  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/opt/soft/hadoop313/tmpdata/yarn/log</value>
    <description>nodemanager本地日志目录</description>
  </property>
  
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
    <description>resource进程的工作内存</description>
  </property>

  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>2</value>
    <description>resource工作中所能使用机器的核数</description>
  </property>

  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>256</value>
    <description></description>
  </property>

<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>合并yarn日志</description>
</property>

<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>86400</value>
    <description>yarn日志保留多少秒</description>
</property>

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    <description></description>
</property>

<property>
    <name>yarn.application.classpath</name>
   <value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
    <description></description>
</property>

<property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    <description></description>
</property>

</configuration>

在ant150添加环境变量

[root@ant150 ~]# vim /etc/profile

//添加内容如下
# HADOOP_HOME
export HADOOP_HOME=/opt/soft/hadoop313
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib

在windows映射IP地址

C:\Windows\System32\drivers\etc

 

把修改后的hadoop313、环境变量拷贝到另外三台服务器

[root@ant150 soft]# scp -r hadoop313/ root@ant151:/opt/soft/

[root@ant150 soft]# scp -r hadoop313/ root@ant152:/opt/soft/

[root@ant150 soft]# scp -r hadoop313/ root@ant153:/opt/soft/



[root@ant150 etc]# scp /etc/profile root@ant151:/etc//

[root@ant150 etc]# scp /etc/profile root@ant152:/etc/

[root@ant150 etc]# scp /etc/profile root@ant153:/etc/

 集群首次启动

1、使用脚本启动zookeeper、查看服务

[root@ant150 ~]# /opt/shell/zkop.sh start

[root@ant150 ~]# /opt/shell/showjps.sh 

2、启动ant150,ant151,ant152的journalnode服务

[root@ant150 ~]# hdfs --daemon start journalnode

[root@ant151 ~]# hdfs --daemon start journalnode

[root@ant152 ~]# hdfs --daemon start journalnode

3、在ant150格式化hfds namenode

[root@ant150 ~]# hdfs namenode -format

4、在ant150启动namenode服务

[root@ant150 ~]# hdfs --daemon start namenode

5、在ant151机器上同步namenode信息

[root@ant151 soft]# hdfs namenode -bootstrapStandby

6、在ant151启动namenode服务

[root@ant151 soft]# hdfs --daemon start namenode


//查看namenode节点状态
[root@ant150 soft]# hdfs haadmin -getServiceState nn1
[root@ant150 soft]# hdfs haadmin -getServiceState nn2

7、关闭所有dfs有关的服务

[root@ant150 soft]# stop-dfs.sh

8、格式化zk

[root@ant150 soft]# hdfs zkfc -formatZK

9、启动dfs

[root@ant150 soft]# start-dfs.sh

10、启动yarn

[root@ant150 soft]# start-yarn.sh 


//查看resourcemanager节点状态
[root@ant150 soft]# yarn rmadmin -getServiceState rm1
[root@ant150 soft]# yarn rmadmin -getServiceState rm2

 使用脚本查看服务,出现以下服务配置完成

 测试

[root@ant150 soft]# vim aa.txt

//添加如下内容
aa bb bb cc

//上传文件到服务器
[root@ant150 soft]# hdfs dfs -put ./aa.txt /


[root@ant150 mapreduce]# cd /opt/soft/hadoop313/share/hadoop/mapreduce

//使用jar包
[root@ant150 mapreduce]# hadoop jar ./hadoop-mapreduce-examples-3.1.3.jar wordcount /aa.txt /out1

//查看输出
[root@ant150 mapreduce]# hdfs dfs -cat /out1/part-r-00000

 

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

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

相关文章

数据分析-深度学习 Tensorflow Day6

我们需要解决的问题&#xff1a;1&#xff1a; 什么是bp 神经网络&#xff1f;2&#xff1a;理解bp神经网络需要哪些数学知识&#xff1f;3&#xff1a;梯度下降的原理4: 激活函数5&#xff1a;bp的推导。1.什么是bp网络&#xff1f;引用百度知道回复&#xff1a;“我们最常用的…

【mmrotate】旋转目标检测之训练DOTA数据集

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 mmrotate训练DOTA数据集记录 1. 正文 1.1 数据准备 数据介绍部分&#xff0c;参考DOTA数据介绍&#xff0c;官方提供了裁剪工具development kit。这里…

LINUX内核链表

LINUX内核链表 一、传统链表的缺陷 传统的双向循环链表概念简单&#xff0c;操作方便&#xff0c;但存在有致命的缺陷&#xff0c;用一句话来概括就是&#xff1a; 每一条链表都是特殊的&#xff0c;不具有通用性。换句话说&#xff0c;对于每一种不同的数据&#xff0c;所构…

java对象克隆和面向对象的设计原则

java进阶注解内置注解元注解自定义注解对象克隆浅克隆深克隆java设计模式建模语言类之间的关系依赖关系关联关系单向关联双向关联自关联聚合关系组合关系继承关系实现关系面向对象设计原则单一职责开闭原则里氏替换原则依赖倒置接口隔离迪米特原则组合/聚合复用原则注解 java注…

关于ucharts在小程序中的使用

项目添加组件 画图之前&#xff0c;首先需要引入ucharts组件&#xff0c;引入链接https://ext.dcloud.net.cn/plugin?id271。 点击下图中红色方框内容&#xff1a; 导入完成后&#xff0c;与uni其他组件一样&#xff0c;无需引入&#xff0c;直接使用即可。 使用组件 uchar…

jhipster自动生成java代码的方法

一、前言 java springboot后台项目用到了jpa查询数据库&#xff0c;还用到了jhipster&#xff0c;这个东西可以自动生成基础的Controller、Service、Dao、JavaBean等相关代码&#xff0c;减少重复开发。 在此总结下使用方法。 二、jhipster自动生成java代码的方法 1.需要先…

KDHX-8700无线高压核相相序表

一、产品简介 KDHX-8700无线高压核相相序表&#xff08;以下简称“仪器”&#xff09;用于测定三相线相序、检测环网或双电源电力网闭环点断路器两侧电源是否同相。在闭环两电源之前一定要进行核相操作&#xff0c;否则可能发生短路。仪器适用于380V&#xff5e;35kV交流输电线…

JavaScript void

文章目录JavaScript voidjavascript:void(0) 含义href"#"与href"javascript:void(0)"的区别JavaScript void javascript:void(0) 含义 我们经常会使用到 javascript:void(0) 这样的代码&#xff0c;那么在 JavaScript 中 javascript:void(0) 代表的是什么…

RTSP协议交互时TCP/UDP的区别 以及视频和音频的区别 以及H264/H265的区别

经过这几天的调试 一个功能简单的 RTSP服务端已经实现了 支持TCP/UDP 支持H264 H265 支持同时传输 AAC音频 记录下 交互时需要注意的地方 1.OPTIONS 都一样 如下&#xff1a;左箭头内是客户端发给服务端 箭头内是服务端回给客户端 2.DESCRIBE 目前的流是包含视频和AAC音频…

计讯物联环保数采仪TS910在扬尘预警监测解决方案的应用

方案背景 随着我国经济高速发展和城市化进程的加速&#xff0c;城市建设工程规模不断扩大&#xff0c;工程施工给居住区、学校、医院等周边环境带来了巨大的影响&#xff0c;特别是扬尘污染带来的细颗粒物&#xff0c;严重危害到人体健康和大气环境质量。 因此&#xff0c;计…

MVC与MVVM

MVC与MVVM举例说明MVCMVVM两者比较MVC <!DOCTYPE html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><title>mvc案例</title><link rel"styleshe…

ChatGPT初体验(一)

ChatGPT初体验&#xff08;一&#xff09; ChatGPT登陆方式 “OpenAI研发的聊天机器人程序&#xff0c;于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&…

05- 泰坦尼克号海难生死预测 (机器学习集成算法) (项目五)

Kaggle: 一个数据建模和数据分析竞赛平台sns画柱状图: sns.barplot(datatrain,xPclass,ySurvived)查看数据分布(survived 和 fare): sns.FacetGrid(train,hueSurvived,aspect3) ageFacetsns.FacetGrid(train,hueSurvived,aspect3) ageFacet.map(sns.kdeplot,Fare,shadeTrue) …

血氧仪「上潜」,智能穿戴「下沉」

文|智能相对论作者|沈浪缺货、涨价、一“仪”难求......过去短短的几周&#xff0c;血氧仪市场持续走热&#xff0c;受到前所未有的关注&#xff0c;像鱼跃医疗这样的业内巨头更是赚得盆满钵满&#xff0c;但同时也深陷“发国难财”的舆论泥潭&#xff0c;说来也是唏嘘。尽管目…

linux rancher 清理docker容器磁盘空间

目录说明 /var/lib/docker/containers&#xff1a; 是 Docker 在 Linux 系统上默认存储容器信息的目录。在该目录下&#xff0c;每个运行的 Docker 容器都有一个单独的目录&#xff0c;以容器 ID 命名&#xff0c;其中包含有关该容器的元数据和日志文件。 具体来说&#xff0…

ABAP SALV实现弹出ALV选择

问题场景 需要弹出一个ALV并获取选择的数据 实现思路 跳转屏幕弹出ALV&#xff08;通过SALV&#xff09;弹出ALV&#xff08;通过REUSE_ALV_POPUP_TO_SELECT&#xff09; 实现效果 因为这里需要的是单选&#xff0c;所以没有多选列 实现代码 MODULE sel_zfretype INPUT.…

【代码随想录训练营】【Day15】第六章|二叉树|层序遍历|226.翻转二叉树|101.对称二叉树

层序遍历 题目详细&#xff1a;LeetCode.102 层序遍历与上一节讲的三种遍历方式有所不同&#xff0c;层序遍历是指按从上到下&#xff0c;从左到右的顺序&#xff0c;逐层地遍历二叉树的节点。 从其节点的遍历顺序上观察&#xff0c;我们可以发现其跟广度优先遍历&#xff0…

分布式事务理论基础

事务是数据库执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。 事务有四个特性&#xff0c;习惯上被称为 ACID 特性&#xff1a; Atomicity(原子性) Consistency(一致性) Isolation(隔离性) Durability(持久性) 本地事物 在系统发展初期&#xff0c…

17.微服务SpringCloud

一、基本概念 Spring Cloud 被称为构建分布式微服务系统的“全家桶”&#xff0c;它并不是某一门技术&#xff0c;而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来&#xff0c;并通过 Spring Boot 的思想进行再封装&#xff0c;屏蔽…

Composer: Unknown package has no name defined

安装chatGPT插件到项目&#xff0c;发现如下提示&#xff0c;更新也是提示&#xff1a; Unknown package has no name defined 目录 问题表现 解决未定义包装库 查看当前项目配置 重装本地类库 1.删除相关文件夹及文件 2.清除缓存 3.执行composer install 问题表现 执行…