赞
踩
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
总计 1000+ 道面试题, 内容 又全含金量又高
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
然后选择自定义(高级)
,
然后一直下一步,直到选择安装来源
,选择安装程序光盘映像文件(iso)
,浏览
选择刚才下载的CentOS的位置(iso文件)。
下一步直到命名虚拟机
,虚拟机的名称
可以后续修改,改不改都可以,下面的位置是安装到的虚拟机位置(不想下C盘请修改)。
之后一直下一步就可以了,配置什么的后面可以通过编辑虚拟机
进行修改。
三个虚拟机的位置最好都选在不同的文件夹中,如:
该操作需要重复三次(实验需要一个Master两个Slave……)
新建虚拟机后会自动开机进入CentOS的安装程序,点进虚拟机,然后一直回车就好了,然后等待完成。
之后会弹出安装界面,按照需求选择,继续。
之后的安装信息摘要
比较重要了,直接拖到下面前三个选项不要管,我们需要打开的有下面红框标记的三个。
首先打开软件选择
,选中带GUI的服务器
,如果不选的话你的CentOS是纯命令行,说实话有点麻烦……点击完成即可。
然后打开安装位置
,打开以后直接完成
,什么都不需要选择。
最后选择网络和主机名
,根据老师的要求修改主机名(我们的要求是Master学号后两位、Slave1-学号后两位、Slave2-学号后两位)。
返回到安装界面,点击开始安装
。
进入页面选择ROOT密码
,设置为123456
(别的也行,简单一点不要为难自己)。
然后等待安装完成即可。
方法一是使用指令hostnamectl set-hostname xxx
,xxx是自己的主机名,但是这种方法设置的主机名是小写的。
方法二是使用指令vi /etc/hostname
,这个文件里的内容就是你的主机名,直接全删了,把自己的主机名输入进去就行了,大小写都可以,这种方法需要重启一次。
按照老师要求,主机的ip最后一个字节是学号,
从机1是学号+1,从机2是学号+2……
该操作需要重复三次(实验需要一个Master两个Slave……)
之后会经常用到VI编辑器,因此做几个介绍:
vi 文件路径
指令打开文件insert
键或者i
键进入insert模式(编辑)o
,可以插入新的一行并自动进入insert模式(编辑)ESC
,:wq
是保存退出,一定要小写,大写会出错。登录虚拟机使用root,不要用用户。(root在未列出中,用户名root,密码123456)
如果暂时不做了,最好是使用挂起客户机
而不是关闭客户机
。
首先查看一下虚拟机子网IP,在VMware上,点击编辑
->虚拟网络编辑器
。
点击VMnet8
,查看下面的子网IP,如下图子网IP是192.168.64.0
。
再点击一下NAT设置查看一下网关IP:
启动虚拟机,使用ROOT登录(未列出的->用户名root,密码123456)。
打开终端,输入vi /etc/sysconfig/network-scripts/ifcfg-ens33
,复制命令,鼠标中键粘贴到终端。
需要修改的是:BOOTPROTO=static
、ONBOOT=yes
。
在最后添加以下内容,我们之前得到的子网IP是192.168.64.0
因此我们的IPADDR
前三个字节需要相同,最后一个字节根据自己的学号修改。
GATEWAY
与DNS1
相同,都按照前面找到的网关IP填写。
IPADDR=192.168.64.60
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
DNS1=192.168.64.2
然后ESC
,:wq
退出,不要少写了冒号!
终端输入指令systemctl restart network
(中间粘贴)
之后通过指令ip addr
来查看,只要ens33出现了inet并且是自己的设置的IP就是成功了,如果没有,请对照3.1.1的注意事项查找错误。
用上面的方法完成Slave1和Slave2的IP设置,不再重复演示。
首先确保已经使用了systemctl restart network
指令。
然后上面的一定严格按照给的写:字母写错、不是大写都有可能导致无法连接网络。大概率问题出在ens33
的文件配置中。
如果之前已经设置成功并且显示,后续打开发现失效,可以参考5.3来解决。
我们可能需要来回切换设置这三台虚拟机,从一台换到另一台的时候可能已经进入待机模式了,需要重新输入密码进入,怪麻烦的,下面给出关闭待机的方法。
在设置中选择Power(电源),然后把空白屏幕改成从不就可以了。
实验文档只告诉一个防火墙配置,也不说配置什么,全是泛泛之谈!一百个字的实验文档轻飘飘的话,剩下全靠自己悟。
该操作需要重复三次(实验需要一个Master两个Slave……)
在终端使用指令依次使用下面两个指令:
systemctl stop firewalld
关闭防火墙systemctl disable firewalld
禁用防火墙(不再开机启动)在终端使用指令systemctl status firewalld
查看防火墙状态,下图是已经关闭的状态:
没有关闭重启试试。
该操作需要重复三次(实验需要一个Master两个Slave……)
在终端使用指令vi /etc/hosts
,将主机名与IP地址的映射关系存入。
如我的IP地址与主机名的对应关系是:
192.168.64.60 Master60
192.168.64.61 Slave1-60
192.168.64.62 Slave2-60
可以用#
把前面两条注释掉,然后把自己的复制进去(鼠标中键),最后:wq
保存,文档如下图所示:
首先确保三台虚拟机都已经完成了/etc/hosts
的修改。
以Master(主机)为例,使用指令ping 192.168.64.61
(IP以自己的从机IP为准),或者使用ping Slave2-60
来检验是否连通(IP和主机名有映射关系了,所以ping IP和ping 主机名都可以)。
再分别从从机1和从机2去ping其他的两台机器,验证是否连通,过程是一样的只是把ip改一下,不再做演示。
如果之前已经设置成功并且显示,后续打开发现失效可能是网卡出现问题了。
依次使用以下指令:
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
然后再通过ip addr
查看是否成功(ens33显示IP)。
该操作需要重复三次(实验需要一个Master两个Slave……)
在终端通过ping baidu.com
验证是否成功。
下面以主机为例:
从机也需要验证,如果哪台机器ping不通请查看3.3以及5.3的解决方法或自行百度。
这种方法需要再安装CentOS的时候选择了GUI界面(参考2.3)
然后输入www.baidu.com
,看是否能成功访问,以下是成功界面:
该操作需要重复三次(实验需要一个Master两个Slave……)
以主机为例,在终端依次使用以下指令生成秘钥然后分享给除了自己以外的另外两台机器:
ssh-keygen -t rsa
(然后一直回车)ssh-copy-id Slave1-60
(Slave1-60修改为你的从机1的主机名或IP)ssh-copy-id Slave2-60
(Slave1-60修改为你的从机2的主机名或IP)yes
,然后再输入密码(123456),密码不会显示(Linux特性)。两个从机重复以上操作。
之后在**主机(Master)**进行如下操作(这一步从机不需要):
cd .ssh
(目前所在路径是~)touch authorized_keys
chmod 600 authorized_keys
cat id_rsa.pub >> authorized_keys
这一步是为了之后做准备的……
以从机1为例,在终端使用指令ssh Master60
(改为自己主机的主机名)或者`ssh 192.168.64.610(改为自己主机的IP)。
可以发现此时不需要键入密码就可以登录。
OK,这一步的难度大于前面七步的和,尽量说的详细一点。
该操作需要重复三次(实验需要一个Master两个Slave……)
我用的是Hadoop-3.3.1,下面的操作只要是Hadoop-3.x应该都是适用的,但是Hadoop-2.x可能有细枝末节的地方不太相同,建议看一下PushyTao学长的博客。
建议是在自己的电脑上而不是虚拟机上下载,因为每台虚拟机都需要一份,所以直接下在自己电脑桌面上然后拖到虚拟机里就可以了。
下面给出两个镜像站地址,哪个快下哪个吧(3.3.1可能已经不能用了大概3.x就可以):
以阿里云镜像站为例,要下载的是hadoop-3.3.1.tar.gz
。
首先mkdir /user
(现在的路径是~)
然后直接复制以下指令到终端(鼠标中键粘贴)
mkdir /user/hadoop
mkdir /user/hadoop/tmp
mkdir /user/hadoop/var
mkdir /user/hadoop/dfs
mkdir /user/hadoop/dfs/name
mkdir /user/hadoop/dfs/data
方便起见,后面的操作用GUI进行,点击应用程序
,选择文件
。
点击其他位置
,然后选择计算机
。
找到user
文件夹点击进入,注意是user
不是usr
。
进入里面的hadoop
目录,然后把电脑上的压缩包拖进来(下面的图是解压完成的)
然后在这个界面右键选择在终端打开
。
这时候我终端的位置是这个目录:
然后输入指令tar -zxvf hadoop-3.3.1.tar.gz
进行解压。
在终端使用指令vi ~/.bashrc
。
在最后键入i
进行插入,需要修改的只有第一行HADOOP_INSTALL
,把它改成自己Hadoop的位置就好了(含有bin、etc、……的目录)。
export HADOOP_INSTALL=/user/hadoop/hadoop-3.3.1
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_HOME=$HADOOP_INSTALL
:wq
保存退出。
然后在终端输入指令source ~/.bashrc
其实这个地方是搞错了的这里用的是JRE(运行包),而不是JDK(开发包),其中开发包是包含了运行包。但是后面的操作只需要运行即可,就是说不会影响到后续操作。我会在下一个实验的时候进行修正,或者到这一步时同学们可以自行下载JDK
这个CentOS是自带了一个JDK确实是能用的,所以我也不另外下载了,找到这个JDK就可以了。
依次使用指令:
which java
获得一个地址/usr/bin/java
ls -lrt /usr/bin/java
,根据前面得到的地址修改,会获得另一个地址/etc/alternatives/java
ls -lrt /etc/alternatives/java
,根据前面得到的地址修改,最终得到的就是jdk的位置。比如我找到的是java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
,但实际上每个人可能有所差别,以自己的为准!
上面显示0.362是因为后面的操作应该是有了一个新的版本但是为了还原,我还是说我的过程吧。
点进去这个这个目录,把里面jre的bin和lib给复制出来。
不搞出来之后会报错,JAVA_HOME需要这俩东西应该是,如果重新下jdk也差不多这么个意思。
在做这一步之前先确保主机和两台从机都完成了以上操作,然后在主机上完成以下操作。
用GUI来完成吧,首先进入 /user/hadoop/hadoop-3.3.1/etc/hadoop/
目录
这样的文件修改不同于VI而类似于windows系统的记事本。
复制粘贴都用鼠标就可以了。保存是ctrl+s
。
打开hadoop-env.sh
在文件最后添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
export HADOOP_HOME=/user/hadoop/hadoop-3.3.1
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
其中JAVA_HOME
和HADOOP_HOME
请根据自己情况来写。
打开core-site.xml
在<configuration></configuration>
之间输入下面的内容:
<property>
<name>hadoop.tmp.dir</name>
<value>/user/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.64.60:9000/</value>
</property>
根据自己情况修改value标签内的内容。
打开hdfs-site.xml
在最后加入以下内容:
<configuration> <property> <name>yarn.resourcemanager.admin.address</name> <value>192.168.64.60:9001</value> </property> <property> <name>dfs.name.dir</name> <value>/user/hadoop/dfs/name</value> <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description> </property> <property> <name>dfs.data.dir</name> <value>/user/hadoop/dfs/data</value> <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> <description>need not permissions</description> </property> </configuration>
上面内容提供了<configuration></configuration>
,把之前的删了就好了。
还是把value标签自己改了。
打开yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <description>The address of the applications manager interface in the RM.</description> <name>yarn.resourcemanager.address</name> <value>192.168.64.60:8032</value> </property> <property> <description>The address of the scheduler interface.</description> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.64.60:8030</value> </property> <property> <description>The http address of the RM web application.</description> <name>yarn.resourcemanager.webapp.address</name> <value>192.168.64.60:8088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.64.60:8031</value> </property> <property> <description>The address of the RM admin interface.</description> <name>yarn.resourcemanager.admin.address</name> <value>192.168.64.60:8033</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> <discription>every node memery size(MB) default is 8182MB</discription> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
修改value的IP地址。
打开mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.64.60:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/user/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改value中的ip及位置。
打开workers
Slave1-60
Slave2-60
把两个从节点的主机名或者IP存进去。
最后输入hdfs
如果没有ERROR就是成功;如果失败根据提示来看什么变量设置错误了,再改包括.bashrc
在内的配置文件。注意hdfs
指令可以使用只能代表你的Hadoop路径和JAVA_HOME设置成功,不代表一定能运行Hadoop,还得看配置文件是否正确。
在/user/hadoop/hadoop-3.3.1/etc/hadoop/
目录下打开终端。
之前已经设置了SSH免密登录,现在就派到用场了(当然这不是主要的),我可以直接把主机的文件分享到从机上。
直接复制以下指令到终端(鼠标中键),其中需要修改的是Slave1-60(改为自己的从机主机名或ip),后面的是存放在从机的地址(必须先在从机上完成8.1-8.4保证从机有这个目录)。
scp hadoop-env.sh root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp core-site.xml root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp hdfs-site.xml root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp mapred-site.xml root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp yarn-site.xml root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp workers root@Slave1-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
如果配置错误了需要修改,直接重新键入指令就可以了,会自动覆盖。
然后再传递给从机2一份:
scp hadoop-env.sh root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp core-site.xml root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp hdfs-site.xml root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp mapred-site.xml root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp yarn-site.xml root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
scp workers root@Slave2-60:/user/hadoop/hadoop-3.3.1/etc/hadoop/
该操作需要重复三次(实验需要一个Master两个Slave……)
在每台虚拟机上都使用终端输入指令hdfs namenode -format
。
如果失败请查看自己的配置文件是否全部修改正确!Hadoop地址、JAVA_HOME之类的请仔细对照自己的实际情况!
如果成功,会出现以下界面:
所有的机器都完成了初始化之后进行下一步。
进入/user/hadoop/hadoop-3.3.1/sbin
目录(如果自己能搞明白自己在什么目录完全可以自己掌控,以下的操作完全可以 在~路径下./user/hadoop/hadoop-3.3.1/sbin/start-all.sh
)
在sbin目录下右键进入终端,使用指令./start-all.sh
启动Hadoop
在终端使用输入jps
,如果显示bash: jps: command not found...
,就使用指令yum install -y java-1.8.0-openjdk-devel
。如果仍然不成功,看一下配置文件的IP和路径是不是与自己的匹配。
如果在主机使用jps
可以看到如下进程:
并且在两个从机使用jps
可以看到如下进程:
就说明完成了任务。
操作在主机上
此时通过浏览器访问192.168.64.60:9870
来查看(主机的主机名或IP:9870)。
可以尝试使用192.168.64.60:50070
,Hadoop2.x使用的是50070端口。
如果还不行,看看防火墙是否关闭。一定是jps都显示上述的进程该网页才会生效。
需要安装VMware Tools,具体怎么做不多做说明,安装完成就能直接传输文件了。
往虚拟机中拖文件可能会报错,点一下重试就好了。
一般来说就是没有datanode或者namenode之类的问题,常见于是复制别人的文件、重新装了一遍Hadoop。
有两种情况:
一种是你的配置文件有问题,IP或者自己的Hadoop路径没有写对(认真核查!一个字母错误都可能导致无法成功!),找到错误然后重新分享(参照8.6)
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
可以尝试使用192.168.64.60:50070
,Hadoop2.x使用的是50070端口。
如果还不行,看看防火墙是否关闭。一定是jps都显示上述的进程该网页才会生效。
需要安装VMware Tools,具体怎么做不多做说明,安装完成就能直接传输文件了。
往虚拟机中拖文件可能会报错,点一下重试就好了。
一般来说就是没有datanode或者namenode之类的问题,常见于是复制别人的文件、重新装了一遍Hadoop。
有两种情况:
一种是你的配置文件有问题,IP或者自己的Hadoop路径没有写对(认真核查!一个字母错误都可能导致无法成功!),找到错误然后重新分享(参照8.6)
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
给大家整理的视频资料:
[外链图片转存中…(img-S1JveMde-1715455401597)]
给大家整理的电子书资料:
[外链图片转存中…(img-NXEoIfDv-1715455401597)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。