大数据技术--实验01-Hadoop的安装与使用【实测可行】

使用下面表中的软件版本进行配置:

准备好后,按照下面的步骤进行配置。

  1. 配置VMware网络

在VMWare主界面,点击“编辑”>“虚拟网络编辑”菜单进入虚拟网卡参数设置界面。选择VMnet8条目,点击“NAT设置”按钮后可以看到我们的VMWare Workstation为NAT连接的虚拟机设定的默认网关,此处为192.168.222.2,以及子网掩码,此处为255.255.255.0。

2. 准备机器

通过VMware新建一台CentOS 6.4虚拟机,操作系统安装完成后。

熟悉常用的Linux操作

  • cd命令:切换目录
    1)切换到目录“/usr/local

$ cd /usr/local

2)切换到当前目录的上一级目录

$ cd ..

3)切换到当前登录Linux系统的用户的自己的主文件夹

$ cd ~

  • ls命令:查看文件与目录

4)查看目录“/usr”下的所有文件和目录

$ cd /usr

$ ls -al

  • mkdir命令:新建目录

5)进入“/tmp”目录,创建一个名为“a”的目录,并查看“/tmp”目录下已经存在哪些目录

$ cd /tmp

$ mkdir a

$ ls -al

6)进入“/tmp”目录,创建目录“a1/a2/a3/a4

$ cd /tmp

$ mkdir -p a1/a2/a3/a4

  • rmdir命令:删除空的目录

7)将上面创建的目录a(在“/tmp”目录下面)删除

$ cd /tmp

$ rmdir a

8)删除上面创建的目录“a1/a2/a3/a4 (在“/tmp”目录下面),然后查看“/tmp”目录下面存在哪些目录

$ cd /tmp

$ rmdir -p a1/a2/a3/a4

$ ls -al

  • cp命令:复制文件或目录

9)将当前用户的主文件夹下的文件.bashrc复制到目录“/usr”下,并重命名为bashrc1

$ sudo cp ~/.bashrc /usr/bashrc1

10)在目录“/tmp”下新建目录test,再把这个目录复制到“/usr”目录下

$ cd /tmp

$ mkdir test

$ sudo cp -r /tmp/test /usr

  • mv命令:移动文件与目录,或更名

11)将“/usr”目录下的文件bashrc1移动到“/usr/test”目录下

$ sudo mv /usr/bashrc1 /usr/test

12)将“/usr”目录下的test目录重命名为test2

$ sudo mv /usr/test /usr/test2

  • rm命令:移除文件或目录
  • 13)将“/usr/test2”目录下的bashrc1文件删除

$ sudo rm /usr/test2/bashrc1

14)将“/usr”目录下的test2目录删除

$ sudo rm -r /usr/test2

  • cat命令:查看文件内容

15)查看当前用户主文件夹下的.bashrc文件内容

$ cat ~/.bashrc

  • tac命令:反向查看文件内容

16)反向查看当前用户主文件夹下的.bashrc文件的内容

$ tac ~/.bashrc

  • more命令:一页一页翻动查看

17)翻页查看当前用户主文件夹下的.bashrc文件的内容

$ more ~/.bashrc

  • head命令:取出前面几行

18)查看当前用户主文件夹下.bashrc文件内容前20

$ head -n 20 ~/.bashrc

19)查看当前用户主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行

$ head -n -50 ~/.bashrc

  • tail命令:取出后面几行

20)查看当前用户主文件夹下.bashrc文件内容最后20

$ tail -n 20 ~/.bashrc

21)查看当前用户主文件夹下.bashrc文件内容,并且只列出50行以后的数据

$ tail -n +50 ~/.bashrc

  • touch命令:修改文件时间或创建新文件

22)在“/tmp”目录下创建一个空文件hello,并查看文件时间

$ cd /tmp

$ touch hello

$ ls -l hello

23)修改hello文件,将文件时间整为5天前

$ touch -d “5 days ago” hello

  • chown命令:修改文件所有者权限

24)将hello文件所有者改为root帐号,并查看属性

$ sudo chown root /tmp/hello

$ ls -l /tmp/hello

  • find命令:文件查找

25)找出主文件夹下文件名为.bashrc的文件

$ find ~ -name .bashrc

  • tar命令:压缩命令

26)在根目录“/”下新建文件夹test,然后在根目录“/”下打包成test.tar.gz

$ sudo mkdir /test

