2014-06-28 6 views
8

के साथ Hbase 0.96 Hbase/स्पार्क संस्करणों का यह संयोजन काफी जहरीला प्रतीत होता है। मैंने कई मर्जस्ट्रेटी खोजने की कोशिश करने में घंटों बिताए हैं जो काम करेंगे लेकिन इसका कोई फायदा नहीं होगा।स्पार्क बनाम 1.0+

val sparkVersion = "1.0.0" 
// val sparkVersion = "1.1.0-SNAPSHOT" 

val hbaseVersion = "0.96.1.1-cdh5.0.2" 

libraryDependencies ++= Seq(
    "org.apache.hbase" % "hbase-client" % hbaseVersion, 
    "org.apache.hbase" % "hbase-common" % hbaseVersion, 
    "org.apache.hbase" % "hbase-server" % hbaseVersion, 
    "org.apache.hbase" % "hbase-protocol" % hbaseVersion, 
    "org.apache.hbase" % "hbase-examples" % hbaseVersion, 
    ("org.apache.spark" % "spark-core_2.10" % sparkVersion withSources()).excludeAll(ExclusionRule("org.mortbay.jetty")), 
    "org.apache.spark" % "spark-sql_2.10" % sparkVersion withSources() 
) 

निम्न त्रुटि संदेश है कि अनिवार्य रूप से resurfaces है:

यहाँ उपस्थित build.sbt की मूल है

14/06/27 19:49:24 INFO HttpServer: Starting HTTP Server 
[error] (run-main-0) java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in the same package 
java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in the same package 
     at java.lang.ClassLoader.checkCerts(ClassLoader.java:952) 
     at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:794) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
     at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     at org.eclipse.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:136) 
     at org.eclipse.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:129) 
     at org.eclipse.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:98) 
     at org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:98) 
     at org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:89) 
     at org.apache.spark.ui.WebUI.attachPage(WebUI.scala:65) 
     at org.apache.spark.ui.WebUI$$anonfun$attachTab$1.apply(WebUI.scala:58) 
     at org.apache.spark.ui.WebUI$$anonfun$attachTab$1.apply(WebUI.scala:58) 
     at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
     at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) 
     at org.apache.spark.ui.WebUI.attachTab(WebUI.scala:58) 
     at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:66) 
     at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:60) 
     at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:42) 
     at org.apache.spark.SparkContext.<init>(SparkContext.scala:222) 
     at org.apache.spark.SparkContext.<init>(SparkContext.scala:117) 
     at com.huawei.swlab.sparkpoc.hbase.HBasePop$.main(HBasePop.scala:31) 
     at com.huawei.swlab.sparkpoc.hbase.HBasePop.main(HBasePop.scala) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
[trace] Stack trace suppressed: run last *:runMain for the full output. 
14/06/27 19:49:44 INFO ConnectionManager: Selector thread was interrupted! 
java.lang.RuntimeException: Nonzero exit code: 1 
+0

मैं वास्तव में निर्भरता मुद्दों नफरत! * विशेष रूप से * hbase - hadoop के साथ - एसटीएस के रूप में स्पार्क सुपर गुप्त हैं। वैसे भी, मुझे लगता है कि स्पार्क deps hbase deps के ऊपर डालने का प्रयास है। यदि यह काम नहीं करता है तो स्पार्क लोगों के लिए एक जेरा बनाने का प्रयास करें, वे अक्सर बहुत उपयोगी हो सकते हैं: https://issues.apache.org/jira/browse/SPARK/ – samthebest

+0

@samthebest देखने के लिए धन्यवाद! शॉन ओवेन ने स्पार्क मेलिंग सूची पर टिप्पणी की है। लेकिन हाँ मुझे आपकी सलाह का पालन करने और जिरा जमा करने की आवश्यकता हो सकती है। – javadba

उत्तर

17

मैं अपने स्पार्क के साथ ठीक उसी अपवाद हो रही थी/एचबीएस आवेदन। मैं अपने HBase-सर्वर निर्भरता को org.mortbay.jetty बहिष्कार शासन को ले जाकर उसे ठीक किया:

libraryDependencies += "org.apache.hbase" % "hbase-server" % "0.98.6-cdh5.2.0" excludeAll ExclusionRule(organization = "org.mortbay.jetty") 

आप अपने प्रत्यक्ष निर्भरता से एक के रूप hadoop-common है, तो मैं भी यह javax.servlet depdendencies के लिए एक अपवर्जन नियम बनाने के लिए आवश्यक पाया:

libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "2.5.0-cdh5.2.0" excludeAll ExclusionRule(organization = "javax.servlet") 

मैं अपने स्पार्क निर्भरता अछूते रह:

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0-cdh5.2.0" 

libraryDependencies += "org.apache.spark" %% "spark-streaming" % "1.1.0-cdh5.2.0" 

libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka" % "1.1.0-cdh5.2.0" 
संबंधित मुद्दे