Streamparse wordcount示例

我一直想用阿帕奇风暴从卡夫卡stream。 我更喜欢Python,所以我决定使用streamparse( https://github.com/Parsely/streamparse )。 字数统计的例子就是介绍性的例子。 我一直在试图让它在我的本地机器上工作。 我已经安装了以下版本的JDK,lein和storm:

 Leiningen 2.6.1,Java 1.8.0_73 Java HotSpot(TM)64位服务器虚拟机

我遵循streamparse后运行以下步骤:

稀疏快速启动wordcount
裁谈会wordcount
稀疏运行

我得到以下错误:


从中央检索org / apache / storm / storm-core / 0.10.1 / storm-core-0.10.1.pom
从中央检索org / apache / storm / storm / 0.10.1 / storm-0.10.1.pom
从中央检索org / apache / storm / storm-core / 0.10.1 / storm-core-0.10.1.jar
无法传输工件com.parsely:streamparse:pom:0.0.4-SNAPSHOT从/到clojars(https://clojars.org/repo/):sun.security.validator.ValidatorException:PKIXpath构build失败:sun.security .provider.certpath.SunCertPathBuilderException:无法find有效的证书path到请求的目标
无法传输工件clojure-complete:clojure-complete:pom:0.2.4从/到clojars(https://clojars.org/repo/):sun.security.validator.ValidatorException:PKIXpath构build失败:sun.security .provider.certpath.SunCertPathBuilderException:找不到要求的目标的有效证书path
这可能是由于:依存关系或networking问题。
如果您位于代理之后,请尝试设置“http_proxy”环境variables。

我的project.clj文件如下所示:


     (defproject wordcount“0.0.1-SNAPSHOT”
       :源path[“拓扑”]
       :resource-paths [“_resources”]
       :目标path“_build”
       :min-lein-version“2.6.1”
       :jvm-opts [“-client”]
       :依赖[[org.apache.storm / storm-core“0.10.1”]
                   [com.parsely / streamparse“0.0.4-SNAPSHOT”]
                   ]
       :jar -exclusions [#“log4j \ .properties”#“backtype”#“trident”#“META-INF”#“meta-inf”#“\。yaml”]
       :uberjar-exclusions [#“log4j \ .properties”#“backtype”#“trident”#“META-INF”#“meta-inf”#“\。yaml”]
   )

所以,我的lein和风暴核心版本设置正确。 我不知道我哪里错了。 有人能帮我吗?

-谢谢

这是因为java不能识别https://clojars.org/repo的根证书颁发机构(CA)SSL证书。;

解决scheme是将该证书添加到java cacerts文件,以便它被永久接受。

第1步:获取https://clojars.org的根证书;

  1. 在Chrome浏览器中打开https://clojars.org
  2. find除地址栏之外的locking符号并点击它。
  3. 查看详情
  4. 点击最上面的层次结构证书,并确认它与根CA句组尾。
  5. 拖放您在桌面上看到书面证书的图像。

而已! 你有你的根证书!

第2步:获取证书添加到Java cacerts文件。

  1. 在你的jre bin文件夹中使用keytool.exe。
  2. fire下面的命令将你的证书放入cacerts文件中

keytool -import -noprompt -trustcacerts -alias ALIASNAME -file /PATH/TO/YOUR/DESKTOP/CertificateName.cer -keystore / PATH / TO / YOUR / JDK / jre / lib / security / cacerts -storepass changeit

这就对了! 你解决了你的问题。

请注意

  1. 请确认给你这个PKIX错误的JRE(由KAFKA使用的JRE),这是你正在执行STEP 2的地方。如果你尝试使用另一个JRE问题,它将会保持原样。

  2. 请仅使用JDK内部的一个jre,从而减less遇到问题的机会。

如果您使用的是debian或ubuntu,您可以执行:

$ sudo update-ca-certificates -f