2024年最新03_Linux ARM架构-安装elasticsearch 7,深入解析Linux运维-AutoLayout

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

vi config/elasticsearch.yml

在elasticsearch.yml 文件最后面添加配置

#设置为false以禁用X-Pack机器学习功能。
xpack.ml.enabled: false

然后重新启动,当看到如下提示则说明启动ok,若是出现 exception during geoip databases update 错误,请参考文末的5.5章节(部署时可能出现的错误解决方法)。

122dc8fbf51feb20654f132e96dc439c.png

新开一个xshell连接,本地验证是否启动成功

curl 'http://127.0.0.1:9200'

出现如下画面则说明简单验证elasticsearch 启动成功,说明该版本的安装包是可以运行的。

b0f56bd5ab02fec478ac8a07c56b0444.png

5、正式部署elsaticsearch

如果服务器配置了弹性IP ,需要拿到本服务器的内网ip,不然会启动不起来,访问的话照样是可以用弹性ip进行访问。

(1)获取本服务器内网ip地址

使用ifconfig 命令查看ip地址时,首先要确保登陆用户为root,因为ifconfig在etc目录下

su root
ifconfig
(2)elasticsearch.yml 配置文件增加配置

完整的配置如下

cluster.name: nanshanPre
node.name: es01
node.master: true
node.data: true
path.data: /usr/local/geoStar/elasticsearch-7.16.0/data
path.logs: /usr/local/geoStar/elasticsearch-7.16.0/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.10.70
http.port: 9200
#设置节点间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.10.70:9300","192.168.10.187:9200"]
cluster.initial_master_nodes: es01
action.destructive_requires_name: true
## 开启跨域访问(配置文件末尾添加即可)
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置为false以禁用X-Pack机器学习功能。
xpack.ml.enabled: false
#此版本将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息,若是不需要则要设置为false
ingest.geoip.downloader.enabled: false
(3)启动es主节点

成功如下图

#前台启动的方式
bin/elasticsearch
#后台启动方式(推荐使用)
bin/elasticsearch -d

cd88d64a88c09a4c1efeea2e7d391d9b.png

(4)部署其他节点

其他节点和主节点的部署步骤是一样的,只是需要把elasticsearch.yml 配置文件的节点名称、IP地址等信息修改一下,在这里我就不一一叙述。以下是第二个节点的配置文件

cluster.name: nanshanPre
node.name: es02
node.master: true
node.data: true
path.data: /usr/local/geoStar/elasticsearch-7.16.0/data
path.logs: /usr/local/geoStar/elasticsearch-7.16.0/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.10.187
http.port: 9200
#设置节点间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.10.70:9300","192.168.10.187:9200"]
cluster.initial_master_nodes: es01
action.destructive_requires_name: true
### 开启跨域访问(配置文件末尾添加即可)
http.cors.enabled: true
http.cors.allow-origin: "*"
##设置为false以禁用X-Pack机器学习功能。
xpack.ml.enabled: false
##此版本将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息,若是不需要则要设置为false
ingest.geoip.downloader.enabled: false
(5)部署时可能出现的错误解决方法

a、最大虚拟内存面积vm不足

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2021-11-14T13:36:28,468][INFO ][o.e.b.BootstrapChecks    ] [node-1] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2021-11-14T13:36:28,473][ERROR][o.e.b.Bootstrap          ] [node-1] node validation exception
[1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法:

需要切换到root用户修改配置。修改/etc/security/limits.conf 文件

vi /etc/security/limits.conf

添加内容如下所示。

* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

修改 /etc/sysctl.conf 文件。增加

vm.max_map_count=262145

8fc2fcab802c1020a3afa91aaa1c822a.png

修改完成使用命令:sysctl -p 刷新使用

b、配置文件ip地址写的不对

org.elasticsearch.bootstrap.StartupException: BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];

org.elasticsearch.bootstrap.StartupException: BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];
  at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:174) ~[elasticsearch-7.6.1.jar:7.6.1]
  at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161) ~[elasticsearch-7.6.1.jar:7.6.1]
  at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.6.1.jar:7.6.1]
  at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125) ~[elasticsearch-cli-7.6.1.jar:7.6.1]
  at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.6.1.jar:7.6.1]
  at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126) ~[elasticsearch-7.6.1.jar:7.6.1]
  at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.6.1.jar:7.6.1]
BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];
Likely root cause: java.net.BindException: 无法指定被请求的地址
  at sun.nio.ch.Net.bind0(Native Method)
  at sun.nio.ch.Net.bind(Net.java:433)
  at sun.nio.ch.Net.bind(Net.java:425)
  at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
  at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
  at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:551)
  at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1346)
  at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:503)
  at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:488)
  at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:985)
  at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:247)
  at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:344)
  at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
  at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510)
  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518)
  at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
  at java.lang.Thread.run(Thread.java:748)

解决办法:使用ifconfig 查看本机内网ip,替换到写错的ip

c、exception during geoip databases update 错误

7.16.0版本将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息,若是不需要则要设置为false

#此版本将GeoIp功能默认开启了采集。在默认的启动下是会去官网的默认地址下获取最新的Ip的GEO信息,若是不需要则要设置为false
ingest.geoip.downloader.enabled: false

6、X-Pack 安全配置

X-Pack 安全配置和之前设置的方式是一样的,在这里我就不一一叙述了。请参考以下文章中关于X-Paxk安全配置的内容。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

安全配置和之前设置的方式是一样的,在这里我就不一一叙述了。请参考以下文章中关于X-Paxk安全配置的内容。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Ubuntu 18.04 操作系统下,使用 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 交叉编译 Qt 5.6.2 的流程: 1. 下载 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 工具链,并解压到某个目录下。 2. 安装 Qt 5.6.2 的依赖库: ``` sudo apt-get update sudo apt-get install build-essential perl python git sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxslt1-dev libgl1-mesa-dev libglu1-mesa-dev libsqlite3-dev libmysqlclient-dev libpq-dev libiodbc2-dev libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxrandr-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-ugly1.0-dev gstreamer1.0-libav gstreamer1.0-alsa gstreamer1.0-pulseaudio libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-ugly1.0-dev ``` 3. 下载 Qt 5.6.2 的源代码,并解压到某个目录下。 4. 进入 Qt 5.6.2 的源代码目录,执行以下命令: ``` ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/path/to/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /path/to/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5arm -no-xcb -no-pch -no-icu -no-gif -no-libjpeg -no-libpng -no-harfbuzz -no-openssl -no-qml-debug -nomake examples -nomake tests ``` 其中,/path/to/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 是 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 工具链的路径,/path/to/sysroot 是交叉编译环境的根文件系统路径。 5. 执行 make 命令进行编译: ``` make -j4 ``` 其中,-j4 表示使用 4 个线程进行编译。 6. 执行 make install 命令进行安装: ``` sudo make install ``` 7. 完成后,在 /usr/local/qt5arm 目录下会生成 Qt 5.6.2 的安装文件。把该目录添加到交叉编译环境的 PATH 环境变量中即可使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值