ELK6.x集群搭建(丐版 含出错解决)

hadoop-2.6.4

节点文件配置

2.节点配置完整

[root@hadoop02 hadoop]# vi yarn-site.xml


    yarn.nodemanager.aux-services.mapreduce.shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
  
  
    yarn.log-aggregation-enable
    true
  
  
    yarn.log-aggregation.retain-seconds
    604800
  

[root@hadoop02 hadoop]# vi core-site.xml


   hadoop.proxyuser.root.hosts
   *
 
 
   hadoop.proxyuser.root.groups
   *
 
 
    hadoop.native.lib
    false
    Should native hadoop libraries, if present, be used.
    
 


重新格式化

rm -rf /var/log/hadoop/tmp/
rm -rf $HADOOP_HOME/logs

yarn报错–格式化出问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mj94b5eJ-1664883042024)(C:\Users\16585\Desktop\hadoop2.6.4配置\img\yarn_error.png)]

datanode启动不了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXh2aoFj-1664883042025)(C:\Users\16585\Desktop\hadoop2.6.4配置\img\datanode_error.png)]

zookeeper配置

tickTime=2000
#最大访问数:不限制
maxClientCnxns=0
#初始化最小进程数:50
initLimit=50
syncLimit=5
#数据目录
dataDir=/usr/loacl/zkpr/zkdata
#日志目录
dataLogDir=/usr/loacl/zkpr/zklogs
clientPort=2181
#配置三台集群以上的机器主机名或IP地址,如果不配集群的话,不需要添加以下内容,2888是通信端口,3888是选举通信端口
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

[root@hadoop01 zkpr]# mkdir zkdata
[root@hadoop01 zkpr]# mkdir zklogs

重置yum

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JIV1obTl-1664883042026)(C:\Users\16585\Desktop\hadoop2.6.4配置\img\yum_error.png)]

删除老仓库

