ubuntu2204部署hbase2.3.7

开启root

修改root用户的密码

sudo passwd root

SSH放行

sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;

重启服务

sudo service sshd restart

修改主机名

分别在四台机器上修改

hostnamectl set-hostname --static "server100"
hostnamectl set-hostname --static "server101"
hostnamectl set-hostname --static "server102"
hostnamectl set-hostname --static "server103"

查看主机名

hostname

在这里插入图片描述

修改hosts

vi /etc/hosts

添加以下内容

192.168.30.100 server100
192.168.30.101 server101
192.168.30.102 server102
192.168.30.103 server103

配置免密登录

生成密匙

四台机器上都执行执行

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub root@server100
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server101
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server102
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server103

关闭防火墙

sudo ufw disable

查看防火墙状态

sudo ufw status

挂载硬盘(如果需要的话)

假设你想要将额外的空间添加到现有的 LVM 逻辑卷 /dev/ubuntu-vg/ubuntu-lv 中:

  1. 首先,使用 lvdisplay 命令查看 LVM 逻辑卷的详细信息,确保有足够的未分配空间可用:

    sudo lvdisplay
    

    注意其中的 “Free PE / Size” 部分,确保有足够的空间。

  2. 如果有足够的未分配空间,使用 lvextend 命令扩展现有的逻辑卷。假设你有 500G 的空闲空间,命令可能如下所示:

    sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
    

    这将利用所有可用的空闲空间进行扩展。

  3. 扩展逻辑卷后,你需要将文件系统扩展到新的空间。对于 ext4 文件系统,可以使用 resize2fs 命令:

    sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
    
  4. 最后,使用 df -h 命令检查文件系统的大小,确保已经成功扩展。

    df -h
    

如果你想要使用硬盘的剩余空间,你需要创建一个新的逻辑卷。以下是相应的步骤:

  1. 使用 lvcreate 命令创建一个新的逻辑卷。假设你想要创建一个名为 data-lv 的逻辑卷,可以执行:

    sudo lvcreate -l +100%FREE -n data-lv ubuntu-vg
    

    这将使用硬盘上所有可用的空闲空间创建一个新的逻辑卷。

  2. 接下来,你需要创建一个文件系统。对于 ext4 文件系统,可以使用 mkfs 命令:

    sudo mkfs -t ext4 /dev/ubuntu-vg/data-lv
    
  3. 确保目标目录 /data 存在,如果不存在,创建它:

    sudo mkdir /data
    
  4. 然后,将新创建的逻辑卷挂载到 /data

     sudo mount /dev/ubuntu-vg/data-lv /data
    
  5. 最后,如果你希望系统启动时自动挂载 /data,你可以编辑 /etc/fstab 文件,添加一行:

    /dev/ubuntu-vg/data-lv   /data   ext4   defaults   0   0
    

    保存并退出编辑器。

修改可打开文件数(可选)

vi ~/.bashrc

末尾添加一行

ulimit -n 新的文件打开数

保存并关闭文件,然后重新加载配置文件:

source ~/.bashrc

使用以下命令验证更改是否已生效:

ulimit -n

设置时区:

sudo dpkg-reconfigure tzdata

运行上述命令后,你会看到一个交互式的界面,其中可以选择你所在的地区和城市。选择完毕后,系统将自动更新时区设置。
通过timedatectl命令查看时间状态

安装jdk

上传到/usr/loca目录,然后解压

tar -zxvf jdk-8u202-linux-x64.tar.gz

配置环境变量

vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_202
JRE_HOME=/usr/local/jdk1.8.0_202/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH
export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native:$LD_LIBRARY_PATH
export PATH=/usr/local/cmake/bin/:$PATH
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH

配置生效

source /etc/profile

本次部署计划四台服务器server100,server102,server101,server103,其中server103作为master节点,其它三个节点作为数据节点

部署zookeeper

在三个agent节点安装zookeeper
上传到/usr/local
解压

tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz

建立软连接,方便后期升级

ln -s apache-zookeeper-3.7.1-bin/ zookeeper

修改配置文件

cd /usr/local/zookeeper/conf

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

dataDir=/usr/local/zookeeper/tmp

server.1=server100:2888:3888
server.2=server101:2888:3888
server.3=server102:2888:3888

