环境准备

安装JDK

在安装Kafka之前需要先安装JDK,JDK的安装与配置,请参考文章:https://blog.csdn.net/pengjunlee/article/details/53932094

下载安装包

官网下载:http://kafka.apache.org/downloads

单节点安装

Kafka当前的稳定版本是 2.4.0,下载其二进制安装包 kafka_2.13-2.4.0.tgz 。

# 下载 kafka_2.13-2.4.0.tgz 安装包到 /usr/local/src/ 目录
[root@localhost ~]# wget -P /usr/local/src/ http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.0/kafka_2.13-2.4.0.tgz
# 将 kafka_2.13-2.4.0.tgz 安装包解压到 /usr/local/ 目录
[root@localhost ~]# tar -zxvf /usr/local/src/kafka_2.13-2.4.0.tgz -C /usr/local/
# 切换至 Kafka 解压的 /bin 目录
[root@localhost kafka_2.13-2.4.0]# cd /usr/local/kafka_2.13-2.4.0/bin/

启动Zookeeper

在启动Kafka之前需要先启动 Zookeeper,在此直接使用Kafka安装包中内嵌的 Zookeeper。

# 查看 ./zookeeper-server-start.sh 命令的用法
[root@localhost bin]# ./zookeeper-server-start.sh
USAGE: ./zookeeper-server-start.sh [-daemon] zookeeper.properties
# 启动 Zookeeper
[root@localhost bin]# ./zookeeper-server-start.sh ../config/zookeeper.properties

启动Kafka

# 查看 ./kafka-server-start.sh 命令的用法
[root@localhost bin]# ./kafka-server-start.sh
USAGE: ./kafka-server-start.sh [-daemon] server.properties [--override property=value]*
# 启动 Kafka
[root@localhost bin]# ./kafka-server-start.sh ../config/server.properties

验证是否安装成功

# 首先创建一个 Topic ,其名称为 topic1
[root@localhost bin]# ./kafka-topics.sh --zookeeper localhost:2181 --create --topic topic1 --partitions 3 --replication-factor 1
Created topic topic1.
# 查看 topic1 的配置信息
[root@localhost bin]# ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic topic1
Topic: topic1   PartitionCount: 3   ReplicationFactor: 1    Configs: Topic: topic1  Partition: 0    Leader: 0   Replicas: 0 Isr: 0Topic: topic1 Partition: 1    Leader: 0   Replicas: 0 Isr: 0Topic: topic1 Partition: 2    Leader: 0   Replicas: 0 Isr: 0

Kafka提供了一个 Console 消费者,它会将消费的消息内容打印出来。接下来,我们使用它来验证安装好的Kafka是否能正常工作。

