概述
重要的事情说三遍
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
- vi /etc/ambari-agent/conf/ambari-agent.ini
- force_https_protocol=PROTOCOL_TLSv1_2
- vi /etc/python/cert-verification.cfgexit
- [https]
- 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复