CDH集成Elasticsearch/Kibana/ik分词器

一、Elasticsearch部署

版本介绍:

CDH6.2.1
CentOS7.5
ElasticSearch7.6.2
Kibana7.6.2
elasticsearch-analysis-ik7.6.2

CDH中没有官方提供的Elasticsearch的parcel包,但是问题不大,CDH提供了一个编译工具可以自行打parcel包。对于其他的分布式工具大部分都可以通过这种方式进行CDH安装,由CDH进行统一的分配、配置管理。
目前该方法适用于CDH5.X和6.X版本,对于6.X版本需要稍做修改,下面会有详细说明。

1.1 制作Elasticsearch的Parcel包和csd文件

1.1.1安装java、git、maven等,配置环境变量

这里java由于之前已经安装过,不做说明,具体可查linux安装java或之前CDH部署文档中有提到,git与maven的环境变量由于这里我们采用的是yum安装,不需要配置环境变量。
Git:

[root@cdh01 ~]#yum -y install git

检查git版本及是否安装成功(这里git版本不低于1.7):

[root@cdh01 ~]#git version 

Maven:

[root@cdh01 ~]yum -y install maven 

检查maven版本,这里我们用的是3.0.5,网上有用3.3系列,都可以

[root@cdh01 ~]# mvn -version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_212, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_212/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

1.1.2下载cm_ext

Cloudera提供的cm_ext工具,对生成的csd和parcel进行校验

[root@cdh01 ~]# mkdir -p /root/github/cloudera

[root@cdh01 ~]# cd /root/github/cloudera/

[root@cdh01 cloudera]# git clone git://github.com/cloudera/cm_ext.git

[root@cdh01 cloudera]# cd cm_ext/

[root@cdh01 cm_ext]# mvn clean package -Dmaven.test.skip=true

如果这里执行不行,就执行mvn package -Dmaven.test.skip=true

1.1.3 下载Elasticsearch安装包

[root@cdh01 cloudera]# mkdir elasticsearch
[root@cdh01 cloudera]# cd elasticsearch/

将elasticsearch包上传到/root/github/cloudera/elasticsearch目录下,我用的elasticsearch-7.6.2版本,贴上下载地址
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
可以采用wget命令直接下载,也可以下载到本地后上传到linux的/root/github/cloudera/elasticsearch目录下

1.1.4 下载制作Parcel包和CSD文件的脚本

[root@cdh01 elasticsearch]# git clone https://github.com/zhangrui153169/elasticsearch-parcel.git

注:这里如果执行失败,可以将https换成http或者git试试,如果再不行直接去官网下载

注意:1.1.3和1.1.4这里是/root/github/cloudera目录
下面是CDH6.X版本需要修改之处
对于CDH6.X版本需要进行两处修改:

将elasticsearch-parcel文件夹下的 /parcel-src/meta/parcel.json文件 中 "depends": "CDH (>= 5.0), CDH (<< 6.0)" 修改为 "depends": "CDH (>= 5.0), CDH (<< 10.0)"
将elasticsearch-parcel文件夹下的 /csd-src/descriptor/service.sd1 文件中 "cdhVersion": {"min":5} 修改为:"cdhVersion": {"min":6}

1.1.5 制作Elasticsearch的Parcel包和CSD文件并校验

[root@cdh01 elasticsearch]# cd elasticsearch-parcel/

这里最好不要复制,参考自己的文件tar包名称版本及路径,/root/github/cloudera/cm_ext一定要是自己的路径:

[root@cdh01 elasticsearch-parcel]# POINT_VERSION=5 VALIDATOR_DIR=/root/github/cloudera/cm_ext OS_VER=el7 PARCEL_NAME=ElasticSearch ./build-parcel.sh /root/github/cloudera/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz

[root@cdh01 elasticsearch-parcel]# VALIDATOR_DIR=/root/github/cloudera/cm_ext CSD_NAME=ElasticSearch ./build-csd.sh

OS_VER=el7 是指 linux 使用的Centos7.X版本

