Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala can';通过spark访问hadoop群集主机_Scala_Apache Spark - Fatal编程技术网

Scala can';通过spark访问hadoop群集主机

Scala can';通过spark访问hadoop群集主机,scala,apache-spark,Scala,Apache Spark,我们正在使用cloudera的hadoop发行版。我们有一个10节点的工作集群。我正在尝试使用InteliJ从远程主机连接到群集。我用的是Scala和spark 我通过sbt导入了下一个库 libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2" % Test libraryDependencies += "com.h2database" % "h2" % "1.4.196" library

我们正在使用cloudera的hadoop发行版。我们有一个10节点的工作集群。我正在尝试使用InteliJ从远程主机连接到群集。我用的是Scala和spark

我通过sbt导入了下一个库

libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2" % Test
libraryDependencies += "com.h2database" % "h2" % "1.4.196"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.2.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.2.0"
我正试图用下面的代码创建SparkSession:

  val spark = SparkSession
.builder()
.appName("API")
.config("spark.sql.warehouse.dir", "/user/hive/warehouse")
.config("hive.metastore.uris","thrift://VMClouderaMasterDev01:9083")
.master("spark://10.150.1.22:9083")
.enableHiveSupport()
.getOrCreate()
但我得到了以下错误:

[error] o.a.s.n.c.TransportResponseHandler - Still have 1 requests         
outstanding when connection from /10.150.1.22:9083 is closed
[warn] o.a.s.d.c.StandaloneAppClient$ClientEndpoint - Failed to connect to 
master 10.150.1.22:9083
org.apache.spark.SparkException: Exception thrown in awaitResult:
    at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205)

    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:100)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:108)
     ......
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.io.IOException: Connection from /10.150.1.22:9083 closed
    at org.apache.spark.network.client.TransportResponseHandler.channelInact
    ive(TransportResponseHandler.java:146)
老实说,我尝试连接不同的端口:80229023,但没有成功。我看到默认端口是7077,但我没有任何进程在主机上侦听端口7077


你知道我该怎么继续吗?我如何检查主机正在侦听哪些端口的连接类型?

如果您使用的是Hadoop群集,那么不应该使用独立的Spark主机,而应该使用Thread

master("yarn")

在这种情况下,您必须导出一个
HADOOP_CONF_DIR
环境变量,该变量包含集群中的warn-site.xml副本

Spark Standalone server通常不会在9083上运行。。。这是默认的配置单元元存储端口,我现在得到一个错误:“[SparkException:无法加载纱线支持]”您真的下载了支持Hadoop的Spark吗?还是只包含SBT依赖项?如果只使用SBT,您将缺少
“org.apache.spark”%%“spark Thread”
我只使用SBT,并且添加了该依赖项。必须下载支持hadoop的spark吗?现在,我没有收到任何错误,但我也没有看到任何行表明我已连接到集群。会话初始化后,我尝试查询一个表,但它卡住了..当我将master更改回local时,我得到了下一个错误:由以下原因引起:java.lang.RuntimeException:java.lang.RuntimeException:HDFS上的root scratch dir:/tmp/hive应该是可写的。当前权限为:rw rw rw。那么它认为hdfs是本地的吗?我在hdfs上的那个目录上没有权限问题..本地下载Spark将允许您使用Spark shell进行简单查询,而不是IDE。该错误的答案取决于您的操作系统,但是是的,您需要对配置单元暂存目录具有写入权限。如果您将集群中的HDFS-site.xml文件包括到与HADOOP\u CONF\u DIR设置的warn-site.xml相同的目录中,它就不会认为HDFS是本地的。