安装Logstash并导入Movielens测试数据集(基于elasticsearch-8.5.2版本)

news2024/11/25 15:00:09

安装Logstash并导入Movielens测试数据集

0 安装前准备工作

0.1 安装包下载

组件安装包下载地址
Logstashlogstash-8.5.2-linux-x86_64.tar.gzelastic官网:https://www.elastic.co/cn/downloads/past-releases#logstash elastic中文社区:https://elasticsearch.cn/download/
MovieLens 测试数据集ml-latest-small.ziphttps://grouplens.org/datasets/movielens/

0.2 自定义部署标准

自定义部署标准标准描述
eselasticsearch不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户。本文档使用es作为专有用户。
/home/es/software用于解压安装elasticsearch、java、kibana、logstash的软件安装包和相关配置文件。
/home/es/software/logstashlogstash-8.5.2的软连接
/home/es/software/ml-latest-small解压后的Movielens测试数据集

0.3 Movielens测试数据集介绍

在这里插入图片描述

/home/es/software/ml-latest-small的目录结构如图上:

links.csv

文件中的字段数据格式为:movieId,imdbId,tmdbId

movieId: 每部电影的id

imdbId: 电影排行榜

genres: 电影类型

movies.csv

文件里包含了一部电影的id和标题,以及该电影的类别,里包含了一些电影来源的链接。

文件中的字段数据格式为:movieId, title, genres

movieId: 每部电影的id

title: 电影的标题

genres: 电影的类别

ratings.csv

文件里面的数据包含了每一个用户对于每一部电影的评分,数据排序的顺序按照userId和movieId排列的。

文件中的字段数据格式为:userId, movieId, rating, timestamp

userId: 每个用户的id

movieId: 每部电影的id

rating: 用户评分,是5星制,按半颗星的规模递增(0.5 stars - 5 stars)

timestamp:时间戳,自1970年1月1日零点后到用户提交评价的时间的秒数。

tags.csv

文件中的字段数据格式为:userId,movieId,tag,timestamp

userId: 每个用户的id

movieId: 每部电影的id

tag: 电影分类

timestamp:时间戳,自1970年1月1日零点后到用户提交评价的时间的秒数。

0.4 安装节点

本次安装复用es集群的中的192.168.168.1节点,所以新建用户、修改环境变量、安装jdk本次都不在意义叙述。如果需使用,请参考《Elasticsearch集群搭建手册及配置详情(基于elasticsearch-8.5.2版本)》文章。

IPnode.name安装组件
192.168.168.1node-1logstash和MovieLens 测试数据集

1 安装 Logstash

1.1 上传Logstash软件包和Movielens数据集

上传logstash软件包和Movielens数据到/home/es/software目录下

scp logstash-8.5.2-linux-x86_64.tar.gz $ip:/home/es/software

scp ml-latest-small.zip $ip:/home/es/software

解压软件包,为logstash创建软连接,并解压Movielens数据集

cd /home/es/software
tar -zxvf logstash-8.5.2-linux-x86_64.tar.gz
rm -f logstash-8.5.2-linux-x86_64.tar.gz
ln -s logstash-8.5.2 logstash

unzip ml-latest-small.zip
chown -R es:es /home/es

1.2 新建movies.csv数据集配置文件

切换到es用户下执行

su - es

cd /home/es/software/logstash/config/

logstash.conf文件重要配置项描述如下:

path: 为Movielens数据集movies.csv文件绝对路径

separator: 为movies.csv文件中的数据分割符

columns: 为movies.csv文件中数据的列名

**hosts: 填写es集群任意节点的curl地址。**默认localhost个别情况下可能无法识别,建议修改为es集群任意节点ip或域名。

index: 填写Movielens数据集的索引名称。movies索引名称可以随意改动

新建logstash.conf文件,在文件中追加如下配置。path和hosts需要修改为对应的配置项,其他配置项不需要做任何改动。

# 读取数据配置
input {
	file {
		# 导入文件目录地址
		path => "/home/es/software/ml-latest-small/movies.csv"
		start_position => "beginning"
		sincedb_path => "/dev/null"
	}
}
# 过滤 格式化数据配置
filter {
	# 配置读取csv文件
	csv {
		# 设置拆分符为 逗号
		separator => ","
		# 指定csv文件的字段 按顺序匹配
		columns => ["id", "content", "genre"]
	}
	# 对genre字段内容进行处理
	mutate {
		split => {
			"genre" => "|"
		}
		remove_field => ["path", "host", "@timestamp", "message"]
	}
	# 对content字段内容进行处理
	mutate {
		split => ["content", "("]
		# 添加字段 title 
		add_field => {
			"title" => "%{[content][0]}"
		}
		# 添加字段 year
		add_field => {
			"year" => "%{[content][1]}"
		}
	}

	mutate {
		# 对year字段进行类型转换
		convert => {
			"year" => "integer"
		}
		strip => ["title"]
		# 删除字段
		remove_field => ["path", "host", "@timestamp", "message", "content"]
	}

}
# 输出配置
output {
	# es相关配置
	elasticsearch {
		hosts => "http://192.168.168.1:9200"
		index => "movies"
		document_id => "%{id}"
		#user => "elastic"
		#password => "changeme"
	}
	stdout {}
}