制作完成后,elasticsearch-parcel新增了build-parcelbuild-csd文件夹,查看:

1.2在Cloudera Manager中安装部署Elasticsearch服务

1.2.1将Parcel包:ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcelmanifest.json 文件部署到httpd服务中

[root@cdh01 ~]# mkdir -p /var/www/html/elasticsearch
[root@cdh01 ~]# cd /var/www/html/elasticsearch/
[root@cdh01 elasticsearch]# cp /root/github/cloudera/elasticsearch/elasticsearch-parcel/build-parcel/ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel ./
[root@cdh01 elasticsearch]# cp /root/github/cloudera/elasticsearch/elasticsearch-parcel/build-parcel/manifest.json ./
[root@cdh01 elasticsearch]# ll
总用量 289848
-rwxr-xr-x. 1 root root 296798031 4月  25 16:45 ELASTICSEARCH-0.0.5.elasticsearch.p0.5-el7.parcel
-rwxr-xr-x. 1 root root       483 4月  25 16:45 manifest.json
[root@cdh01 elasticsearch]# pwd
/var/www/html/elasticsearch

[root@cdh01 elasticsearch]#  python -m SimpleHTTPServer 8911

浏览器访问测试是否部署成功:
在这里插入图片描述

1.2.2 将生成的csd文件(在生成的 build-csd 文件夹下),复制到cloudera-manager-server服务所在节点的/opt/cloudera/csd目录下

[root@cdh01 elasticsearch]# cp /root/github/cloudera/elasticsearch/elasticsearch-parcel/build-csd/ELASTICSEARCH-1.0.jar /opt/cloudera/csd/

[root@cdh01 elasticsearch]# cd /opt/cloudera/csd/
[root@cdh01 csd]# ll
总用量 8
-rwxrwxrwx. 1 cloudera-scm cloudera-scm 5423 4月  25 16:42 ELASTICSEARCH-1.0.jar

这里注意jar包文件	权限,最好给足777

1.2.3 重启cloudera-scm-server服务

[root@cdh01 csd]# systemctl restart cloudera-scm-server

**注意:**这里最好不要在web端重启,直接在linux端重启,可能会出现后续添加服务时找不到ES服务,如果后续出现这种情况,再执行此命令也可

1.2.4 配置远程Parcel存储库

点击主机->Parcel:
在这里插入图片描述
点击配置:
在这里插入图片描述
添加远程Parcel库URL:
在这里插入图片描述

1.2.5 下载,分配,并激活(这里已经添加)

在这里插入图片描述

1.2.6 添加服务(已经添加)

在这里插入图片描述
选择主机,定义ES集群名称(cluster.name),名称任意取,默认名称为data-lakes,但是集群的每台主机的集群名字需要一样,不然会被认为是另一个ES集群的主机。
在这里插入图片描述

1.2.7 问题记录

问题一,第一次添加失败,产生stdout(标准输出设备)和stderr(标准错误输出设备)两种日志,

could not find java in JAVA_HOME or bundled at /usr/java/latest/bin/java

解决办法一:

[root@cdh01 csd]# cd /root/github/cloudera/elasticsearch/elasticsearch-parcel/csd-src/scripts/
[root@cdh01 scripts]# vim control.sh
注释掉JAVA_HOME设置:
locateJava() {
        echo 
    #export JAVA_HOME=/usr/java/latest 
    echo "Changing Java Home to: $JAVA_HOME"
        export JAVA="$JAVA_HOME/bin/java"
        echo "Changing Java to: $JAVA"
    echo   
} 

解决办法二:
执行:建立JAVA_HOME的软连接:

ln -s /usr/java/jdk1.8.0_11/ /usr/java/latest

问题二:
在这里插入图片描述
https://blog.csdn.net/weixin_43215250/article/details/89847075?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242
上述博客最后,有问题详情。
解决办法:
在cdh集群各个节点均执行:

chmod 777 /opt/cloudera/parcels/ELASTICSEARCH/config/

1.2.8 配置master