在data目录中创建一个空文件,并向该文件写入ID。

touch /usr/local/zookeeper/data/myid
echo 1 > /usr/local/zookeeper/data/myid

同步配置到其它节点

将配置好的ZooKeeper拷贝到其它节点

scp -r /usr/local/apache-zookeeper-3.7.1-bin root@server101:/usr/local
scp -r /usr/local/apache-zookeeper-3.7.1-bin root@server102:/usr/local

登录server101、server102,创建软链接并修改myid内容
server101

cd /usr/local
ln -s apache-zookeeper-3.7.1-bin zookeeper
echo 2 > /usr/local/zookeeper/data/myid

server102

cd /usr/local
ln -s apache-zookeeper-3.7.1-bin zookeeper
echo 3 > /usr/local/zookeeper/data/myid

运行验证

cd /usr/local/zookeeper/bin
./zkServer.sh start

查看启动状态

./zkServer.sh status

在这里插入图片描述

安装hadoop

将“hadoop-3.2.3.tar.gz”放置于server1节点的“/usr/local”目录,并解压。

cd /usr/local
tar -zxvf hadoop-3.2.3.tar.gz

建立软链接

ln -s hadoop-3.2.3 hadoop

修改配置文件

cd $HADOOP_HOME/etc/hadoop

修改hadoop-env.sh

echo "export JAVA_HOME=/usr/local/jdk1.8.0_202" >> hadoop-env.sh
echo "export HDFS_NAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_SECONDARYNAMENODE_USER=root" >> hadoop-env.sh
echo "export HDFS_DATANODE_USER=root" >> hadoop-env.sh

修改yarn-env.sh

echo "export YARN_REGISTRYDNS_SECURE_USER=root" >> yarn-env.sh
echo "export YARN_RESOURCEMANAGER_USER=root" >> yarn-env.sh
echo "export YARN_NODEMANAGER_USER=root" >> yarn-env.sh

修改core-site.xml

vi core-site.xml
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://server103:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop_tmp_dir</value>
</property>
<property>
   <name>ipc.client.connect.max.retries</name>
   <value>100</value>
</property>
<property>
   <name>ipc.client.connect.retry.interval</name>
   <value>10000</value>
</property>
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
</property>
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
</property>

修改hdfs-site.xml

vi hdfs-site.xml
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/data1/hadoop/nn</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
<value>/home/data1/hadoop/dn</value>
</property>
<property>
    <name>dfs.namenode.http-bind-host</name>
    <value>0.0.0.0</value>
</property>
<property>
    <name>dfs.datanode.handler.count</name>
    <value>600</value>
</property>
<property>
    <name>dfs.namenode.handler.count</name>
    <value>600</value>
</property>
<property>
    <name>dfs.namenode.service.handler.count</name>
    <value>600</value>
</property>
<property>
    <name>ipc.server.handler.queue.size</name>
    <value>300</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>

修改mapred-site.xml

vi mapred-site.xml
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <final>true</final>
    <description>The runtime framework for executing MapReduce jobs</description>
</property>
<property>
    <name>mapreduce.job.reduce.slowstart.completedmaps</name>
    <value>0.88</value>