1.3 启动 Logstash并导入movies.csv数据

切换到es用户下,启动Logstash并导入movies.csv数据

su - es

cd /home/es/software/logstash/bin/

./logstash -f /home/es/software/logstash/config/logstash.conf

如果数据导入成功,会打印如下格式的内容。反之,则证明数据导入失败,那就需要看具体的报错信息,重新启动Logstash并开始导入数据。

{
        "year" => 2018,
    "@version" => "1",
         "log" => {
        "file" => {
            "path" => "/home/es/software/ml-latest-small/movies.csv"
        }
    },
       "event" => {
        "original" => "193587,Bungo Stray Dogs: Dead Apple (2018),Action|Animation\r"
    },
       "genre" => [
        [0] "Action",
        [1] "Animation"
    ],
          "id" => "193587",
       "title" => "Bungo Stray Dogs: Dead Apple"
}
{
        "year" => 1991,
    "@version" => "1",
         "log" => {
        "file" => {
            "path" => "/home/es/software/ml-latest-small/movies.csv"
        }
    },
       "event" => {
        "original" => "193609,Andrew Dice Clay: Dice Rules (1991),Comedy\r"
    },
       "genre" => [
        [0] "Comedy"
    ],
          "id" => "193609",
       "title" => "Andrew Dice Clay: Dice Rules"
}

查看数据是否导入成功

#kibana页面可以使用如下命令查看集群中的索引
GET /_cat/indices?v

#或者在linux任意节点执行curl命令查看。前提任意节点与es节点网络互通。
curl -s -XGET http://192.168.168.1:9200/_cat/indices?v
health status index  uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   movies Ovg0Oyk5T2OosH0mqUhTSQ   1   1       9743            0      5.2mb          2.6mb

下图可以发现movies索引,证明数据导入成功。

在这里插入图片描述

1.4 如果数据导入失败重启Logstash再次导入

导入失败的原因有很多,可能是logstash.conf文件的path和hosts配置错误,也有可能是文件的权限没有修改为es。这里为大家演示一遍导入第二个索引indextest的方法,以便用于演示重启Logstash再次导入数据的流程。

su - es
#1、将logstash.conf文件中的索引名称 movies 修改为 indextest
$ sed -i 's#"movies"#"indextest"#g' /home/es/software/logstash/config/logstash.conf

#2、验证索引名称是否修改成功
$ grep "index" ../config/logstash.conf
		index => "indextest"

#3、重启Logstash再次导入indextest索引数据
#3.1、jps命令查到Logstash的PID,此时Logstash的PID为21110
$ jps
21110 Logstash
12360 Elasticsearch
23199 Jps
#3.2、关闭Logstash进程。kill -9 PID
$ kill -9 21110
#3.3、将数据导入到indextest索引中
cd /home/es/software/logstash/bin/

./logstash -f /home/es/software/logstash/config/logstash.conf

此时可以看到indextest,证明重启Logstash再次导入成功。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第六届中国软件开源创新大赛-openGauss赛道全面开启

第六届“中国软件开源创新大赛”在国家自然科学基金委信息科学部的指导下,由中国计算机学会(CCF)主办,西北工业大学、绿色计算产业联盟、CCF 开源发展委员会联合承办。旨在为国内开源社区提供展示、交流、合作的平台,激…

实力出圈!联诚发LED屏与xr虚拟拍摄解决方案亮相文博会!

六月初夏的深圳,正迎来一场文化产业界的盛事。6月7日,为期5天的第十九届中国(深圳)国际文化产业博览交易会(下称“文博会”)正式拉开帷幕。联诚发LCF作为国家级高新技术企业、国家级专精特新小巨人企业,以及优秀的LED显示与数字装备企业代表亮…

03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素

2.功能元素 1.hgroup 对网页或区段&#xff08;section&#xff09;的标题进行组合 2.figure <figure> 标签规定独立的流内容&#xff08;图像、图表、照片、代码等等&#xff09;。 figure 元素的内容应该与主内容相关&#xff0c;但如果被删除&#xff0c;则不应对…

如何申请项目管理专业人员能力等级评价(CSPM)?

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

“智慧水利”发展综述:我国水利事业迈入新阶段

6月7日-9日&#xff0c;“2023中国水博览会暨中国&#xff08;国际&#xff09;水务高峰论坛”上&#xff0c;“智慧水利”再次成为热议话题。 智慧水利是在以智慧城市为代表的智慧型社会建设中产生的相关先进理念和高新技术在水利行业的创新应用&#xff0c;是云计算、大数据、…

泰山信息科技5周年:无尽的感恩,非常非常的惋惜

去年的时候&#xff0c;庆贺4周年&#xff0c;公司员工一起去某个地方玩&#xff08;确实没吃到什么东西&#xff09;。这是当时的情形&#xff1a; 因为各种原因&#xff0c;今年3月无锡研发基地解散。作为技术总监&#xff0c;我是非常非常的惋惜。因为我真的想把泰山OFFICE做…

T2-U开发板实现红外遥控接收与发送