$ sudo tar -zcv -f /test.tar.gz test

27)把上面的test.tar.gz压缩包,解压缩到“/tmp”目录

$ sudo tar -zxv -f /test.tar.gz -C /tmp

  • grep命令:查找字符串

28)从“~/.bashrc”文件中查找字符串'examples'

$ grep -n 'examples' ~/.bashrc

  • 配置环境变量

29)请在“~/.bashrc”中设置,配置Java环境变量

首先,使用vim编辑器打开文件“~/.bashrc”,命令如下:

$ vim ~/.bashrc

然后,在该文件的最上面加入一行如下形式的语句:

export JAVA_HOME=JDK安装路径

         最后,执行如下命令使得环境变量配置生效:

$ source ~/.bashrc

30)查看JAVA_HOME变量的值

$ echo $JAVA_HOME

使用root用户登录,添加一个新用户hadoop。设置hadoop用户的密码并授予hadoop用户sudo权限。

[root@localhost ~]$ useradd hadoop

[root@localhost ~]$ passwd hadoop

[root@localhost ~]$ chmod u+w /etc/sudoers

[root@localhost ~]$ vim /etc/sudoers

# 在root ALL=(ALL) ALL 下 添加hadoop ALL=(ALL) ALL

[root@localhost ~]$ chmod u-w /etc/sudoers

3.  设置静态IP

VMware默认使用动态的IP,但是由于Hadoop集群是使用机器名进行定位的,在/etc/hosts中配置了机器名和IP的映射,如果IP不断变化,则需要不断修改配置文件,所以这里需要把IP设置为静态,方便后面的操作。

1)修改/etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 修改内容如下:

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.222.131

NETMASK=255.255.255.0

GATEWAY=192.168.222.2

# HWADDR=00:0C:29:C3:34:BF  # 这个需要根据自己的机器进行设置

ONBOOT=yes

TYPE=Ethernet

IPV6INIT=no

DNS1=192.168.222.2

2)修改/etc/sysconfig/network

[root@localhost ~]$ vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=localhost.localdomain

GATEWAY=192.168.222.2

3)修改DNS信息

[root@localhost ~]$ vim/etc/resolv.conf

nameserver 192.168.222.2

search bogon

#使配置信息立即生效

[root@localhost ~]$ source /etc/resolv.conf

#重启网络服务

[root@localhost ~]$ service network restart

[也可以在网络连接面板上进行配置] 

4)关闭防火墙并修改其启动策略为不开机启动

[root@localhost ~]$ service iptables stop

#防火墙不开机启动

[root@localhost ~]$ chkconfig iptables off

4. 安装JDK

1)使用yum search jdk在线查找jdk列表,任意选择一个版本进行安装,这里安装“java-1.7.0-openjdk-devel.x86_64”。

[root@localhost ~]$ yum search jdk

[root@localhost ~]$ yum install java-1.7.0-openjdk-devel.x86_64 –y

【注:可以下载java软件解压缩即可】

2)配置Java环境变量。

# 查询JDK路径

[root@localhost ~]$ whereis java

[root@localhost ~]$ ll /usr/bin/java

[root@localhost ~]$ ll /etc/alternatives/java #这是可以看到JDK路径了

#修改配置文件

[root@localhost ~]$ vim /etc/profile

#在末尾追加

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64

export MAVEN_HOME=/home/hadoop/local/opt/apache-maven-3.3.1

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#保存配置后使用source命令是配置立即生效

[root@localhost ~]$ source /etc/profile

3)使用java –version命令查看环境变量配置是否成功。

[root@localhost ~]$ java -version

OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-x86_64 u75-b13)

OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

至此,我们已经完成JDK的安装和配置,接下来使用VMWare克隆两台机器,并分别设置静态IP地址为192.168.222.132,192.168.222.133。

注意:克隆完成,启动机器后,会出现没有网络设备信息,无法连接网络的情况,解决方案如下:

删除/etc/udev/rules.d/70-persistent-net.rules,修改/etc/sysconfig/network-scripts/ifcfg-eth0,注释硬件地址那一行,重启系统。

5.  配置ssh免登录

1)启动三台机器,分别修改名为master、slave1、slave2,重启系统。

[root@localhost ~]$ vim /etc/sysconfig/network

# 修改内容如下

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=master

2)修改master上的/etc/hosts。

[hadoop@master ~]$ sudo vim /etc/hosts

# 内容如下

192.168.222.131 master

