我是靠谱客的博主 多情汽车,最近开发中收集的这篇文章主要介绍metron 0.7.1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

重要的事情说三遍

HDP 要2.6.x!HDP 要2.6.x!HDP 要2.6.x!   

因为storm 1.0.1 自带的log4j-core  与 es客户端不兼容!!!

安装 ambari  参考https://www.cnblogs.com/zhang-ke/p/8944240.html

metron build参考

https://cwiki.apache.org/confluence/display/METRON/Metron+0.4.1+with+HDP+2.5+bare-metal+install+on+Centos+7+with+MariaDB+for+Metron+REST

首先 最好在安装操作系统的时候设置好 网络 时区 ntp服务器  磁盘分区,这样会节省很多后期调整的时间。

要设置好repo文件和hosts 文件

默认的localhost是不行的,在agent  ssh登录的时候会出问题 

其次 关闭 firwwalld 和selinux

严格按照文档 

git clone https://github.com/apache/metron

cd metron

git checkout Metron_0.7.1    

 

安装npm和node 

第一个遇到的问题是 

 

执行那个mvn clean package -DskipTests  遇到提示// 注意此处与 metron 0.4.1安装不一样 

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.3:npm (npm ci) on project metron-config: Failed to run task: 'npm ci' failed. (error code 1) -> [Help 1]
 

往上看  错误代码

[ERROR] ERROR: Failed to download Chromium r669486! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
[ERROR] { Error: read ECONNRESET
[ERROR]     at TLSWrap.onread (net.js:602:25)
[ERROR]   -- ASYNC --
[ERROR]     at BrowserFetcher.<anonymous> (/root/metron/metron-interface/metron-config/node_modules/puppeteer/lib/helper.js:111:15)
[ERROR]     at Object.<anonymous> (/root/metron/metron-interface/metron-config/node_modules/puppeteer/install.js:64:16)
[ERROR]     at Module._compile (internal/modules/cjs/loader.js:654:30)
[ERROR]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
[ERROR]     at Module.load (internal/modules/cjs/loader.js:566:32)
[ERROR]     at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
[ERROR]     at Function.Module._load (internal/modules/cjs/loader.js:498:3)
[ERROR]     at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
[ERROR]     at startup (internal/bootstrap/node.js:201:19)
[ERROR]     at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }
[ERROR] npm ERR! code ELIFECYCLE
[ERROR] npm ERR! errno 1
[ERROR] npm ERR! puppeteer@1.18.0 install: `node install.js`
 

就是npm安装  puppeteer@1.18.0 的时候无法下载  Chromium r669486

参考 https://www.jianshu.com/p/d69b1d8bc2a6

具体就是需要先运行命令

npm config set puppeteer_download_host=https://npm.taobao.org/mirrors

设置一个npm pupeteer源

然后再执行  mvn clean package -DskipTests 就可以了

 

在build到metron-common的过程中

kraken-pcap-1.7.1.jar 下载不到。。。。然后就停了。。确实下不到,kraken这个项目好像都没了。。。。  

https://issues.apache.org/jira/browse/METRON-650 这里讨论了的这个问题。好像没什么结果,也没什么问题。。编译metron-commons的时候  会抱错。。

这个jar包全网都找不到了。。。。。还好天无绝人之路,在之前编译0.4.1的服务器上找到了这个jar包全家,扔到

/root/.m2/repository/org/krakenapps 
注意 要把 krakenapps 下的文件都cpoy过去,只有jar是不行的,编译通过。。。

 

接下来在spark 那  遇到了下载不到 common-codec 1.15  SNAPSHOT包的错误   //后期并没有遇到这个问题

这个包是能下到的,只是不在那个地址了。。。

项目地址

http://commons.apache.org/proper/commons-codec/

https://commons.apache.org/proper/commons-codec/download_codec.cgi

下载Binaries 解压 放到

/root/.m2/repository/commons-codec/commons-codec/1.15-SNAPSHOT
 

编译通过

 

依然是 RPMS文件夹下没有rpm包。。运行mvn clean package -Pbuild-rpms 报错。

这次遇到的问题是docker容器无法上网,也就无法安装编译需要的各种库。

使用  iptables -t nat -vnL 发现


Chain POSTROUTING (policy ACCEPT 2 packets, 720 bytes)
 pkts bytes target     prot opt in     out     source               destination    

    
没有docker nat相关内容。

原因是关闭了 iptables防火墙服务,然而  docker的nat服务依赖iptables,所以必须启动iptables服务,重新启动docker服务。

然后可能遇到的问题 依然是docker 修改yum源  修改 /etc/hosts文件

把 容器 提交到  images

