欢迎光临散文网 会员登陆 & 注册

JAVA后台开发学习日志 21-09-23 学习elasticsearch 之 安装环境-1

2021-09-23 16:29 作者:mayoiwill  | 我要投稿

最近有点空了,打算在家里电脑上搭建一个JAVA开发环境。以前只在公司里做过,在家里搞还是有很多不一样的地方。因此把过程记录分享出来。

这个系列不是教学,只是自己记的日志,搞到哪里就记到哪里。在系统性和全面性上肯定是不足的。不过读者如果有相关问题,也欢迎留言讨论。

这个系列我们打算是以目标驱动的方式来做。我们先有一个最终目标,之后从因果关系上来推导出我们目前需要做的事情。这种逆向思考的过程我觉得是特别重要的,特别适合新入门的读者参考。然而,我不会在文档中注明非常明确的命令,1是因为这些命令可能和你的环境不相符,比如我想装在D盘,你想装在E盘。我还得花时间介绍这条命令中哪些地方需要调整。这不是我的初衷,因此需要读者有一定的bash经验。2,我懒。但是,我保证以下内容在我本机肯定都是成功的,有一些比较特别的注意点我也会写出。


以下是我们第一阶段的终极目标:

- 我们想做一个站内搜索的功能模块,需要使用全文索引的能力。例如站内有一些文档doc,用户想用关键词等条件来检索哪些doc是match的。市面上做这个比较好的是elasticsearch,因此,我们想在本机搭建一个elasticsearch的环境

好的,以上就是我们的目标,为了完成这个目标,我们倒推一下需要干什么:

1,需要minikube,原因如下。elasticsearch我们想安装在k8s的集群上,有两个理由,1,这是比较贴近实际工作环境的情况,顺便也熟悉一下k8s的运维。2,家用电脑除了工作还要娱乐,我们想有一个统一的开关,如果不启动就不要一直占用资源。minikube可以比较好的做到这一点。我们也可以在网上先查一查elasticsearch on minikube等关键词,确认这个事情是可行的,不过我们先不看具体怎么搞。我们下面一步一步来。

2,安装minikube,根据官方网站来操作。我们一直安照先官方,再民间的顺序来找资料。官方网站要求下载一个minikube.exe,下载好了运行,发现如下报错。


```

* Microsoft Windows 10 Home China 10.0.19043 Build 19043 上的 minikube v1.23.2

* Unable to pick a default driver. Here is what was considered, in preference order:

  - docker: Not installed: exec: "docker": executable file not found in %PATH%

  - hyperv: Not installed: C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @(Get-Wm

iobject Win32_ComputerSystem).HypervisorPresent returned "False\r\n"

  - vmware: Not installed: exec: "docker-machine-driver-vmware": executable file not found in %PATH%

  - virtualbox: Not installed: unable to find VBoxManage in $PATH

  - podman: Not installed: exec: "podman": executable file not found in %PATH%


X Exiting due to DRV_NOT_DETECTED: No possible driver was detected. Try specifying --driver, or see https://minikube.sig

s.k8s.io/docs/start/

```


3,根据上述报错提示,我们发现minikube依赖于某种虚拟机技术。由于我们不太关心minikube往下(底层)的运行环境,因此我们可以找一种比较适合自己的虚拟机技术,不一定和生产环境相符合了。因此我们选择hyper-v。

4,安装hyper-v,网上找到相关文档,发现有两个问题需要解决:1,bios打开虚拟化支持,2,win10 home版需要特别的启用技巧。我们分别来处理上述两个任务。

5,bios打开虚拟化支持,这一步在我的电脑上还是比较简单的,先运行systeminfo检查是否已经打开。之后去bios,找cpu相关的高级设置,找intel虚拟化相关的选择,enable就好了。具体各家bios不同,有些主板/CPU可能做不了。但我这台是可以的,打开后再运行systeminfo,发现4项要求全部满足了。

6,win10 home打开hyper-v功能。首先,在启用windows功能里面,我们是找不到hyper-v的(这是因为我的OS是win10 home版),网上找相关资料。现在传的最多的是要写一个cmd文件,但不幸的是由于二手信息传的太多了,命令的排版也出了问题。因此我们把这个cmd文件分开来解读一下。发现它实际上有以下3步组成:1,列出所有hyper-v相关的安装包,2,启用上述安装包,3,启用hyper-v。

7,我们先进行第一步,列出所有安装包并放到一个txt文件中,执行

```

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

```

注意这是个dos命令。检查hyper-v.txt,看看是不是列出了一堆安装包

8,第二步,启用这些安装包

```

for /f %i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:”%SystemRoot%\servicing\Packages\%i”

```

注意这是第二个命令,要换行的。另外有些排版问题导致你找到的版本可能:1,%i错写为%%i,2,'findstr 前面的应该是英文单引号。