192.168.222.132 slave1

192.168.222.133 slave2

3)将hosts文件拷贝到slave1和slave2

[hadoop@master ~]$ sudo scp /etc/hosts root@slave1:/etc

[hadoop@master ~]$ sudo scp /etc/hosts root@slave2:/etc

4)在master机器上使用hadoop用户登录(确保接下来的操作都是通过hadoop用户执行)。执行$ ssh-keygen -t rsa命令产生公钥。

[hadoop@master ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

 Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):

 Enter passphrase (empty for no passphrase):

 Enter same passphrase again:

 Your identification has been saved in /home/hadoop/.ssh/id_rsa.

 Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.

 The key fingerprint is:

 7b:75:98:eb:fd:13:ce:0f:c4:cf:2c:65:cc:73:70:53 hadoop@master

 The key's randomart image is:

 +--[ RSA 2048]----+

| E|

 | .|

 | ...|

 | + =.|

 | S + +.*|

 | . . + Bo|

 | . . . = =|

 | . . . * |

 | . ..=|

 +-----------------+

5)将公钥拷贝到slave1和slave2。

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave1

# 输入hadoop@slave1的密码

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

# 输入hadoop@slave2的密码

注:第一,将公钥拷贝到自身,[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub master

第二,为了使得masterslave1slave2能互通,在slave1slave2上做类似操作。

6)再次登录,已经可以不需要密码可以登录slave1,slave2。

[hadoop@master ~]$ ssh slave1

Last login: Wed Mar 25 14:40:41 2015 from master

[hadoop@slave1 ~]$

6.  安装Hadoop

1)在Hadoop官网网站,下载稳定版的并且已经编译好的二进制包,并解压缩。

[hadoop@master ~]$ wget     http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

[hadoop@master ~]$ tar -zxf hadoop-2.6.0.tar.gz -C ~/local/opt

[hadoop@master ~]$ cd ~/local/opt/hadoop-2.6.0

2)设置环境变量。

[hadoop@master ~]$ vim ~/.bashrc

export HADOOP_PREFIX=$HOME/local/opt/hadoop-2.6.0

export HADOOP_COMMON_HOME=$HADOOP_PREFIX

export HADOOP_HDFS_HOME=$HADOOP_PREFIX

export HADOOP_MAPRED_HOME=$HADOOP_PREFIX

export HADOOP_YARN_HOME=$HADOOP_PREFIX

export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop

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

3)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh),添加下面的命令(这里需要注意JAVA_HOME的设置需要根据自己机器的实际情况进行设置)。

export JAVA_HOME=/usr/lib/jvm/java

4)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/core-site.xml)。

<configuration>

 <property>

  <name>fs.defaultFS</name>

  <value>hdfs://master</value>

 </property>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>/home/hadoop/local/var/hadoop/tmp/hadoop-${user.name}</value>

  </property>

</configuration>

5)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/hdfs-site.xml)。

<configuration>

 <property>

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

  <value>file:///home/hadoop/local/var/hadoop/hdfs/datanode</value>

 </property>

 <property>

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

  <value>file:///home/hadoop/local/var/hadoop/hdfs/namenode</value>

 </property>

 <property>

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

  <value>file:///home/hadoop/local/var/hadoop/hdfs/namesecondary</value>

 </property>

 <property>

  <name>dfs.replication</name>

  <value>2</value>

 </property>

</configuration>

6)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/yarn-site.xml)。

<configuration>

  <property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

  </property>

  <property>

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

    <value>master</value>

  </property>

</configuration>

7)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/mapred-site.xml)。

<configuration>

  <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

  </property>

   <property>

     <name>mapreduce.jobtracker.staging.root.dir</name>

     <value>/user</value>

   </property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888 </value>

</property>

</configuration>

7*)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/slaves)。

slave1

slave2

slaves文件是指定HDFS上有哪些DataNode节点。

7**)分发Hadoop文件

首先在其他两台机器上创建存放Hadoop的目录

[hadoop@slave1~]$ mkdir local

[hadoop@slave1~]$ cd local

[hadoop@slave1 local]$ mkdir opt

[hadoop@slave2~]$ mkdir local

[hadoop@slave2~]$ cd local

[hadoop@slave2 local]$ mkdir opt

通过Scp分发

Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录 删除掉,可以节省硬盘空间并能提高分发的速度。

doc目录大小有1.6G

[hadoop@master ~]$ rm -r local/opt/hadoop-2.6.0/share/doc

