Spark 1.6.2(YARN master)
包名:com.example.spark.Main
基本SparkSQL代码
val conf = new SparkConf()
conf.setAppName("SparkSQL w/ Hive")
val sc = new SparkContext(conf)
val hiveContext = new HiveContext(sc)
import hiveContext.implicits._
// val rdd = <some RDD making>
val df = rdd.toDF()
df.write.saveAsTable("example")
和stacktrace ......
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at com.trend.iwss.jscan.runtime.BaseDialog.getActiveFrame(BaseDialog.java:75)
at com.trend.iwss.jscan.runtime.AllowDialog.make(AllowDialog.java:32)
at com.trend.iwss.jscan.runtime.PolicyRuntime.showAllowDialog(PolicyRuntime.java:325)
at com.trend.iwss.jscan.runtime.PolicyRuntime.stopActionInner(PolicyRuntime.java:240)
at com.trend.iwss.jscan.runtime.PolicyRuntime.stopAction(PolicyRuntime.java:172)
at com.trend.iwss.jscan.runtime.PolicyRuntime.stopAction(PolicyRuntime.java:165)
at com.trend.iwss.jscan.runtime.NetworkPolicyRuntime.checkURL(NetworkPolicyRuntime.java:284)
at com.trend.iwss.jscan.runtime.NetworkPolicyRuntime._preFilter(NetworkPolicyRuntime.java:164)
at com.trend.iwss.jscan.runtime.PolicyRuntime.preFilter(PolicyRuntime.java:132)
at com.trend.iwss.jscan.runtime.NetworkPolicyRuntime.preFilter(NetworkPolicyRuntime.java:108)
at org.apache.commons.logging.LogFactory$5.run(LogFactory.java:1346)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.commons.logging.LogFactory.getProperties(LogFactory.java:1376)
at org.apache.commons.logging.LogFactory.getConfigurationFile(LogFactory.java:1412)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:455)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:657)
at org.apache.hadoop.hive.shims.HadoopShimsSecure.<clinit>(HadoopShimsSecure.java:60)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:146)
at org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:141)
at org.apache.hadoop.hive.shims.ShimLoader.getHadoopShims(ShimLoader.java:100)
at org.apache.spark.sql.hive.client.ClientWrapper.overrideHadoopShims(ClientWrapper.scala:116)
at org.apache.spark.sql.hive.client.ClientWrapper.<init>(ClientWrapper.scala:69)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:249)
at org.apache.spark.sql.hive.HiveContext.metadataHive$lzycompute(HiveContext.scala:345)
at org.apache.spark.sql.hive.HiveContext.metadataHive(HiveContext.scala:255)
at org.apache.spark.sql.hive.HiveContext.setConf(HiveContext.scala:459)
at org.apache.spark.sql.hive.HiveContext.defaultOverrides(HiveContext.scala:233)
at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:236)
at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:101)
at com.example.spark.Main1$.main(Main.scala:52)
at com.example.spark.Main.main(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
ivysettings.xml file not found in HIVE_HOME or HIVE_CONF_DIR,/etc/hive/2.5.3.0-37/0/ivysettings.xml will be used
这个代码在一个星期前就在一个新的HDP集群上工作了,它在沙盒中运行良好...我记得唯一要做的就是尝试改变JAVA_HOME变量,但我相当确定我解除了这些变化。
我不知所措 - 不知道如何开始追查这个问题。
群集是无头的,当然它没有X11显示,但是new HiveContext
甚至需要弹出任何JFrame
?
根据日志,我会说这是一个Java配置问题,我搞砸了org.apache.hadoop.hive.shims.HadoopShimsSecure.<clinit>(HadoopShimsSecure.java:60)
内的某些东西被触发,因此出现了Java安全对话框,但我不知道。
无法执行X11转发,并尝试在export SPARK_OPTS="-Djava.awt.headless=true"
之前执行spark-submit
,但这没有帮助。
试过这些,但又一次,无法前进,也没有显示
错误似乎可以在两个Spark客户端上重现
我只在一台机器上尝试更改JAVA_HOME
。
Ambari Hive服务检查了吗?没有解决它。
可以通过Hive / Beeline CLI正常连接到Hive数据库
答案 0 :(得分:1)
就Spark代码而言,这似乎可以缓解错误。
val conf = SparkConf()
conf.set("spark.executor.extraJavaOptions" , "-Djava.awt.headless=true")
原始回答
发现这篇文章。 Spring 3.0.5 - java.awt.HeadlessException - com.trend.iwss.jscan
基本上,趋势科技正在将一些com.trend.iwss.jscan
软件包插入通过公司防火墙通过Maven下载的JAR文件中,而我无法控制它。
Wayback Machine救援......
如果有其他人有意见,我也想听听。
<强>问题强>:
当通过IWSA下载一些.JAR文件时,填充了.class文件的目录(与下载的内容无关)被添加到jar文件(com\trend\iwss\jscan\runtime\
)。<强>解决方案强>:
这是因为如果JAR文件最初是未签名的,IWSA会在applet中插入一些代码来监控和限制潜在的有害操作。对于IWSS / IWSA,每个&#34;得到&#34;请求是相同的,因此它不知道您是否正在尝试下载将由您的浏览器执行的存档或小程序。
出于安全原因添加此代码以监控&#34;可能&#34;的行为。小程序,以确保它不会对机器及其环境造成任何伤害。
要防止出现此问题,请按以下步骤操作:
登录IWSS Web控制台。
转到HTTP&gt;小应用程序和ActiveX&gt;政策&gt; Java Applet安全规则。
在Java Applet Security下,更改&#34; No signature&#34;的值。通过&#34; Pass&#34;或者&#34;阻止&#34;,取决于你想对未签名的.JAR文件做什么。
- 醇>
点击保存。