如果成功执行,会看到很多类似如下的信息

```

正在处理 1 (共 1) - 正在添加程序包 Microsoft-Hyper-V-Services-Package~31bf3856ad364e35~amd64~~10.0.19041.1237

[==========================100.0%==========================]

操作成功完成。

```

9,启用hyper-v,执行

```

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

```

成功后重启电脑

检查 启用windows功能 中有没有hyper-v,是否已经勾选

10,再次尝试启动minikube,另外我已经安装了ubuntu,因此以下使用bash。

```

* Microsoft Windows 10 Home China 10.0.19043 Build 19043 上的 minikube v1.23.2

* 自动选择 hyperv 驱动

* 正在下载 VM boot image...

    > minikube-v1.23.1.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s

    > minikube-v1.23.1.iso: 225.22 MiB / 225.22 MiB [] 100.00% 6.21 MiB p/s 36s

* Starting control plane node minikube in cluster minikube

* Downloading Kubernetes v1.22.2 preload ...

    > preloaded-images-k8s-v13-v1...: 511.84 MiB / 511.84 MiB  100.00% 6.73 MiB

* Creating hyperv VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...

* 正在 Docker 20.10.8 中准备 Kubernetes v1.22.2…

  - Generating certificates and keys ...

  - Booting up control plane ...

  - Configuring RBAC rules ...

* Verifying Kubernetes components...

  - Using image gcr.io/k8s-minikube/storage-provisioner:v5

* Enabled addons: storage-provisioner, default-storageclass

* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'

* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

```

出现类似如上的提示。可见它下载了minikube的镜像和k8s的镜像。并且已经启动成功了。

这里我们先停一下,给自己增加三个任务:1,校验环境,2,校验hyper-v,3,停止minikube


插一句,有一些教程,写到start了某个东西就结束了,我觉得这种教程特别不负责任。更好的作法是,安装,启动,校验,停止。这4步全部做完。校验这一步,一定要检查这个程序占用了哪些系统资源,CPU,内存,硬盘这些。OK我们开始。

11,校验minikube,上面提示我们kubectl没装,没关系,我们就用minikube kubectl的方式干活,反正是个学习环境,记得上正式了把minikube拿掉就行了。我们执行它推荐的指令

```

minikube kubectl -- get pods -A

```

好了报错了,两个原因,1,我们是windows,需要minikube.exe 2,我们没加PATH。没关系,换成以下指令

```

 ./minikube.exe kubectl -- get pods -A

```

运行OK,得到以下结果

```

    > kubectl.exe.sha256: 64 B / 64 B [----------------------] 100.00% ? p/s 0s

    > kubectl.exe: 46.11 MiB / 46.11 MiB [----------] 100.00% 5.53 MiB p/s 8.5s

NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE

kube-system   coredns-78fcd69978-5mkcl           1/1     Running   0          6m8s

kube-system   etcd-minikube                      1/1     Running   0          6m23s

kube-system   kube-apiserver-minikube            1/1     Running   0          6m23s

kube-system   kube-controller-manager-minikube   1/1     Running   0          6m21s

kube-system   kube-proxy-6lcs5                   1/1     Running   0          6m8s

kube-system   kube-scheduler-minikube            1/1     Running   0          6m22s

kube-system   storage-provisioner                1/1     Running   0          6m19s

```

挺智能的,先去下载了一个kubectl再运行。再来一遍试试,可见下载的过程就没有了。

12,检查hyper-v,之前看到minikube申请了20G的硬盘,我想看看用的是哪个盘。打开windows的hyper-v界面。在搜索里输入hyper-v,启动hyper-v管理器。可以看到我们有一个minikube的实例正在运行中。懒得截图了,可以看到这个虚拟机实例有两个IDE,一个是硬盘,一个是minikube的安装iso。两个都在C盘用户目录下,minikube新建了一个.minikube目录。我C盘暂时还够用,以后不够用了再看怎么移动的别的盘吧。总之现在我们心里有底了。

13,停止minikube,试一下minikube stop

```

* Stopping node "minikube"  ...

* 正在通过 SSH 关闭“minikube”…

* 1 nodes stopped.

```

再检查下hyper-v的管理界面,发现minikube实例的状态是 关机。好了,这下不占用CPU和内存了,不影响我们玩游戏了。


OK,完成了minikube的安装,算是一个阶段性的成功,今天的学习就先到这里。我们后面再继续看怎么玩minikube。后续的计划是先装个mysql造点数据。以便elasticsearch根据这些数据创建索引。但是具体怎么弄,我也不清楚呢,边摸索边记录吧。

JAVA后台开发学习日志 21-09-23 学习elasticsearch 之 安装环境-1的评论 (共 条)

分享到微博请遵守国家法律