文章目录 一、红外概况二、发射1. 调制2. 红外传输协议3. 编码 三、接收四、T2-U开发板硬件连接五、TuyaOS红外功能介绍红外接收功能 六、红外功能代码使用流程1. 硬件注册2. 设备查找3. 打开设备4. 红外发送5. 红外接收6. 接收回调注册 红外遥控是利用近红外光进行数据传输的一…

如何做好功能测试,看这几点就够了

关于新人如何做好功能测试&#xff0c;以下是我个人的一些思考。 01、测试基础的重要性 作为一名测试新人&#xff0c;测试基础非常非常重要。这里说的基础&#xff0c;不仅仅是什么是软件测试、软件测试的目的&#xff0c;而是测试用例的设计能力。 因工作的原因&#xff0…

进程信号以及用户态和内核态的理解

文章目录 什么是进程信号&#xff1f;用户层产生信号的方式有哪些&#xff1f;信号在内核的存在形式认识信号的一些接口信号处理的执行流程理解用户态和内核态信号处理流程 什么是进程信号&#xff1f; 进程信号是一种事件异步通知机制&#xff0c;属于软件中断&#xff08;因…

手机充电流程

手机的整个充电过程由充电管理IC 控制的&#xff0c;完整的充电过程可以分为6个阶段&#xff1a;涓流充电模式、预充电模式、恒流充电模式、恒压充电模式、充电完成模式、二次充电模式。 完整的充电过程 1. 涓流充电模式 涓流充电一般以很小的电流&#xff08;几十到一百毫安…

LeetCode - 15 三数之和

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满…

【Android】WMS(四)WMS职责

WMS职责 WMS&#xff08;Window Manager Service&#xff09;是 Android 系统中的一个系统服务&#xff0c;它是WindowManager的管理者&#xff0c;负责对窗口进行管理、分配资源&#xff0c;以及处理用户的输入事件等问题。WMS是整个系统中非常重要的一个组成部分&#xff0c;…

昨晚技术交流群“炸了”,论搞技术的网络工程师究竟能有多严谨?

昨日在IELAB网络实验室学习交流群中发生了一场“激烈”的争论&#xff0c;原本是同往常一样的答题领红包活动&#xff0c;同学对答案产生了异议&#xff0c;从而和Summer赵老师在群里进行了沟通交流&#xff0c;具体是什么情况呢&#xff1f; IELAB每日答题活动 于是乎&#xf…

JMeter 测试笔记(一):认识JMeter

引言&#xff1a; 在现代互联网时代&#xff0c;应用程序的性能已经成为了一个非常重要的问题&#xff0c;并且对于许多公司的生存和发展都起着至关重要的作用。 而JMeter作为一个免费且开源的性能测试工具&#xff0c;可以帮助我们进行各种类型的性能测试&#xff0c;如接口…

阿里巴巴最新开源:Java工程师面试笔记(30万字精华总结 + 面试1300问)吊打面试官绰绰有余

前言 作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#x…

网卡中的Ring buffer -- 解决 rx_resource_errors 丢包

1、软硬件环境 硬件&#xff1a; 飞腾E2000Q 平台 软件&#xff1a; linux 4.19.246 2、问题现象 网卡在高速收包的过程中&#xff0c;出现 rx error , 细查是 rx_resource_errors 如下&#xff1a; rootE2000-Ubuntu:~# ifconfig eth1 eth1: flags4163<UP,BROADCAST,RU…

Amazon SageMaker:探索AI绘画云端部署新方案

目录 1 从艺术实验到AI绘画2 什么是Amazon SageMaker&#xff1f;3 云端部署AI绘画应用3.1 模型构建与部署3.2 AI绘画测试(文生图) 4 亚马逊云科技中国峰会 1 从艺术实验到AI绘画 在过去&#xff0c;人们只希望基于已有的给定数据做一些预测和拟合&#xff0c;因此判别式模型得…

RFID资产盘点在企业的应用

随着新技术的发展&#xff0c;企业在不断地进行转型&#xff0c;企业为了更好地发展&#xff0c;对企业内部的管理工作越来越重视。在管理中&#xff0c;如何利用先进的科学技术来提高管理效率&#xff0c;成为了企业发展的关键。在资产管理上&#xff0c; RFID技术在资产盘点和…

TCP三次握手建立连接和四次挥手断开连接

TCP的连接与断开 TCP 通过三次握手建立连接&#xff0c;以建立确保数据传输的参数&#xff0c;连接的双方都将初始化与 TCP 连接相关的许多 TCP 状态变量。该连接是一条逻辑连接&#xff0c;其共同状态仅保留在二个通信端系统的TCP程序中。 TCP连接的组成包括&#xff1a;一台…

上门服务app开发|上门服务系统定制打开家政服务的大门

上门服务app可以为用户带来更加便捷的服务体验&#xff0c;不需要用户出门寻找服务商&#xff0c;只需要通过小程序下单即可享受到上门服务&#xff0c;省去了用户的时间和精力。同时上门服务app也为服务商提供了一个更广阔的市场&#xff0c;他们可以通过上门服务系统向更多的…