</property>
<property>
    <name>mapreduce.application.classpath</name>
    <value>
        /usr/local/hadoop/etc/hadoop,
        /usr/local/hadoop/share/hadoop/common/*,
        /usr/local/hadoop/share/hadoop/common/lib/*,
        /usr/local/hadoop/share/hadoop/hdfs/*,
        /usr/local/hadoop/share/hadoop/hdfs/lib/*,
        /usr/local/hadoop/share/hadoop/mapreduce/*,
        /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
        /usr/local/hadoop/share/hadoop/yarn/*,
        /usr/local/hadoop/share/hadoop/yarn/lib/*
    </value>
</property>
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>6144</value>
</property>
<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>6144</value>
 </property>
 <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx5530m</value>
</property>
<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx2765m</value>
</property>
<property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx2048m -Xms2048m</value>
</property>
<property>
    <name>mapred.reduce.parallel.copies</name>
    <value>20</value>
</property>
<property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
    <name>mapreduce.job.counters.max</name>
    <value>1000</value>
</property>

修改yarn-site.xml

vi yarn-site.xml
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <final>true</final>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>server1</value>
</property>
<property>
    <name>yarn.resourcemanager.bind-host</name>
    <value>0.0.0.0</value>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>371200</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>371200</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>64</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>64</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-vcores</name> 
    <value>1</value>
</property>
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <name>yarn.client.nodemanager-connect.max-wait-ms</name>
    <value>300000</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>
        /usr/local/hadoop/etc/hadoop,
        /usr/local/hadoop/share/hadoop/common/*,
        /usr/local/hadoop/share/hadoop/common/lib/*,
        /usr/local/hadoop/share/hadoop/hdfs/*,
        /usr/local/hadoop/share/hadoop/hdfs/lib/*,
        /usr/local/hadoop/share/hadoop/mapreduce/*,
        /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
        /usr/local/hadoop/share/hadoop/yarn/*,
        /usr/local/hadoop/share/hadoop/yarn/lib/*
    </value>
</property>
<property>
    <name>yarn.nodemanager.local-dirs</name>
<value>/home/data1/hadoop/yarn/local,/home/data2/hadoop/yarn/local,/home/data3/hadoop/yarn/local,/home/data4/hadoop/yarn/local,/home/data5/hadoop/yarn/local,/home/data6/hadoop/yarn/local,/home/data7/hadoop/yarn/local,/home/data8/hadoop/yarn/local,/home/data9/hadoop/yarn/local,/home/data10/hadoop/yarn/local,/home/data11/hadoop/yarn/local,/home/data12/hadoop/yarn/local</value>
    </property>
<property>
    <name>yarn.nodemanager.log-dirs</name><value>/home/data1/hadoop/yarn/log,/home/data2/hadoop/yarn/log,/home/data3/hadoop/yarn/log,/home/data4/hadoop/yarn/log,/home/data5/hadoop/yarn/log,/home/data6/hadoop/yarn/log,/home/data7/hadoop/yarn/log,/home/data8/hadoop/yarn/log,/home/data9/hadoop/yarn/log,/home/data10/hadoop/yarn/log,/home/data11/hadoop/yarn/log,/home/data12/hadoop/yarn/log</value>
</property>
<property>
    <name>yarn.timeline-service.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.timeline-service.hostname</name>
    <value>server1</value>
</property>
<property>
    <name>yarn.timeline-service.http-cross-origin.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
    <value>true</value>
</property>

修改workers

确认Hadoop版本,3.x以下的版本编辑slaves文件,3.x及以上的编辑workers文件

vi workers

修改workers文件,只保存所有agent节点的IP地址(可用主机名代替),其余内容均删除

server100
server101
server102

拷贝hadoop-3.2.3到server100、server101、server102节点的“/usr/local”目录。

scp -r /usr/local/hadoop-3.2.3 root@server100:/usr/local
scp -r /usr/local/hadoop-3.2.3 root@server101:/usr/local
scp -r /usr/local/hadoop-3.2.3 root@server102:/usr/local

分别登录到server100、server101、server102节点,为hadoop-3.2.3建立软链接。、

cd /usr/local
ln -s hadoop-3.2.3 hadoop

启动Hadoop集群
1、启动ZooKeeper集群。
分别在server100、server101、server102节点上启动ZooKeeper。

cd /usr/local/zookeeper/bin
./zkServer.sh start

2、启动JournalNode。
分别在server100、server101、server102节点上启动JournalNode。

只在第一次进行格式化操作时,需要执行2-4,完成格式化后,下次启动集群,只需要执行1、5、6。

cd /usr/local/hadoop/sbin
./hadoop-daemon.sh start journalnode

3、格式化HDFS

在server1节点上格式化HDFS。

hdfs namenode -format

启动hdfs

start-all.sh

访问web页面验证
http://server103:9870

在这里插入图片描述

HBase部署

上传并解压到/usr/local
建立软连接

tar -zxvf hbase-2.3.7-bin.tar.gz

ln -s hbase-2.3.7 hbase

添加hbase到环境变量


vim /etc/profile

export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH

source /etc/profile

修改hbase配置文件

cd $HBASE_HOME/conf

vim hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_202
export HBASE_MANAGES_ZK=false
export HBASE_LIBRARY_PATH=/usr/local/hadoop/lib/native
vi hbase-site.xml
<property>
       <name>hbase.rootdir</name>
       <value>hdfs://server1:9000/HBase</value>
   </property>
 <property>
   <name>hbase.cluster.distributed</name>
   <value>true</value>
 </property>
 <property>
   <name>hbase.tmp.dir</name>
   <value>/usr/local/hbase/tmp</value>
 </property>
 <property>
   <name>hbase.unsafe.stream.capability.enforce</name>
   <value>false</value>
 </property>
<property>
       <name>hbase.zookeeper.quorum</name>
       <value>server100:2181,server101:2181,server102:2181</value>
   </property>
   <property>
 <name>hbase.wal.provider</name>
 <value>filesystem</value>
</property>

修改regionservers

vim regionservers

server100
server101
server102

拷贝hdfs-site.xml


cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/hdfs-site.xml

拷贝hbase-2.3.7到server100、server101、server102节点的“/usr/local”目录。


scp -r /usr/local/hbase-2.3.7 root@server100:/usr/local
scp -r /usr/local/hbase-2.3.7 root@server101:/usr/local
scp -r /usr/local/hbase-2.3.7 root@server102:/usr/local

分别登录到server100、server101、server102节点,为hbase-2.3.7建立软链接

cd /usr/local
ln -s hbase-2.3.7 hbase

启动hbase

/usr/local/hbase/bin/start-hbase.sh

访问验证
http://server103:16010/
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IEEE Transactions on Industrial Electronics工业电子TIE修改稿注意事项及提交须知

一、背景 兔年末投了一篇TIE&#xff0c;手稿初次提交的注意事项也整理成了博客IEEE Transactions on Industrial Electronics工业电子TIE论文投稿须知&#xff0c;获得了许多点赞和收藏。最近也收到了审稿结果&#xff0c;给的意见是大修major revision&#xff0c;总之只要不…

day01-HTML-CSS

一、Web 开发 1. 什么是 Web &#xff1f; Web&#xff1a;全球广域网&#xff0c;也称为万维网(www&#xff0c;World Wide Web)&#xff0c;能够通过浏览器访问的 网站。 2. Web 网站的开发模式 3. Web 标准 Web 标准也称为网页标准&#xff0c;由一系列的标准组成&#xff…

【React 报错】—Remove untracked files, stash or commit any changes, and try again.

【React 报错】—Remove untracked files, stash or commit any changes, and try again. 在react项目中通过.less文件进行样式定义&#xff0c;先暴露webpack配置文件&#xff0c;执行命令&#xff1a;yarn eject 或 npm run eject&#xff0c;报错如下&#xff1a; 原因是因…

ZDH-大数据采集-支持KETTLE任务

目录 目录 项目源码 预览地址 支持KETTLE介绍 新增KETTLE任务 配置调度KETTLE 重要说明 感谢支持 项目源码 预览地址 支持KETTLE介绍 新增KETTLE任务 配置调度KETTLE 重要说明 项目源码 zdh_web:GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后…

cRIO9040中NI9871模块的测试

硬件准备 CompactRIO9040NI9871直流电源&#xff08;可调&#xff09;网线RJ50转DB9线鸣志STF03-R驱动器和步进电机 软件安装 参考&#xff1a;cRIO9040中NI9381模块的测试 此外&#xff0c;需安装NI-Serial 9870和9871扫描引擎支持 打开NI Measurement&#xff06;Automa…

字节面试问题

实现三列布局的方法 第一种&#xff1a;可以使用浮动margin 第二种&#xff1a;浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

向日葵、Todesk、teamviewer等工具远程连接电脑时第三方应用显示白屏

问题描述&#xff1a;用向日葵远程等桌面时&#xff0c;当把显示器断电或者就没有显示器时或者笔记本盖子合住时&#xff0c;第三方软件显示白屏或显示不出来的问题。 原因&#xff1a;某些显卡在断开屏幕时自动降为低功耗模式。 解决 1、下载工具 https://www.amyuni.com/d…

前后端依赖下载上传

在某些情况下&#xff0c;可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖&#xff0c;你可以将它们保存在本地&#xff0c;然后在没有网络连接时使用&#xff0c;提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

深度学习PyTorch 之 RNN-中文多分类

关于RNN的理论部分我们已经在前面介绍过&#xff0c;所以这里直接上代码 1、 数据部分 1.1 读取数据 # 加载数据 data_path ./data/news.csv data pd.read_csv(data_path)# 预览数据的前几行 data.head()数据是csv格式&#xff0c;只有两列&#xff0c;第一列是标签&#…

基于springboot+vue的城镇保障性住房管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

大工程 从0到1 数据治理 之数据模型和设计篇(sample database classicmodels _No.7)

大工程 从0到1 数据治理 之数据模型和设计篇 我这里还是sample database classicmodels为案列&#xff0c;可以下载&#xff0c;我看 网上还没有类似的 案列&#xff0c;那就 从 0-1开始吧&#xff01; 文章目录 大工程 从0到1 数据治理 之数据模型和设计篇什么是数据模型设计…

【Java程序设计】【C00321】基于Springboot的在线租房和招聘平台(有论文)

基于Springboot的在线租房和招聘平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的在线租房和招聘平台&#xff0c;本系统有管理员、用户、房东以及公司四种角色&#xff1b; 管理员&#xff1a;首页、个人中心…

使用pytorch实现一个线性回归训练函数

使用sklearn.dataset 的make_regression创建用于线性回归的数据集 def create_dataset():x, y, coef make_regression(n_samples100, noise10, coefTrue, bias14.5, n_features1, random_state0)return torch.tensor(x), torch.tensor(y), coef 加载数据集&#xff0c;并拆分…

蓝桥杯_中断系统

一 中断 中断&#xff0c;即cpu暂停执行当前程序&#xff0c;转而执行另外一段特殊程序&#xff0c;处理结束后。返回之前暂停程序继续执行。 中断向量&#xff0c;中断服务程序的入口地址&#xff0c;每个中断源都对应一个固定的入口地址。 中断服务函数&#xff0c;内核响应中…

仿牛客网项目---用户注册登录功能的实现

从今天开始我们来写一个新项目&#xff0c;这个项目是一个完整的校园论坛的项目。主要功能模块&#xff1a;用户登录注册&#xff0c;帖子发布和热帖排行&#xff0c;点赞关注&#xff0c;发送私信&#xff0c;消息通知&#xff0c;社区搜索等。这篇文章我们先试着写一下用户的…

重拾前端基础知识:HTML

重拾前端基础知识&#xff1a;HTML 前言HTML编辑器标签锚链接 id和class表单Iframe字符实体HTML CSSHTML JavaScriptHTML 统一资源定位器(Uniform Resource Locators)XHTMLHTML5新的语义化元素视频和音频支持Canvas绘图本地存储表单增强Web Workers地理定位Web存储伸缩矢量图形…

《TCP/IP详解 卷一》第10章 UDP和IP分片

目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子&#xff1a;IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…

2024深度学习主流框架对比

tensorFlow 是最受欢迎和广泛使用的深度学习框架之一&#xff0c;目前在github的start数为181k。 TensorFlow是一个由Google Brain团队开发的开源深度学习框架。它允许开发者创建多种机器学习模型&#xff0c;包括卷积神经网络、循环神经网络和深度神经网络等&#xff0c;该框架…

全国产飞腾E2000Q +复旦微FPGA的轨道交通、电力解决方案

产品概述 ITX-XMF201是一款高性能边缘计算网关主板&#xff0c;采用飞腾E2000Q 4核处理器&#xff0c;国产化率达到95%国产化。 板载2电口&#xff0c;2路CAN&#xff0c;6路RS232接口&#xff0c;1路RS485接口&#xff0c;16路GPIO&#xff0c;可以满足银行、轨道交通、电力等…

【ArcGIS Pro二次开发】(83):ProWindow和WPF的一些技巧

在ArcGIS Pro二次开发中&#xff0c;SDK提供了一种工具界面【ArcGIS Pro ProWindow】。 关于ProWindow的用法&#xff0c;之前写过一篇基础的教程&#xff1a; 【ArcGIS Pro二次开发】(13)&#xff1a;ProWindow的用法_arcgispro二次开发教程-CSDN博客 主要是对几个常用控件…