当前位置: 首页 > news >正文

Hadoop 集群环境搭建

目录

第一部分:系统安装... 3

1:图形化安装... 3

2:选择中文... 3

3:安装选项... 3

4:软件选项... 4

5:安装位置... 4

6:网络配置... 6

7:开始安装... 7

8:创建用户... 7

9:重启系统... 7

10:登录测试... 8

第二部分:初始化设置... 9

1:SSH远程登录... 9

2:yum 源更新... 9

3:安装vim和wget. 11

4:增加test 用户权限... 12

5:修改主机 /tec/hosts 文件... 14

6:配置test 账户免密ssh 登录... 15

7:防火墙设置开机关闭... 17

第三部分:Java jdk 安装配置... 19

1:检查JAVA状态... 19

2:安装JAVA 1.8. 19

3配置环境变量... 20

第四部分:Hadoop 集群安装... 22

1:下载hadoop. 22

2:修改环境变量... 23

3:节点配置... 24

1:主节点安装(server1)... 24

2:备节点安装(server2 server3)... 28

第五部分:Hadoop 状态检查和常用命令... 31

1:网页状态查看... 31

2:控制台命令... 32

1:常用排查故障命令... 32

2:常用基础命令... 32

3:HDFS命令(Hadoop分布式文件系统)... 32

4:MapReduce作业运行命令... 33

5:YARN(Yet Another Resource Negotiator)命令... 33

6:Hadoop集群管理命令... 33

7:Hadoop配置文件管理命令... 33

第一部分:系统安装

大致过程:软件安装选择-------磁盘分区-------IP地址设置-----用户名密码设置

1:图形化安装

这里选择图形化安装。

2:选择中文

选择语言为中文。

3:安装选项

设置对应的安装选项。

4:软件选项

选择最小安装和系统管理工具。

5:安装位置

选择对应的磁盘并手动配置磁盘各分区大小。

点击自动创建

调整 /home 分区和/ 分区的大小,因为Hadoop默认的存储路径是在/目录下,所以/目录需要分配大一点。

分配后的各部分大小。

6:网络配置

手动指定IP地址和主机名。

215三台分别是192.168.1.190/191/192

7:开始安装

8:创建用户

创建root密码和用户,简单密码需要保存2次,密码安全测试环境不涉及,

9:重启系统

重启系统后就完成安装了。

10:登录测试

登录系统检测账号密码是否可以登录:

 su -l root 切换到root账户

测试网络是否正常