[hadoop@master ~]$ scp -r local/opt/hadoop-2.6.0 hadoop@slave1:local/opt

[hadoop@master ~]$ scp -r local/opt/hadoop-2.6.0 hadoop@slave2:local/opt

8)格式化hdfs。

[hadoop@master ~]$ hdfs namenode -format

如果需要重新格式化NameNode,需要先将原来NameNodeDataNode下的文件全部删除,不然会报错, NameNode DataNode 所在1目录是在 coresite.xml hadoop.tmp.dirdfs. namenode. name. dir dfs.datanode.data.dir 属性配置的。

因为每次格式化,默认是创建一个集群ID,并写入NameNodeDataNodeVERSION文件中(VERSION文件所 在目录为dfs/name/currentdfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删 除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时 会报错。

另一种方法是格式化时指定集群ID参数,指定为旧的集群ID

9)启动hadoop集群,启动结束后使用jps命令列出守护进程验证安装是否成功。

#启动HDFS

[hadoop@master ~]$ start-dfs.sh

#启动Yarn

[hadoop@master ~]$ start-yarn.sh

【注:也可以直接使用start-all.sh启动Hadoop

# master主节点:

[hadoop@master ~]$ jps

3717 SecondaryNameNode

3855 ResourceManager

3539 NameNode

3903 JobHistoryServer

4169 Jps

#slave1节点

[hadoop@slave1 ~]$ jps

2969 Jps

2683 DataNode

2789 NodeManager

# slave2 节点

[hadoop@slave2 ~]$ jps

2614 Jps

2363 DataNode

2470 NodeManager

发现JobHistoryServer没有启动,所以需要执行

[hadoop@master hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh start historyserver

starting historyserver, logging to /home/hadoop/local/opt/hadoop-2.6.0/logs/mapred-hadoop-historyserver-master.out

Web查看

http://192.168.42.128:50070/

10)关闭hadoop集群,关闭结束后使用jps命令列出守护进程验证关闭是否成功。

[hadoop@master hadoop-2.6.0]$ stop-all.sh