# 启动一个 Console 消费者,消费 topic1 主题
[root@localhost bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1

打开一个新的命令行窗口并启动一个 Console 生产者,开始创建消息。

# 启动一个 Console 生产者,向 topic1 主题写入消息
[root@localhost bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic topic1
# 创建两条消息内容
>hello kafka
>bye!
>

在 Console 消费者的命令行窗口中若能同步看到 Console 生产者创建的消息则证明Kafka安装成功。

[root@localhost bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1
# 在 Console 消费者的命令行窗口中同步显示 Console 生产者创建的消息
hello kafka
bye!

使用已部署好的Zookeeper集群

在实际项目中,我们的服务器上通常都已经安装好了Zookeeper集群,在这种情况下,我们一般不会直接使用的Kafka自带的Zookeeper来启动Kafka服务,而是复用已经部署好的Zookeeper集群。此时,需要修改一下 config/server.properties 配置。

zookeeper.connect=172.16.250.233:2181,172.16.250.234:2181,172.16.250.237:2181

使用ClusterShell部署Kafka集群

3个节点服务器信息如下:

IP Address User Name
172.16.250.233 root
172.16.250.234 root
172.16.250.237 root

SSH免密码登录配置

在 Kafka 集群中的各个节点之间需要使用 SSH 频繁地进行通信,为了避免每次的通信都要求输入密码,需要对各个节点进行 SSH 免密码登录配置。

开启sshd秘钥认证

在进行SSH免密码登录配置之前,需要先开启 sshd 秘钥认证:编辑每一台机器的  /etc/ssh/sshd_config 文件,去掉下面这3行前的 “#” 注释。

   # RSAAuthentication yes# PubkeyAuthentication yes# AuthorizedKeysFile      .ssh/authorized_keys

修改完成后保存,并执行以下命令重启 sshd 服务使修改生效。

systemctl restart  sshd              # 重启 sshd 服务

创建免密码登录账户

由于 Kafka 集群中的各节点默认会使用当前的账号SSH免密码登录其它节点,所以需要在每个节点中创建一个相同的供 Kafka 集群专用的账户,本例中为了操作方便,直接使用的 root 用户 。

生成公钥和私钥

执行 ssh-keygen -t rsa 命令,生成用来SSH免密码登录的公钥和私钥。

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
88:e5:23:fb:c9:52:e5:fc:f0:64:c4:a8:a4:d6:8e:16 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|      .  o       |
|     +..o o      |
|    o++=S.       |
|    Eo+.+ o      |
|   ..=   *       |
|    +o..  o      |
|   . .+          |
+-----------------+

上述秘钥生成过程中,无需指定秘钥存放目录和口令密码,直接回车,命令执行完毕后会在 root 账户的家目录中(/root/.ssh)生成两个文件:

[root@localhost ~]# ls /root/.ssh
id_rsa  id_rsa.pub  known_hosts
  • id_rsa: 私钥
  • id_rsa.pub:公钥

将公钥导入到认证文件(172.16.250.233)

秘钥生成之后,在 172.16.250.233 主机上执行以下命令将每台机器的公钥都拷贝到 172.16.250.233 主机的认证文件 authorized_keys 中。

[root@localhost ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@localhost ~]# ssh root@172.16.250.234 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
root@172.16.250.234's password:      # 键入该服务器 root 用户的密码
[root@localhost ~]# ssh root@172.16.250.237 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
The authenticity of host '172.16.250.237 (172.16.250.237)' can't be established.
ECDSA key fingerprint is 41:f9:3e:bf:1c:58:75:a6:09:76:de:7a:bd:eb:00:00.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.250.237' (ECDSA) to the list of known hosts.
root@172.16.250.237's password:      # 键入该服务器 root 用户的密码
[root@localhost ~]# 

查看 authorized_keys 文件内容如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDctNy/ig2OIQ+E1gQSgmjNwlflvNT3ssDl2ho5tRDuo9YLCyDwcygw7I6jQzKOv5kBqhbl8lis7N0Ymk736xIwYEvZBc1ejFU8vfL8GgvX8+ltT7d/QSUZKnp14JmVZj0wekAOLGsnlhYp1TQGtGLMq2F3l4e1ltLaPcsYY9tEN6meihKD6mivTHVR+K+v3yP6mpWCRiIawaqYVjJj27FRBKQwvH5GGUUrC0oAlKRZhvS7Vr3GcOf1kJOdBr5VTYZS6q/8Hwx0XDnNsdlwiEM/W7KbxJpjwrV3SW/CcZoMUbUBwDC5IHyClmMyVnKzgE27zKqRl4y7FqUY2AM1ZxLp root@localhost.localdomain
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpjVIZwi3yQXgQXYzjQbfzt3kb+FJb1xglTzgyQGAk8g8Qv4EmAiqo7l5wapDhnsTUifu7t0WJYd1VY2UlD4+xqd0RIimVSm4OLoi8yF9oSoffaz+JWEJOva9F8GRjByz7Uf41e4mZut3d4RZjVqoCKh7LkPcoBUZ4ZSNiLvEbHQSWM/eDOyGhRiHTe+QYMuf88rZ6xhjO7Z9/iNYhOkflPa6GJo5eNJi2W1dI1pYYY53sgoMHbkTLvlrCnjA1mf7iTCC8mIb9gu3DKbss/Tqp/tnYBjtvIWsD7TeqOHeCno3rvJaJCU1ynvLAit5OJkHHXyq78YuOxxvjmzDJvpkr root@localhost.localdomain
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbLY2wI+VvKAp1yht/q64GnPNQUIerWiuaZx8UHZHTgz4R8VtMS1WC5RvuYqFs2a6IwoUlTeAG06MTPjwPjp6vAiuTm+EqGLeBRJpgpI3ULZ2WJxpqMAJJjR/qeTWCM1BxsKHKctKMvbwIb10v436OMR86CX47cmcvcx/gOw/DJiNqnE9oK8mBvRbvgzh9OVPwQQk13rdROaUzBCEnFeGVMd2oxaQ85zQx6cCyF3kCAzmNkjfiNn9+wp3z/oqwYSkcnfXrRiEQPJ//ZHk7p/ZR6oorDUdCzJKuddOleEgX4V6eqPhJolHF3/8bF0LzB/zcxNNNiwxZiAgxSI8gwLPl root@localhost.localdomain

修改其中各个服务器的IP地址:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDctNy/ig2OIQ+E1gQSgmjNwlflvNT3ssDl2ho5tRDuo9YLCyDwcygw7I6jQzKOv5kBqhbl8lis7N0Ymk736xIwYEvZBc1ejFU8vfL8GgvX8+ltT7d/QSUZKnp14JmVZj0wekAOLGsnlhYp1TQGtGLMq2F3l4e1ltLaPcsYY9tEN6meihKD6mivTHVR+K+v3yP6mpWCRiIawaqYVjJj27FRBKQwvH5GGUUrC0oAlKRZhvS7Vr3GcOf1kJOdBr5VTYZS6q/8Hwx0XDnNsdlwiEM/W7KbxJpjwrV3SW/CcZoMUbUBwDC5IHyClmMyVnKzgE27zKqRl4y7FqUY2AM1ZxLp root@172.16.250.233
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpjVIZwi3yQXgQXYzjQbfzt3kb+FJb1xglTzgyQGAk8g8Qv4EmAiqo7l5wapDhnsTUifu7t0WJYd1VY2UlD4+xqd0RIimVSm4OLoi8yF9oSoffaz+JWEJOva9F8GRjByz7Uf41e4mZut3d4RZjVqoCKh7LkPcoBUZ4ZSNiLvEbHQSWM/eDOyGhRiHTe+QYMuf88rZ6xhjO7Z9/iNYhOkflPa6GJo5eNJi2W1dI1pYYY53sgoMHbkTLvlrCnjA1mf7iTCC8mIb9gu3DKbss/Tqp/tnYBjtvIWsD7TeqOHeCno3rvJaJCU1ynvLAit5OJkHHXyq78YuOxxvjmzDJvpkr root@172.16.250.234
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbLY2wI+VvKAp1yht/q64GnPNQUIerWiuaZx8UHZHTgz4R8VtMS1WC5RvuYqFs2a6IwoUlTeAG06MTPjwPjp6vAiuTm+EqGLeBRJpgpI3ULZ2WJxpqMAJJjR/qeTWCM1BxsKHKctKMvbwIb10v436OMR86CX47cmcvcx/gOw/DJiNqnE9oK8mBvRbvgzh9OVPwQQk13rdROaUzBCEnFeGVMd2oxaQ85zQx6cCyF3kCAzmNkjfiNn9+wp3z/oqwYSkcnfXrRiEQPJ//ZHk7p/ZR6oorDUdCzJKuddOleEgX4V6eqPhJolHF3/8bF0LzB/zcxNNNiwxZiAgxSI8gwLPl root@172.16.250.237

设置认证文件访问权限(172.16.250.233)

在 172.16.250.233 主机上执行如下命令,对认证文件的操作权限进行设置:

[root@localhost ~]# chmod 700 /root/.ssh
[root@localhost ~]# chmod 600 /root/.ssh/authorized_keys

将认证文件复制到其他主机

在 172.16.250.233 主机上执行以下命令将生成的 authorized_keys 文件复制到 172.16.250.234 和 172.16.250.237 主机上 。

[root@localhost ~]# scp /root/.ssh/authorized_keys root@172.16.250.234:/root/.ssh/authorized_keys
root@172.16.250.234's password:
authorized_keys                                                                                                                                                                                100% 1203     1.2KB/s   00:00
[root@localhost ~]# scp /root/.ssh/authorized_keys root@172.16.250.237:/root/.ssh/authorized_keys
root@172.16.250.237's password:
authorized_keys 

复制完成后,查看known_hosts中的主机列表,发现此时172.16.250.233 主机的 known_hosts 中仅有172.16.250.234 和172.16.250.237 两台主机的信息,缺少172.16.250.233 主机自身的信息。

172.16.250.234 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLCwNXd5foXYczn7wX3xzQ2hAiocLGOegUQrH0cItbjc8Tz2V0f6lCBRXhujblWp0M2uG+dDCGZoIiF3vH2Os8w=
172.16.250.237 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL6CsqwCWhrdjYuTSscBvBV2zw3Cc65JCKvipalOW2qXEtb1YB+PUlruB78Y7NBMFFf2Yh/jePMIofEQigOhCyY=

所以需要ssh免密登录一次将自身的主机信息添加到known_hosts列表中。

[root@localhost ~]# ssh 172.16.250.233

再次查看 172.16.250.233 主机的 known_hosts 主机列表, 172.16.250.233 主机自身的信息也被添加进来了。

172.16.250.234 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLCwNXd5foXYczn7wX3xzQ2hAiocLGOegUQrH0cItbjc8Tz2V0f6lCBRXhujblWp0M2uG+dDCGZoIiF3vH2Os8w=
172.16.250.237 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL6CsqwCWhrdjYuTSscBvBV2zw3Cc65JCKvipalOW2qXEtb1YB+PUlruB78Y7NBMFFf2Yh/jePMIofEQigOhCyY=
172.16.250.233 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLKwyvKdYnXzYxbV2hoTaj3etYr5YTUvL0BNcdqOZfK5TIfg3yJdSKYC8AM6OmKYQHs8RxKjuaf47cPYs1OTURk=

在 172.16.250.233 主机上执行以下命令将生成的 known_hosts 文件也复制到 172.16.250.234 和 172.16.250.237 主机上 。

[root@localhost ~]# scp /root/.ssh/known_hosts root@172.16.250.234:/root/.ssh/known_hosts
known_hosts                                                                                                                                                                                    100%  528   503.0KB/s   00:00
[root@localhost ~]# scp /root/.ssh/known_hosts root@172.16.250.237:/root/.ssh/known_hosts
known_hosts

设置认证文件访问权限(234和237)

在 172.16.250.234 和 172.16.250.237 两台主机上分别执行如下命令,修改认证文件的访问权限。

[root@localhost ~]# chmod 700 /root/.ssh
[root@localhost ~]# chmod 600 /root/.ssh/authorized_keys

SSH免密码登录测试

在 172.16.250.237 主机上执行 ssh 172.16.250.234 命令就能够免密码登录 172.16.250.234 主机了。

[root@localhost ~]# ssh 172.16.250.234
Last login: Mon Dec 23 17:12:07 2019 from 172.16.250.233

SSH免密码登录详细配置,请参考文章:https://blog.csdn.net/pengjunlee/article/details/80919833

安装ClusterShell

在 172.16.250.233 主机上执行如下命令来安装ClusterShell。

yum -y install clustershell

若安装不成功,可以自己编译安装:https://blog.csdn.net/pengjunlee/article/details/103670636

ClusterShell安装完成后 ,编辑 /etc/clustershell/groups 文件。

[root@localhost clustershell-1.7.3]# vim /etc/clustershell/groups

在 /etc/clustershell/groups 文件中添加一个 Kafka 组。

kafka: 172.16.250.233 172.16.250.234 172.16.250.237

安装并启动Zookeeper集群

Zookeeper集群的详细安装配置过程,请参考文章:https://blog.csdn.net/pengjunlee/article/details/81637024

安装并配置Kafka集群

下载安装包

在 172.16.250.233 主机上执行如下命令下载Kafka的安装包。

# 下载 kafka_2.13-2.4.0.tgz 安装包到 /usr/local/src/ 目录
[root@localhost ~]# wget -P /usr/local/src/ http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.0/kafka_2.13-2.4.0.tgz
# 将 kafka_2.13-2.4.0.tgz 安装包解压到 /usr/local/ 目录
[root@localhost ~]# tar -zxvf /usr/local/src/kafka_2.13-2.4.0.tgz -C /usr/local/
# 切换至 Kafka 解压的 /bin 目录
[root@localhost kafka_2.13-2.4.0]# cd /usr/local/kafka_2.13-2.4.0/bin/

集群配置

使用 vim config/server.properties 命令编辑 config/server.properties 配置,主要修改如下5个配置项。

# Kafka 服务器的唯一ID
broker.id=0
# Kafka 的监听地址
listeners=PLAINTEXT://172.16.250.233:9092
# Kafka 供生产者和消费者访问的地址
advertised.listeners=PLAINTEXT://172.16.250.233:9092
# Zookeeper 集群地址
zookeeper.connect=172.16.250.233:2181,172.16.250.234:2181,172.16.250.237:2181
# 消息数据保存目录
log.dirs=/tmp/kafka-logs

接下来将 172.16.250.233 主机上的 /usr/local/kafka_2.13-2.4.0/ 目录复制到 另外两台机器上。

[root@localhost kafka_2.13-2.4.0]# clush -g kafka --copy /usr/local/kafka_2.13-2.4.0/

使用 vim config/server.properties 命令,将 172.16.250.234 和 172.16.250.237 两台服务器上 Kafka 的 broker.id 分别改为 1 和 2 ,并将 listeners 和 advertised.listeners 两个配置项中的Host改为它们自己的IP。

启动集群

我们可以使用 ClusterShell 来启动集群,若 ClusterShell 不好使就自己挨个启动一下:

[root@localhost ~]# clush -g kafka /usr/local/kafka_2.13-2.4.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.13-2.4.0/config/server.properties

确认集群启动成功之后创建一个topic进行测试。

[root@localhost local]# /usr/local/kafka_2.13-2.4.0/bin/kafka-topics.sh --zookeeper 172.16.250.233:2181 --create --topic topic1 --partitions 3 --replication-factor 2
Created topic topic1.
[root@localhost local]# /usr/local/kafka_2.13-2.4.0/bin/kafka-topics.sh --zookeeper 172.16.250.233:2181 --describe --topic topic1
Topic: topic1   PartitionCount: 3   ReplicationFactor: 2    Configs: Topic: topic1  Partition: 0    Leader: 1   Replicas: 1,2   Isr: 1,2Topic: topic1   Partition: 1    Leader: 2   Replicas: 2,0   Isr: 2,0Topic: topic1   Partition: 2    Leader: 0   Replicas: 0,1   Isr: 0,1

接下来,我们启动一个 Console 消费者。

# 启动一个 Console 消费者,消费 topic1 主题
[root@localhost bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1

再打开一个新的命令行窗口并启动一个 Console 生产者创建一条消息。

/usr/local/kafka_2.13-2.4.0/bin/kafka-console-producer.sh --broker-list 172.16.250.233:9092,172.16.250.234:9092,172.16.250.237:9092 --topic topic1
>hello kafka

在 Console 消费者的命令行窗口中若能同步看到 Console 生产者创建的消息则证明Kafka安装成功。

CentOS上安装部署Kafka相关推荐

  1. 使用虚拟机在CentOS上安装部署openGauss数据库指导(下)

    在上一篇中,我们使用VirtualBox下安装CentOS 7.8操作系统安装和网络配置完成,本文我们会基于此安装openGauss数据库. 1.5 操作系统环境准备 为了操作方便,可以使用SSH工具 ...

  2. CentOS上安装部署gitblit

    1.下载gitblit [root@localhost ~]# wget http://dl.bintray.com/gitblit/releases/gitblit-1.9.1.tar.gz 下载不 ...

  3. centos上安装supervisor来管理dotnetcore等应用程序

    supervisor 介绍: 这是一款用python编写的进程管理工具,可以守护他管理的所有进程,防止异常退出,以及提供一个可视化的web界面来手动管理,打开关闭重启各种应用,界面如下: 关于在cen ...

  4. 在Red Hat或CentOS上安装 MongoDB-4.x 社区版

    在Red Hat或CentOS上安装MongoDB社区版 目录 本文概述 注意事项 安装MongoDB 运行MongoDB 卸载MongoDB 概述 使用本教程,使用软件包管理器在Red Hat En ...

  5. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二) Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 ...

  6. CentOS上安装Docker及docker常用命令

    这里写目录标题 一.在CentOS上安装Docker Engine 1.Docker Engine安装 1.1 卸载以前的docker 1.2 安装方法 1.2.1 用repository方法安装 0 ...

  7. 在CentOS上安装和配置OpenNebula入门实例

    导读 我们提到的云计算一般有三种类型:软件即服务(Software as a service, SaaS),平台即服务(Platform as a Service, PaaS)和基础架构即服务(Inf ...

  8. CentOS上安装运行XWiKi

    现在XWiKi已经一行命令支持安装java -jar xwiki-enterprise-installer-generic-9.4-standard.jar. war安装我搞了三天都没有搞定,参考了& ...

  9. 循序渐进丨在openEuler 20.03操作系统上安装部署MogDB 2.1.1数据库

    关于MogDB MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款安稳易用的企业级关系型数据库,具备金融级高可用和全密态计算的极致安全.面向多核处理器的极致性能.AI自诊断 ...

最新文章

  1. SpringBean默认是单例的,高并发情况下,如何保证并发安全?
  2. Install NSCA
  3. 8.27 直播| 挖掘传统行业日志大数据的无限价值
  4. python中赋值不正确的_python中的“赋值与深浅拷贝”
  5. 添加文件然后自动打开
  6. 九十六、轻松搞定Python中的PPT办公自动化系列
  7. 添加右键菜单_如何在Windows文件夹的右键菜单中添加“打开PowerShell”
  8. python文件操作,自动关闭
  9. php oracle 中文字段,怎么解决php oracle乱码问题
  10. MySQL 日期时间类型
  11. centos php open_basedir,CentOS 5服务器安全基本设置
  12. 物联网将如何影响能源效率
  13. 人脸对齐(三)--AAM算法
  14. SQL Sever — 附加【如何导入外部文件数据库】
  15. android 联系人 拼音,Android 2.1 (Eclair)的中文联系人拼音检索问题
  16. 面向智能网联汽车边缘网络的分布式端-边协同算法
  17. 海盗比酒量(四重循环遍历)(有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶)
  18. 根据经纬度确定行政区域_使用高德地图api导入行政区域及经纬度
  19. 自动化测试岗位求职简历编写规范+注意事项,让你的简历脱颖而出
  20. windows10重装后锁定其他盘_云骑士新版一键重装win7系统教程

热门文章

  1. HTML+CSS大作业——旅游—我的家乡新密(15页)含论文 新密旅游网页设计制作 简单静态HTML网页作品 我的家乡网页作业成品 学生旅游网站模板
  2. python绘制球体_OpenGL三维球体数据生成与绘制【附源码】
  3. 购入计算机设备一批验收入库,购入并已验收入库的原材料如何做会计分录
  4. openpyxl版本问题
  5. 【特征匹配】BRIEF特征描述子原理及源码解析
  6. 3椭圆曲线密码学:ECDH和ECDSA
  7. Unity3D --对撞机/碰撞器 介绍
  8. eNSP-配置路由器console接口密码与vty接口密码以及ftp服务
  9. 2017年暑假实习面经: 去哪儿网(一面, 二面, HR面, Offer), 腾讯IEG(一面, GG...), 百度(一面, 二面, 三面, offer)
  10. 没流泪,不代表没眼泪;