ping 223.5.5.5(223.5.5.5是阿里的公共DNS服务器地址

以上完成操作系统的安装。

第二部分:初始化设置

yum update 更新-----vim wget 安装-----sudo 文件增加用户名----/etc/hosts 文件配置3台机器主机名解析---------SSH 免密登录配置------关闭防火墙设置

1:SSH远程登录

使用WindTerm的 窗口水平分割和同步输入进行3台机器同时操作,节省时间。

2:yum 源更新

切换到root 账户,使用 yum update, 中间出现确认选项使用  y 确认。

命令:

yum update

更新完成

3:安装vim和wget

vim是文档编辑工具,wget 是下载HTTP的工具。

命令:(root用户模式下)中间出现确认选项使用  y 确认。

yum install vim

yum install wget

4:增加test 用户权限

vi和vim 基础操作。进入后 i和(insert)按键进入插入模式,esc 进入 模式

:行数    ===去到某一行

:wq      ====保存修改

:wq!     ====强制保存修改

:q       ====退出

:q:      ====强制退出

去往第100行。

新增test 用户权限,test 为之前创建的用户。

:wq   进行保存。

5:修改主机 /tec/hosts 文件

命令:

vim /etc/hosts

新增主机名和ip地址对应关系,ip地址根据实际地址(这里是我的内网地址)

修改完成后直接ping 主机名进行测试,通了代表修改成功。

6:配置test 账户免密ssh 登录

Hadoop 默认在非root账户下运行,所以需要返回 test 账户下,使用exit 退出

命令:

cd ~/.ssh/

进入test用户的ssh目录,提示无当前目录,使用ssh 随便远程一台机器即可产生目标目录,使用no 不保存密钥。然后就可以进入~/.ssh/ 目录了

命令:

ssh-keygen -t rsa

生成密钥,会出现一些提示,这里要连续按多次回车,直到它出现一个如下图所示的框框。

cat id_rsa.pub >> authorized_keys

chmod 600 ./authorized_keys

加入授权和修改文件权限。

分别使用以下命令拷贝ssh 秘钥,按提示输入 yes 和密码。

命令:

ssh-copy-id test@10.10.10.190 

ssh-copy-id test@10.10.10.191 

ssh-copy-id test@10.10.10.192 

这里是3台机器相互拷贝对方的秘钥,因为我这里使用的是同步输入,每台机器都有自身的秘钥,所以这里有个报错,可以不用管,直接输入密码既可以。(以server3为例server1和server2 需要拷贝server3的密钥,这里提示要是否保存,输入yes 保存,然后输入test 用户密码即可,因为server3不用输入密码,所以这里直接进入了$ 输入模式,这个是正常的,其他2台这里也是一样的)

拷贝完成进行测试,分别使用域名和ip地址测试登录其他机器是否需要输入密码。

命令:

ssh  test@server1

ssh  test@10.10.10.190 

我这里是使用的同步输入,每次都进入相同的服务器,这里可以看到每次都成功了。

7:防火墙设置开机关闭

命令:

sudo systemctl stop firewalld

sudo systemctl disable firewalld

接下来重启下服务器。准备安装java。

第三部分:Java jdk 安装配置

JAVA 安装------环境变量设置-----安装完成后检查

1:检查JAVA状态

切换root账户,输入命令java -version查看当前Java版本。(注意-)我这里显示未安装。

命令:

java -version

2:安装JAVA 1.8

Hadoop在1.7版本或1.8版本都可以,这是是安装的1.8版本的。

命令:

sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装完成后检查一下

3配置环境变量

输入vim ~/.bashrc我们在.bashrc中进行环境变量设置。

命令:

vim ~/.bashrc

进入文本后,在 # User specific aliases and functions下面加上如下一行:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

这里的JAVA_HOME的值是当前JDK的安装位置。添加上后就:wq保存退出。

输入source ~/.bashrc让刚才的变量设置生效。

命令:

source ~/.bashrc

完成以上操作后,我们输入如下命令进行检查。

命令:

java -version

$JAVA_HOME/bin/java –version

如下图所示,两个命令的输出结果一样,就没有问题。

以上显示java 安装成功。黄色地方报错的原因是  -version 的 -  不对,修改后就可以了运行了。

以上完成了java 的安装。

第四部分:Hadoop 集群安装

1:下载hadoop

(此处一定要切换回 test 账户,否则hadoop 启动不了)

退出到test 账户下,下载hadoop。

命令:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz

tar -xzvf hadoop-3.3.1.tar.gz

sudo mv hadoop-3.3.1 /usr/local/hadoop

2:修改环境变量

编辑用户的 ~/.bashrc 文件:,在文件末尾添加以下行:

命令:

vim ~/.bashrc

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存并退出,然后执行命令:

source ~/.bashrc

3:节点配置

这里主节点和其他节点配置不一样,所以关闭了同步输入

 1:主节点安装(server1)

1.1:查询java 的程序位置

命令:

sudo update-alternatives --config java

记录当前路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre

1.2:编辑 Hadoop 环境配置文件:

命令:

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

添加以下内容:  java 路径替换为上面记录的。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre

export HADOOP_HOME_WARN_SUPPRESS=true

1.3:配置 Hadoop 核心文件

命令:

vim /usr/local/hadoop/etc/hadoop/core-site.xml

添加以下内容: hdfs://10.10.10.190:9000 替换成对应的地址。

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://10.10.10.190:9000</value>

    </property>

</configuration>

1.4:配置 HDFS 文件系统

命令:

vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

添加以下内容:

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>3</value>

    </property>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>/usr/local/hadoop/data/namenode</value>

    </property>

    <property>

        <name>dfs.datanode.data.dir</name>

        <value>/usr/local/hadoop/data/datanode</value>

    </property>

</configuration>

1.5:配置 YARN 资源管理器

命令:

vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

添加以下内容: 10.10.10.190 替换成对应的地址

<configuration>

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>10.10.10.190</value>

    </property>

</configuration>

1.6:创建 HDFS 目录

命令:

hdfs namenode -format

1.7:启动 Hadoop 服务

命令:

start-dfs.sh

start-yarn.sh

主节点(server1)的hadoop 安装完成。

1.8:查看主节点状态

命名:

hdfs dfsadmin -report

2:备节点安装(server2 server3)

2.1: 从主节点复制 Hadoop 配置到从节点

命令:

scp -r 10.10.10.190:/usr/local/hadoop/etc/hadoop/* /usr/local/hadoop/etc/hadoop/

10.10.10.190修改为对应主节点ip地址

2.2:启动 Hadoop 服务

命令:

start-dfs.sh

start-yarn.sh

2.3:查看主节点状态

命名:

hdfs dfsadmin -report

以上就完成hadoop 3台机器集群环境的安装

第五部分:Hadoop 状态检查和常用命令

1:网页状态查看

YARN ResourceManager Web 用户界面  http://10.10.10.190:8088

Hadoop节点信息                      http://10.10.10.190:9870

2:控制台命令

1:常用排查故障命令

验证一下集群的状态:hdfs dfsadmin -report

列出 HDFS 上的文件:hdfs dfs -ls

本地文件上传到 HDFS:hdfs dfs -put /path/to/local/file /user/test/

获取节点的主机名或 IP 地址:hdfs dfsadmin -report | grep "Name:"

强制 Hadoop 刷新节点列表: hdfs dfsadmin -refreshNodes

2:常用基础命令

3:HDFS命令(Hadoop分布式文件系统)

上传文件到HDFS:

hdfs dfs -put <local-source> <hdfs-destination>

从HDFS下载文件:

hdfs dfs -get <hdfs-source> <local-destination>

列出HDFS目录内容:

hdfs dfs -ls <hdfs-path>

创建HDFS目录:

hdfs dfs -mkdir <hdfs-directory>

删除HDFS文件或目录:

hdfs dfs -rm <hdfs-path>

复制本地文件到HDFS:

hdfs dfs -copyFromLocal <local-source> <hdfs-destination>

4:MapReduce作业运行命令

提交MapReduce作业:

hadoop jar <jar-file> <main-class> <input-path> <output-path>

查看正在运行的MapReduce作业列表:

yarn application -list

5:YARN(Yet Another Resource Negotiator)命令

查看集群节点资源使用情况:

yarn node -list

查看正在运行的应用程序:

yarn application -list

6:Hadoop集群管理命令

启动Hadoop集群:

start-all.sh

停止Hadoop集群:

stop-all.sh

查看Hadoop集群状态:

hadoop dfsadmin -report

7:Hadoop配置文件管理命令

查看Hadoop配置:

hadoop version

查看Hadoop配置文件内容:

cat $HADOOP_HOME/etc/hadoop/core-site.xml

相关文章:

Hadoop 集群环境搭建

目录 第一部分&#xff1a;系统安装... 3 1&#xff1a;图形化安装... 3 2&#xff1a;选择中文... 3 3&#xff1a;安装选项... 3 4&#xff1a;软件选项... 4 5&#xff1a;安装位置... 4 6&#xff1a;网络配置... 6 7&#xff1a;开始安装... 7 8&#xff1a;创建用户... 7…...

maven完结,你真的学完了吗

书接上文&#xff1a;必学的maven的起步-CSDN博客 分模块开发与设计 分模块开发&#xff1a; 创建模块书写代码模块 模块中需要其他的模块&#xff0c;就将他安装到仓库然后再dep中导入依赖通过maven指令安装模块到本地仓库&#xff08;install&#xff09; 聚合与继承 聚合…...

【Xcode】解决Unable to process request - PLA Update available

出现场景 IOS更新app时&#xff0c;使用Xcode上传新版本的包时&#xff0c;提示无法上传。 Unable to process request -PLA update available you currently dont have access to this membership resource. To resolve this issue ,agree to the latest program license a…...

力扣单调栈算法专题训练

目录 1 专题说明2 训练 1 专题说明 本博客用来计算力扣上的单调栈题目、解题思路和代码。 单调栈题目记录&#xff1a; 2232866美丽塔II 2 训练 题目1&#xff1a;2866美丽塔II。 解题思路&#xff1a;先计算出prefix[i]&#xff0c;表示0~i满足递增情况下&#xff0c;0~i…...

【NI-RIO入门】理解Windows、Real Time与FPGA之间数据通信的原理

于NI kb摘录 1.概述 对于NI RIO系列设备&#xff08;CompactRIO、sbRIO、myRIO等&#xff09;进行编程时&#xff0c;需要注意有三个不同的组件。 人机界面 (HMI) 。有时称为“主机”&#xff0c;为用户提供图形用户界面&#xff08;GUI&#xff09;&#xff0c;用于监控系统…...

关于游戏性能优化的技巧

关于游戏性能优化的技巧 游戏性能优化对象池Jobs、Burst、多线程间隔处理定时更新全局广播缓存组件缓存常用数据2D残影优化2D骨骼转GPU动画定时器优化DrawCall合批处理优化碰撞层优化粒子特效 游戏性能优化 好久没有在CSDN上面写文章了&#xff0c;今天突然看到鬼谷工作室技术…...

antdesignpro实现滚动加载分页数据

原理解析&#xff1a;每滚动一次相当于翻页&#xff0c;请求后端时给的页码参数要想办法加1&#xff0c;后端才能根据页码给出相应数据 注意后端收到页码参数之后要准确计算出每页的首行数据&#xff0c;关键逻辑代码&#xff1a; # 根据前端传的页码&#xff0c;进行计算下一…...

步兵 cocos2dx 加密和混淆

文章目录 摘要引言正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA 重签名操作步骤 总结参考资料 摘要 本篇博客介绍了针对 iOS 应用中的 Lua 代码进行加密和混淆的相关技术。通过对 Lua 代码进行加密处理&#xff0c;可以确保应用代码的安全性&#xff0c;同时提高性…...

【算法设计与分析】——动态规划算法

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…...

WPF组合控件TreeView+DataGrid之DataGrid封装

&#xff08;关注博主后&#xff0c;在“粉丝专栏”&#xff0c;可免费阅读此文&#xff09; wpf的功能非常强大&#xff0c;很多控件都是原生的&#xff0c;但是要使用TreeViewDataGrid的组合&#xff0c;就需要我们自己去封装实现。 我们需要的效果如图所示&#x…...

PIL/Pillow

Abstract PIL(Python Imaging Library)是一个用于图像处理的 Python 库。它提供了广泛的功能&#xff0c;包括图像加载、保存、调整大小、裁剪、旋转、滤镜应用等。 由于 PIL 的开发停止在 2009 年&#xff0c;因此推荐使用其后续的维护版本 Pillow。Pillow 是一个兼容 PIL 接…...

ARM 汇编入门

ARM 汇编入门 引言 ARM 汇编语言是 ARM 架构的汇编语言&#xff0c;用于直接控制 ARM 处理器。虽然现代软件开发更多地依赖于高级语言和编译器&#xff0c;但理解 ARM 汇编仍然对于深入了解系统、优化代码和进行低级调试非常重要。本文将为您提供一个简单的 ARM 汇编入门指南…...

SQL进阶:多表查询

在SQL基础部分&#xff0c;我们在讲解的过程中只用到了单表查询。但实际上&#xff0c;常见的业务场景单表查询不能满足&#xff0c;或者拆分查询性能过慢。这个时候我们就需要用到连接查询。即查询多表按一定规则合并后的数据。 注意&#xff0c;合并后的数据也是表&#xff…...

多层负载均衡实现

1、单节点负载均衡 1&#xff09;站点层与浏览器层之间加入了一个反向代理层&#xff0c;利用高性能的nginx来做反向代理 2&#xff09;nginx将http请求分发给后端多个web-server 优点&#xff1a; 1&#xff09;DNS-server不需要动 2&#xff09;负载均衡&#xff1a;通过ngi…...

Redis取最近10条记录

有时候我们有这样的需求&#xff0c;就是取最近10条数据展示&#xff0c;这些数据不需要存数据库&#xff0c;只用于暂时最近的10条&#xff0c;就没必要在用到Mysql类似的数据库&#xff0c;只需要用redis即可&#xff0c;这样既方便也快&#xff01; 具体取最近10条的方法&a…...

Mybatis之增删改查

目录 一、引言 二、Mybatis——增 举例&#xff1a;添加用户 三、Mybatis——删 举例&#xff1a;删除用户 四、Mybatis——改 举例&#xff1a;修改用户 五、Mybatis——查 六、注意 END&#xff1a; 一、引言 书接上回&#xff0c;我们在了解完mybatis之后&#xff0c;肯…...

Go 代码检查工具 golangci-lint

一、介绍 golangci-lint 是一个代码检查工具的集合&#xff0c;聚集了多种 Go 代码检查工具&#xff0c;如 golint、go vet 等。 优点&#xff1a; 运行速度快可以集成到 vscode、goland 等开发工具中包含了非常多种代码检查器可以集成到 CI 中这是包含的代码检查器列表&…...

SwiftUI 趣谈之:绝不可能(Never)的 View!

概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没&#xff01; 不过&#xff0c;倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码&#xff0c;就会发现里面嵌有一些奇怪 Never 类型&#xff0c…...

etcd是什么

目录 1.关于etcd2.应用场景 本文主要介绍etcd 概念和基本应用场景。 1.关于etcd etcd是一个开源的、分布式的键值存储系统&#xff0c;用于共享配置和服务发现。它是由CoreOS团队开发的&#xff0c;主要用于实现分布式系统的配置管理和服务发现。 etcd的主要特性包括&#x…...

应用全局的UI状态存储AppStorage

目录 1、概述 2、StorageProp 2.1、观察变化和行为表现 3、StorageLink 3.1、观察变化和行为表现 4、从应用逻辑使用AppStorage和LocalStorage 5、从UI内部使用AppStorage和LocalStorage 6、不建议借助StorageLink的双向同步机制实现事件通知 6.1、推荐的事件通知方式…...

MySQL数据库 触发器

目录 触发器概述 语法 案例 触发器概述 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义的soL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性&#xff0c;日志记录&am…...

C语言学习之给定任意的字符串,清除字符串中的空格

实例要求&#xff1a;给定任意的字符串&#xff0c;清除字符串中的空格&#xff0c;并将其输出&#xff1b;实例分析&#xff1a;1、指针函数实现&#xff0c;需要注意指针函数的返回值是一个指针类型&#xff1b;2、字符类型的数组实现&#xff0c;循环遍历并赋给新的数组&…...

由实验数据进行函数拟合的python实现

0.引言 已知公式求参的过程&#xff0c;对工程而言&#xff0c;一般是一个线性拟合或者非线性拟合的过程。我们现在来以代码片段为例&#xff0c;来描述如何求参。一般这个过程会涉及超定方程的计算。这个过程&#xff0c;原本需要使用matlab&#xff0c;现在python照样可以做…...

<JavaEE> 基于 UDP 的 Socket 通信模型

目录 一、认识相关API 1&#xff09;DatagramSocket 2&#xff09;DatagramPacket 3&#xff09;InetSocketAddress 二、UDP数据报套接字通信模型概述 三、回显客户端-服务器通信 1&#xff09;服务器代码 2&#xff09;客户端代码 一、认识相关API 1&#xff09;Data…...

Golang 链表的基础知识

文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析 链表 更多有关于go链表的内容可以见这篇文章链表的创建和读取 链表基础知识部分 什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;…...

webpack 常见面试题

1、什么是webpack&#xff08;必会&#xff09; webpack是一个打包模块化javascript的工具&#xff0c;在webpack里一切文件皆模块&#xff0c;通过loader转换文件&#xff0c;通过plugin注入钩子&#xff0c;最后输出由多个模块组合成的文件&#xff0c;webpack专注构建模块化…...

three.js实战模拟VR全景视图

文章中使用到的案例图片都来源于&#xff1a;Humus - Textures 里面有很多免费的资源&#xff0c;可以直接下载&#xff0c;每个资源里面都提供6个不同方位的图片&#xff0c;我们通过threejs稍微处理一下&#xff0c;就能实现以下3D效果的场景了。 <template><div …...

聊聊Spring Boot配置文件:优先级顺序、bootstrap.yml与application.yml区别详解

Spring Boot 配置文件 优先级顺序 在Spring Boot中&#xff0c;配置文件的优先级顺序是&#xff1a;bootstrap.yml > application.yml > application-{profile}.yml&#xff0c;其中 {profile} 表示不同的环境配置&#xff0c;如 dev、test、prod 等。当存在相同名称的…...

Milvus向量数据库基础用法及注意细节

1、Milvus数据类型与python对应的数据类型 Milvus Python DataType.INT64 numpy.int64 DataType.INT32 numpy.int32 DataType.INT16 numpy.int16 DataType.BOOL Boolean DataType.FLOAT numpy.float32 DataType.DOUBLE numpy.double DataType.ARRAY list DataT…...

虚拟机多开怎么设置不同IP?虚拟机设置独立IP的技巧

随着虚拟化技术的不断发展&#xff0c;虚拟机已经成为了许多人的必备工具。在虚拟机中&#xff0c;我们可以轻松地创建多个虚拟机&#xff0c;并在每个虚拟机中设置不同的IP地址。下面&#xff0c;我们将介绍如何在虚拟机中设置独立IP地址的方法。 一、虚拟机多开设置不同IP的方…...

唐山网站建设自主开发/快速整站排名seo教程

点击下载 转载于:https://blog.51cto.com/19880614/933589...

宿迁网站制作公司/抖音广告投放平台官网

3.Pandas 文章目录3.Pandas3.3 Pandas进阶3.3.1 数据重塑和轴向旋转&#xff08;1&#xff09;层次化索引Series的层次化索引DataFrame的层次化索引层次化——电影数据示列&#xff08;2&#xff09;数据旋转3.3.2 数据分组、分组运算3.3.3 离散化处理3.3.4 合并数据集&#xf…...

wordpress邮箱功能/腾讯推广一次广告多少钱

mysql关键字踩坑 场景再现 本项目是springbootmybatis-plus的项目 正是因为使用MP导致我没发现是sql的问题 提取重要信息 实体类 Permission.java Data EqualsAndHashCode(callSuper false) Accessors(chain true) TableName("permission") ApiModel(value&q…...

深圳网站建设网络推广公司/百度关键词推广价格

1. find /test ! -name "test" -type d -prune -o -type f -name "*.txt" -print 查找/test下的.txt的普通文件&#xff0c;不查找子目录。 2. find . ! -name "." -type d -prune -o -type f -print 查找当前目录下的普通文件&#xff0c;不查找…...

域名购买 网站建设/抖音seo优化怎么做

上文介绍了如何自定义注解&#xff0c;本篇主要介绍如何使用注解 自定义注解 package com.example.annotaion;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation…...

朔州建设机械网站/直链平台

html5的onhashchange和history历史管理 现在的开发&#xff0c;越来越倾向于页面内跳转&#xff0c;这种情况下需要更新自己的知识&#xff0c;来实现页面内跳转。history就是解决这个问题的。 HTML5有两种解决办法&#xff1a; 1&#xff0c;onhashchange 用到了window.loacti…...