[hadoop@master hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh stop historyserver

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

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

相关文章

使用UDP套接字编程详解【C语言】

UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种面向无连接的传输层协议&#xff0c;用于在计算机网络上发送数据。它与 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;相比具有轻量、高效的特点&…

英语(二)-我的学习方式

章节章节汇总我的学习方式历年真题作文&范文 目录 1、背单词 2、学语法 3、做真题 4、胶囊助学计划 写在最前&#xff1a;我是零基础&#xff0c;初二就听天书的那种。 本专栏持续更新学习资料 1、背单词 单词是基础&#xff0c;一定要背单词&#xff01;考纲要求要…

云动态摘要 2024-07-23

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起! [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造,可通过对话方式生成可视化…

中文分词库 jieba 详细使用方法与案例演示

1 前言 jieba 是一个非常流行的中文分词库&#xff0c;具有高效、准确分词的效果。 它支持3种分词模式&#xff1a; 精确模式全模式搜索引擎模式 jieba0.42.1测试环境&#xff1a;python3.10.9 2 三种模式 2.1 精确模式 适应场景&#xff1a;文本分析。 功能&#xff1…

【Zotero插件】Zotero Tag为文献设置阅读状态 win11下相关设置

【Zotero插件设置】Zotero Tag为文献设置阅读状态 win11下相关设置 1.安装Zotero Tag1.1安装1.2配置1.3 win11的相关设置1.3.1 字体安装 参考教程 2.支持排序的标注参考教程 1.安装Zotero Tag 1.1安装 Zotero Tag插件下载链接安装方法&#xff1a;Zotero–》工具–》附加组件…

googleTest 源码主线框架性分析——TDD 01

TDD&#xff0c;测试驱动开发&#xff0c;英文全称Test-Driven Development&#xff0c;简称TDD&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码&#xff0c;通过测试来推…

苹果和乔布斯的传奇故事,从车库创业到万亿市值巨头

苹果公司的品牌故事&#xff0c;就像一部充满创新、挑战与辉煌的科幻大片&#xff0c;让人目不暇接。 故事始于1976年&#xff0c;那时&#xff0c;年轻的史蒂夫乔布斯与斯蒂夫沃兹尼亚克在加州的一个简陋车库里&#xff0c;用他们的热情和智慧&#xff0c;捣鼓出了世界上第一…

python学习之闭包与装饰器

一、闭包 闭包允许一个函数访问并操作函数外部的变量&#xff08;即父级作用域中的变量&#xff09;&#xff0c;即使在该函数外部执行。 特性&#xff1a; (1)外部函数嵌套内部函数。 (2)外部函数可以返回内部函数。 (3)内部函数可以访问外部函数的局部变量。 def out()…

linux中使用docker安装mongodb

随着容器的普及&#xff0c;越来越多服务都喜欢跑在容器中&#xff0c;并且安装也很方便快捷&#xff0c;接下来一起看下linux中使用docker来安装mongodb吧&#xff01; 1.首先安装docker&#xff1b; 使用Yum 进行安装&#xff0c;我安装docker比较喜欢参考阿里云中的安装步骤…

通过泛型+函数式编程封装成通用解决方案|缓存穿透、缓存击穿,缓存雪崩

缓存更新方法封装 用到了泛型、函数式编程。 使用函数式编程是因为我们这个是一个通用的工具&#xff0c;使用泛型&#xff08;泛型&#xff08;Generics&#xff09; 允许我们定义类、接口和方法&#xff0c;可以使用不同类型的参数进行操作&#xff09;可以实现数据类型的通…

Mem0 - 个人 AI 的内存层

文章目录 一、关于 Mem0核心功能&#x1f511;路线图 &#x1f5fa;️常见用例Mem0与RAG有何不同&#xff1f; 二、快速入门 &#x1f680;1、安装2、基本用法&#xff08;开源&#xff09;3、高级用法&#x1f527;4、大模型支持 三、MultiOn1、概览2、设置和配置4、将记忆添加…

鸿蒙仓颉语言【模块module】

module 模块 模块配置文件&#xff0c;这里指项目的modules.json 文件&#xff0c;用于描述代码项目的基础元属性。 {"name": "file name", //当前项目的名称"description": "项目描述", //项目描述"version": "1.0…

视频汇聚平台EasyCVR启动出现报错“cannot open shared object file”的原因排查与解决

安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发&#xff0c;如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等&#xf…

kafka基础介绍

一、为什么使用消息队列 1.使用同步的通信方式来解决多个服务之间的通信 同步的通信方式会存在性能和稳定性的问题。 2.使用异步的通信方式 针对于同步的通信方式来说,异步的方式,可以让上游快速成功,极大提高了系统的吞吐量。而且在分布式系统中,通过下游多个服务的 分布式事…

怎么拼接几张图片为一张?拼接几张图片为一张的四种方法推荐

怎么拼接几张图片为一张&#xff1f;要将几张图片拼接成一张完整的图像&#xff0c;你可以利用现代软件和工具来实现这一操作。这种技术可以帮助你创建更大、更复杂的图像&#xff0c;无论是为了美学上的需要还是为了展示更完整的视觉信息。通过合并多张图片&#xff0c;你可以…

Windows上让Qt支持https请求

一.前言 Qt默认其实支持https的&#xff0c;但需要openssl的支持。所以有时候你代码中写了支持https的请求连接&#xff0c;发现程序可以运行&#xff0c;但到了https请求时会报错&#xff0c;如下&#xff1a; 这就是没有openssl的支持&#xff0c;导致QSslSocket无法进行ht…

关于c#的简单应用三题

#region 输入一个正整数&#xff0c;求1~这个数的阶乘 public static void Factorial(int a) { int result 1; for (int i 1; i < a; i) { result result * i; } Console.WriteLine(result); } #endregion #region 一个游戏&#…

【Vue3】从零开始编写项目

【Vue3】从零开始编写项目 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的…

阶梯-度小满春招算法方向第1批

问题的题面是典型的最长上升子序列问题。求方案数属动态规划问题&#xff0c;可推出以a[i]为最大节点的上升子序列方案数公式 dp[i]{dp[j] , 1<j<i-1&&f[j]1f[i]} &#xff08;f为最大上升子序列&#xff09;。 并且这个方案总数不会超过n&#xff0c;因此也…

C2W1.Assignment.Autocorrect.Part2

理论课&#xff1a;C2W1.Auto-correct 文章目录 3. Combining the edits3.1 Exercise 8.Edit one letter3.2 Exercise 9.Edit two letters3.3 Exercise 10.suggest spelling suggestions 4. Minimum Edit Distance4.1 Dynamic ProgrammingExercise 11Test All-in-one 5. Backt…