2016-05-23 65 views
4

我一直想使用Apache Storm从Kafka流式传输。我更喜欢Python,所以我决定使用streamparse(https://github.com/Parsely/streamparse)。字数统计的例子就是介绍性的例子。我一直试图让它在我的本地机器上工作。我已经安装了JDK,雷音和风暴以下版本:Streamparse wordcount示例

 
Leiningen 2.6.1 on Java 1.8.0_73 Java HotSpot(TM) 64-Bit Server VM 

我运行以下streamparse后执行以下步骤:

 
sparse quick start wordcount 
cd wordcount 
sparse run 

我收到以下错误:

 

Retrieving org/apache/storm/storm-core/0.10.1/storm-core-0.10.1.pom from central 
Retrieving org/apache/storm/storm/0.10.1/storm-0.10.1.pom from central 
Retrieving org/apache/storm/storm-core/0.10.1/storm-core-0.10.1.jar from central 
Could not transfer artifact com.parsely:streamparse:pom:0.0.4-SNAPSHOT from/to clojars (https://clojars.org/repo/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
Could not transfer artifact clojure-complete:clojure-complete:pom:0.2.4 from/to clojars (https://clojars.org/repo/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
This could be due to a typo in :dependencies or network issues. 
If you are behind a proxy, try setting the 'http_proxy' environment variable. 

我project.clj文件如下所示:

 

    (defproject wordcount "0.0.1-SNAPSHOT" 
     :source-paths ["topologies"] 
     :resource-paths ["_resources"] 
     :target-path "_build" 
     :min-lein-version "2.6.1" 
     :jvm-opts ["-client"] 
     :dependencies [[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和风暴核心版本设置正确。我不知道我要去哪里错。有人能帮我吗?

-Thanks

回答

10

这是因为Java是不承认的https://clojars.org/repo根证书颁发机构(CA)的SSL证书。

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

步骤1:取得的https://clojars.org

  1. 打开https://clojars.org根证书中铬的浏览器。
  2. 找到您的地址栏旁边的锁定符号,然后单击它。
  3. 查看详情
  4. 点击层级最高的证书,并确认它带有根CA证词。
  5. 拖放您在桌面上看到书面证书的图像。

那就是它!你有你的根证书!

步骤2:将该证书添加到java cacerts文件。

  1. 在jre bin文件夹中使用keytool.exe。
  2. 火以下命令将里面的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卡夫卡使用)的JRE那就是你的执行步骤2.如果您希望与其他JRE问题,尝试将就这样。

  2. 只使用JDK中的一个jre,它减少了发生问题的几率。

0

如果您使用的是Debian或Ubuntu,你可以执行:

$ sudo update-ca-certificates -f