1. 官网下载logstash
https://www.elastic.co/cn/downloads/logstash
注意:elasticseash+kibana+logstash版本要保持一致!!!
2. movieslens官网下载数据集
https://grouplens.org/datasets/movielens/20m/
2.1 moveilens的目录结构
- ratings.csv
文件里面的内容包含了每一个用户对于每一部电影的评分。数据格式如下:
userId, movieId, rating, timestamp
userId: 每个用户的id
movieId: 每部电影的id
rating: 用户评分,是5星制,按半颗星的规模递增(0.5 stars - 5 stars)
timestamp: 自1970年1月1日零点后到用户提交评价的时间的秒数
数据排序的顺序按照userId,movieId排列的。 - movies.csv
文件里包含了一部电影的id和标题,以及该电影的类别。数据格式如下:
movieId, title, genres
movieId:每部电影的id
title:电影的标题
genres:电影的类别 - links.csv
文件里包含了一些链接到电影来源的连接,数据格式如下:
movieId,imdbId,tmdbId
3. 配置logstash.conf文件
注意:将该文件放置在bin目录下,否则出现" Permission denied "文件无法读取的问题(个人出现过)
- 修改 path 为你数据集的位置
- hosts 为你es的机器端口
- index 为索引名称
input {
file {
# path 为数据集的位置,需要你根据自己的位置去配置
path => "/Users/zhouxiaobing/Documents/Application/logstash-7.8.1/movieslens/movies.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ["id","content","genre"]
}
mutate {
split => { "genre" => "|" }
remove_field => ["path", "host","@timestamp","message"]
}
mutate {
split => ["content", "("]
add_field => { "title" => "%{[content][0]}"}
add_field => { "year" => "%{[content][1]}"}
}
mutate {
convert => {
"year" => "integer"
}
strip => ["title"]
remove_field => ["path", "host","@timestamp","message","content"]
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "movies"
document_id => "%{id}"
}
stdout {}
}
4. 进入logstash的bin目录
命令:sudo ./logstash -f Logstash.conf
控制台出现如上图字样,则写入成功