docker commit 84e25b2bab30 docker.io/centos:centos6    (84e25b2bab30为容器id)

再运行

mvn clean package -Pbuild-rpms

在/root/metron/metron-deployment/packaging/docker/rpm-docker/RPMS/noarch 会出现各种rpm~

 

在ambari添加集群节点的时候,遇到openssl version 错误,导致failed。。每个agent都要设置一下。

参考https://www.cnblogs.com/felixzh/p/10651111.html

Only following solution resolved the problem (Thanks to @bing lv and @Deven Fan:

By adding below config in [security] section of

  1. vi /etc/ambari-agent/conf/ambari-agent.ini
  2. force_https_protocol=PROTOCOL_TLSv1_2
  1. vi /etc/python/cert-verification.cfgexit
  2. [https]
  3. verify=disable

安装 ES KB  参考

https://community.cloudera.com/t5/Community-Articles/How-To-Install-ELK-Stack-6-3-2-in-Ambari/ta-p/248842

https://blog.csdn.net/ZhouyuanLinli/article/details/77725599

安装KIBANA 6.3.2 会遇到错误 //后期也没有遇到这个问题

Execution of '/usr/bin/yum -d 0 -e 0 -y install python-elasticsearch' returned 1. Error: Nothing to do

https://blog.csdn.net/weixin_42348946/article/details/90269097

需要到cd /var/lib/ambari-server/resources/common-services/KIBANA/6.3.2
修改 metainfo.xml

注释掉  python-elasticsearch  那个pakadge

 

zeppelin Noteboot 问题

zeppelin server 启动一会就停止。

查看日志  包括 ambari-agent  日志  zeppelin的日志,有一条说没有/var/run/zeppelin  这个文件夹的权限。

需要的操作包括  创建/var/run/zeppelin这个文件夹 并且授权给 zeppelin 用户。

mkdir /var/run/zeppelin  

chown zeppelin  /var/run/zeppelin

另外在启动后过一会zeppelin服务会停掉,看日志提示 address 无法绑定,已经被占用。其实是之前启动的zeppelin进程没有杀掉。

 netstat -lntp | grep 9995   #通过9995端口找到进程pid

ps -ef | grep < Zeppelin  PID>  #看一下zeppelin 无疑

  kill   < Zeppelin  PID>      #杀掉僵尸进程

再启动 zeppelin  成功。。。

 

卸载 rpm  failed

可以用

rpm -e --noscripts  rpm-names  卸载
 

metron-indexing 服务无法启动

报错   java.lang.IllegalAccessError   log4j-core.jar 的lookup 方法不让访问。。。

 

resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/metron/0.7.1/bin/start_hdfs_topology.sh' returned 1. 
Running: /usr/jdk64/jdk1.8.0_77/bin/java -server -Ddaemon.name= -Dstorm.options= -Dstorm.home=/usr/hdp/2.5.0.0-1245/storm -D
storm.log.dir=/var/log/storm -D
java.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -D
storm.conf.file= -cp
 /usr/hdp/2.5.0.0-1245/storm/lib/asm-5.0.3.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/clojure-1.7.0.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/disruptor-3.3.2.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/kryo-3.0.3.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/log4j-api-2.1.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/log4j-core-2.1.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/log4j-over-slf4j-1.6.6.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/log4j-slf4j-impl-2.1.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/minlog-1.3.0.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/objenesis-2.1.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/reflectasm-1.10.1.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/ring-cors-0.1.5.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/servlet-api-2.5.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/slf4j-api-1.7.7.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/storm-core-1.0.1.2.5.0.0-1245.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/storm-rename-hack-1.0.1.2.5.0.0-1245.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/zookeeper.jar:
/usr/hdp/2.5.0.0-1245/storm/lib/ambari-metrics-storm-sink.jar
 org.apache.storm.daemon.Clgrep log4j-coreientJarTransformerRunner org.apache.storm.hack.StormShadeTransformer /usr/metron/0.7.1/lib/metron-elasticsearch-0.7.1-uber.jar /tmp/cd9fae2217f911eb964f000c29bd9714.jar

参考

https://stackoverflow.com/questions/36097878/exception-in-thread-main-java-lang-illegalaccesserror-in-storm-topology

https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/index.html

最开始以为metron-indexing模块的问题查找了很多,都误解了。其实metron-elasticsearch-0.7.1-uber.jar 的问题。

metron-elasticsearch-0.7.1-uber.jar 与 storm 1.0.1 版本带的log4j-core-2.1.jar不兼容。看了一篇文档,说es客户端和storm1.0.1自带的log4j不兼容,需要升级storm   log4j-core-2.8.jar才可以。。。也就是升级了HDP到2.6.x就解决了

 

关于kibana 和logstash 启动成功后  就显示stoped  

测试 node1的 5000 和 5044 端口 可以发现 ,kibana和logstash 服务是启动的。

但是ambari 服务器显示服务没有启动

然后 root 收到 mail提示

node1 : Nov  2 18:30:59 : kibana : user NOT in sudoers ; TTY=unknown ; PWD=/home/kibana ; USER=root ; COMMAND=/sbin/service kibana status
显然问题出在  用户kibana和logstash  没有sudo /sbin/service的权限。。

visudo命令修改/etc/sudoers文件

在 root    ALL=(ALL)     ALL 下添加:
kibana    ALL=(ALL)    NOPASSWD:/sbin/service
logstash    ALL=(ALL)    NOPASSWD:/sbin/service

保存修改后,很快kibana和logstash服务状态就变成started了。

 

In the end, you'll end up with a bunch of exposed UIs:
- Ambari: http://node1:8080/
- Kibana: http://node1:5000/
- Sensor Status (monit): http://node1:2812
- Elasticsearch: http://node1:9200/
- Storm UI: http://node1:8744/
- Metron REST interface: http://node1:8082/swagger-ui.html#/
- Management UI: http://node1:4200/ (user/password)
- Apache Nifi: http://node1:8089/nifi/
- Zookeeper: http://node1:2181
- Kafka: http://node1:6667

安装好之后rest interface  ,management ui 并不能访问,提示要登录,但并没有默认账号密码。。。。

首先修改metron 的配置 在 rest中的 active Spring profiles  设置为   'dev'   (注意单引号)

然后需要手动在metron rest 的数据库 创建用户和权限表

手动创建用户参考文档

https://docs.cloudera.com/HDPDocuments/HCP1/HCP-1.4.1/bk_installation/content/installing_rest_app_manually.html

重启 metron-rest 服务的时候,遇到了metron-rest服务启动后 过几秒就停止,没有错误日志。。。。

最终,重启metron 所有服务后 才恢复正常。

 

关于pcap的一些 surport 

https://cwiki.apache.org/confluence/display/METRON/PCAP+CLI+Tool

http://metron.apache.org/current-book/metron-sensors/pycapa/index.html

https://github.com/apache/metron/tree/master/metron-platform/metron-pcap-backend

https://cwiki.apache.org/confluence/display/METRON/PCAP+Service

https://cwiki.apache.org/confluence/display/METRON/Metron+Packet+Capture+Probe+Design

https://community.cloudera.com/t5/Support-Questions/metron-pcap-data-stored-in-HDFS-sequence-format/m-p/212179#M174118

https://community.cloudera.com/t5/Support-Questions/Metron-ingest-PCAP-files/m-p/188353#M150449

https://community.cloudera.com/t5/Support-Questions/how-to-use-the-metron-ui-to-see-the-pcap-data/m-p/110505#M73353

https://cwiki.apache.org/confluence/display/METRON/Adding+a+New+Telemetry+Data+Source

https://github.com/apache/metron/pull/1537

https://community.cloudera.com/t5/Support-Questions/metron-pcap-query/m-p/199010

 

dpdk 安装参考

https://github.com/apache/metron/tree/master/metron-sensors/fastcapa#install-dpdk

在编译的时候遇到两个错误

https://www.cnblogs.com/hugetong/p/6377604.html

修改 x86_64-native-linuxapp-gcc/.config  文件

< CONFIG_RTE_LIBRTE_KNI=n
< CONFIG_RTE_KNI_KMOD=n

在运行 make config install T=x86_64-native-linuxapp-gcc DESTDIR=$DPDK_HOME

 

关于删除 kafka topic。。。

只能说轻易不要删除topic,超级麻烦,还容易出错。。。

https://blog.csdn.net/belalds/article/details/80575751

用命令 ./kafka-topics.sh --zookeeper localhost:2181 --delete --topic xxx

很多时候只会把 topic 标记为删除,只要有producer和 consummer还在用,就不会立刻删除。按网上说,标记之后服务器会选择合适的时候删除topic。

测试的时候

首先要  停止相关的 consummer和producer

修改 参数 将 

 auto.create.topics.enable 设置为false

delete.topic.enable  设置为 true

然后删除  server.properties 文件中 log.dir属性指定的 log目录,例如/kafka-logs,里的相关topic 文件夹。

再进入 zkCli.sh 里

rmr /admin/delete_topics/xxx    (xxx为标记为删除的topic)

rmr /brokers/topics/xxx

这样才算删除掉 xxx 这个topic

 

 

 

 

 

 

 

最后

以上就是多情汽车为你收集整理的metron 0.7.1的全部内容,希望文章能够帮你解决metron 0.7.1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部