rm  -rf  /etc/yum.repos.d/*

卸载yum包

rpm -qa yum

rpm -qa yum yum-3.4.3-150.el7.centos.noarch
卸载组件
rpm -qa | grep yum | xargs rpm -e --nodeps
在查询没有了
rpm -qa yum

下载新yum资源包rpm

wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm


重新安装yum

rpm -qa yum

导入证书

rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

设置阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清除缓存生成新的

yum clean all
yum makecache

elk配置

ELK简介

ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。
特点:

分布式实时文件存储、检索、分析
零配置、集群自动发现
索引自动分片、副本机制
RESTful风格接口
多数据源
自动搜索负载
高可用
高扩展
一种NOSQL的数据存储工具

[root@hadoop03 software]# tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt

解压kibana-6.2.2-linux-x86_64.tar.gz到opt目录下:
[root@hadoop03 software]# tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C /opt

解压logstash-6.2.2.tar.gz到opt目录下:
[root@hadoop03 software]# tar -zxvf logstash-6.2.2.tar.gz -C /opt

解压node-v8.9.1-linux-x64.tar.gz到opt目录下:
[root@hadoop03 software]# tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt

下载zip解压工具:
[root@hadoop03 software]# yum install -y unzip

解压elasticsearch-head-master.zip到当前目录下:
[root@hadoop03 software]# unzip elasticsearch-head-master.zip

把解压好的elasticsearch-head-master文件夹移动到opt目录下,并改名为head:
[root@hadoop03 software]# mv elasticsearch-head-master /usr/local/head

进入opt目录下:
[root@hadoop03 software]# cd /opt

把elasticsearch-6.2.2改名为es6:
[root@hadoop03 opt]# mv elasticsearch-6.2.2/ es6

把kibana-6.2.2-linux-x86_64 改名为kibana:
[root@hadoop03 opt]# mv kibana-6.2.2-linux-x86_64/ kilbana

把logstash-6.2.2改名为log:
[root@hadoop03 opt]# mv logstash-6.2.2/ log

把node-v8.9.1-linux-x64/改名为node:
[root@hadoop03 opt]# mv node-v8.9.1-linux-x64/ node
es6配置
  • 修改主机名:
[root@hadoop03 opt]# hostnamectl set-hostname master
  • 修改主机列表:

    [root@hadoop03 opt]# vi /etc/hosts
    
    

配置es6目录下的config目录下的elasticsearch.yml:

[root@hadoop03 opt]# vi /usr/local/es6/config/elasticsearch.yml
  • SHIFT+G快速定位到尾部,插入:
cluster.name : bigdata              
node.name : master          
node.master : true              
network.host : 192.168.81.203   
discovery.zen.ping.unicast.hosts : ["192.168.81.203"]
http.cors.enabled : true                       
http.cors.allow-origin : "*"

  • 配置etc目录下的sysctl.conf:
[root@hadoop03 opt]# vi /etc/sysctl.conf

SHIFT+G快速定位到尾部,插入

vm.max_map_count=655360
  • 保存退出,输入:
[root@hadoop03 opt]# sysctl -w vm.max_map_count=655360
  • 配置etc目录下的security目录下的limits.conf:
[root@hadoop03 opt]# vi /etc/security/limits.conf
  • SHIFT+G快速定位到尾部,插入
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
  • 保存退出,添加一个普通用户:
[root@hadoop03 opt]# useradd es
  • 修改es6目录的属组(es6不能使用root用户启动)
[root@hadoop03 opt]# chown -R es:es es6

切换到es用户

[root@hadoop03 opt]# su es

启动elasticsearch
  • 启动elasticsearch(一定要安装好java)

  • 会占用命令行窗口

  • 若地步出现started就是启动成功,若想在后台运行就要在命令后面加-d的参数。

[es@hadoop03 opt]# ./es6/bin/elasticsearch

[es@hadoop03 opt]# ./es6/bin/elasticsearch -d

  • 使用网页验证启动成功:
http://192.168.136.37:9200
报错、停掉es进程
elasticsearch

杀掉进程
kill -9 elasticsearch进程

node和head配置

head的配置有坑

需要插件安装

先安装好phantomjs

#官网下载地址
https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2

#我自己的下载地址
wget http://yellowcong.qiniudn.com/phantomjs-2.1.1-linux-x86_64.tar.bz2

# 下载好后进行解压(由于是bz2格式,要先进行bzip2解压成tar格式,再使用tar解压)
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2

# 再使用tar进行解压到/usr/local/目录下边
tar -xvf phantomjs-2.1.1-linux-x86_64.tar -C /usr/local/

# 安装依赖软件
yum -y install wget fontconfig

# 最后一步就是建立软连接了(在/usr/bin/目录下生产一个phantomjs的软连接,/usr/bin/是啥目录应该清楚,不清楚使用 echo $PATH查看)
ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/ 

#管网地址
https://nodejs.org/en/download/

#我的服务器地址
http://yellowcong.qiniudn.com/node-v8.9.0-linux-x64.tar.xz

#解压,注意是 tar.xz文件
tar -xvf /usr/local/nodejs/node-v8.9.0-linux-x64.tar.xz



#建立node的软连接
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm


#设定nodejs安装软件的代理服务器
npm config set registry https://registry.npm.taobao.org

#执行npm,安装grunt
npm install -g grunt
npm install -g grunt-cli


#建立软连接 grunt 
ln -s /usr/local/nodejs/node-v8.9.0-linux-x64/bin/grunt /usr/bin/grunt 
#下载地址
wget http://yellowcong.qiniudn.com/elasticsearch-head-master.zip

#安装unzip解压工具(如果没有unzip,就需要安装这个)
yum install -y unzip 

#解压文件到 head
unzip elasticsearch-head-master.zip 

#进入head的目录
cd elasticsearch-head-master/

#安装一下这个bzip2 ,如果没有,在编译head,会报错
yum install -y bzip2

#安装(进入 elasticsearch-head-master)的目录,执行安装命令
sudo npm install

#配置head
#head的启动端口是9100
vim Gruntfile.js
options: {
    //配置0.0.0.0 表示匹配这个主机的所有ip,匹配不上的就会走这个了
        hostname:'0.0.0.0',
        port: 9100,
        base: '.',
        keepalive: true
}

#启动服务
grunt server

后台启动
nohup grunt server &

kibana 6.x以及汉化

[root@hadoop03 kibana]# vi config/kibana.yml

shift + G 跳到末尾补充

server.host: "192.168.81.203"
elasticsearch.url : "http://192.168.81.203:9200"

汉化

下载汉化包
[root@elasticsearch ~]# wget https://mirrors.yangxingzhen.com/kibana/Kibana_Hanization.tar.gz

1.备份程序
不可逆
[root@elasticsearch ~/Kibana_Hanization/old]# cp -r /usr/share/kibana/ /tmp

2.开始汉化
[root@elasticsearch ~]# cd Kibana_Hanization/old
[root@elasticsearch ~/Kibana_Hanization/old]# python main.py /usr/local/kibana

logstash

[root@hadoop03 kibana]# cd /usr/local/log
[root@hadoop03 log]# ./bin/logstash -e 'input{ stdin{} } output { stdout{} }'
[root@hadoop03 log]# ./bin/logstash -e 'input{ stdin{} } output { stdout{ codec => json } }'

把控制台输入的数据转换成json格式,也可以把rubydebug格式:
hello logatash,i love you
[root@hadoop03 log]# /bin/logstash -e 'input{ stdin{} } output { stdout{ codec => json } elasticsearch{ hosts => [ "192.168.56.102:9200" ] } }'

输入信息,把控制台输入的数据转换成rubydebug类型的数据,同时上传到es服务器,可以在对应192.168.136.37:9100的页面进行查看:
使用logstash读取文件:
在log目录下新建一个temp文件夹:

[root@hadoop03 log]# mkdir temp

  • 在temp目录下新建一个文件a.txt:
[root@hadoop03 log]# vi temp/a.txt

输入

ad
sdfdsa
sadfasdfsdffdsafsa
sdfgdsfgds

  • 在temp目录下新建如下内容的格式文件

    [root@hadoop03 log]# vi temp/logstash.conf
    
    

输入

input{
        file{
                path =>"/opt/log/temp/a.txt"
                start_position => "beginning"
                sincedb_path => "/dev/null"
        }
}
filter{
        ruby{
                code => "event.timestamp.time.localtime"
        }
}
#输出格式
output{
        stdout{
                 codec => rubydebug
        }
        elasticsearch{
                hosts => ["192.168.56.102:9200"]
        }
}

运行命令测试

[root@hadoop03 log]# ./bin/logstash -f temp/logstash.conf

emp/logstash.conf


输入

input{
file{
path =>“/opt/log/temp/a.txt”
start_position => “beginning”
sincedb_path => “/dev/null”
}
}
filter{
ruby{
code => “event.timestamp.time.localtime”
}
}
#输出格式
output{
stdout{
codec => rubydebug
}
elasticsearch{
hosts => [“192.168.56.102:9200”]
}
}


运行命令测试

[root@hadoop03 log]# ./bin/logstash -f temp/logstash.conf


你可能感兴趣的:(大数据集群搭建,笔记,hadoop,hdfs,大数据,elk)