可以通过为cluster.initial_master_nodes参数设置一系列符合主节点条件的节点的主机名或IP地址来引导启动集群。
在这里插入图片描述

1.2.9 对接hive

  1. 下载jar包
    https://www.elastic.co/cn/downloads/past-releases/elasticsearch-apache-hadoop-7.6.2.zip

2.unzip解压

[root@cdh01 software]# unzip elasticsearch-hadoop-7.6.2.zip

3.上传hdfs
#创建对应目录,逐级创建或者使用-R

[root@cdh01 software]# hdfs dfs -mkdir /user/test/es_hadoop/

#进入到jar包所在路径下

[root@cdh01 software]# cd elasticsearch-hadoop-7.6.2

[root@cdh01 elasticsearch-hadoop-7.6.2]# cd dist/

#上传jar包

[root@cdh01 dist]# hdfs dfs -put elasticsearch-hadoop-hive-7.6.2.jar /user/test/es_hadoop/

[root@cdh01 dist]# hdfs dfs -put elasticsearch-hadoop-7.6.2.jar /user/test/es_hadoop/

4.配置hive对应jar包路径
在这里插入图片描述
将之前的两个jar包放入此路径:
在这里插入图片描述
5.CM界面重启hive与es

二、Kibana

2.1 下载

下载路径:
https://www.elastic.co/cn/downloads/past-releases/kibana-7-6-2
在这里插入图片描述
下载好了后上传到linux,解压后配置相关配置文件即可:
在这里插入图片描述

2.2配置启动

[root@cdh01 software]# tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz -C /opt/module/

[root@cdh01 ~]# cd /opt/module/kibana-7.6.2-linux-x86_64/

[root@cdh01 kibana-7.6.2-linux-x86_64]# vim config/kibana.yml

#修改三个位置的属性值:
server.port: 5601
server.host: "192.168.99.46"
elasticsearch.hosts: ["http://localhost:9200"]

#配置好后启动kibana:
[root@cdh01 kibana-7.6.2-linux-x86_64]# bin/kibana --allow-root

#如果启动kibana过程中报错超时,检查1.2.8步骤是否配置正确;

登陆查看:
在这里插入图片描述

三、ik分词器

3.1 部署ik分词器

下载的ik分词器版本对应elasticsearch版本,故下载7.6.2版本,下载地址为:
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.2

1.将此文件解压后放入下面的文件夹中(anaylysis-ik 由自己创建):
/opt/cloudera/parcels/ELASTICSEARCH-0.0.5.elasticsearch.p0.5/plugins/analysis-ik/

2.将此目录分发至es集群的其他机器上的对应路径;

3.重启es集群即可;

3.2 简单测试

  1. 启动kibana
[root@cdh01 plugins]# cd /opt/module/kibana-7.6.2-linux-x86_64/
[root@cdh01 kibana-7.6.2-linux-x86_64]# bin/kibana --allow-root

2.执行语句

#==>1
PUT ik2_index				
{
  "settings": {
    "number_of_shards": 20,
    "number_of_replicas": 1
  }, 
  "mappings": {	
    "dynamic":"false",
      "properties": {			
        "name": {			
          "type": "text",		
          "index": true,		
          "analyzer": "ik_max_word",	
          "search_analyzer": "ik_smart"
        },
        "desc": {				
          "type": "text",
          "index": true,
          "analyzer": "ik_smart",
          "search_analyzer": "ik_max_word"
        },
        "desc2":{			
          "type": "text",
          "index": true,
          "analyzer": "standard",
          "search_analyzer": "standard"
        }
      }
  }
}

#==>2
GET ik2_index/_mapping

#==>3
POST /ik2_index/_doc/1
{
  "name":"进口红酒",
  "desc":"乒乓球拍卖完了",
  "desc2":"进口红酒啊"
}

#==>4
GET /ik2_index/_search
{
  "query": {"match": {
    "name": "进口"
  }}
}

可以看出分词效果!

相关错误参考:
https://blog.csdn.net/andwey/article/details/107150087

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值