SparkSession.master("local")
hdfs://localhost:9000/$FILE_PATH
SparkSession.master("spark://$SPARK_MASTER_HOST:7077")
抛出错误
java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1.fun$1 of type org.apache.spark.api.java.function.Function in instance of org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1
到目前为止,我在Hadoop中只有start-dfs.sh,在Spark中并没有真正配置任何内容。我是否需要使用YARN集群管理器来运行Spark,以便Spark和Hadoop使用相同的集群管理器,从而可以访问HDFS文件?
我尝试按照tutorialspoint https://www.tutorialspoint.com/Hadoop/hadoop_enviornment_setup.htm在Hadoop中配置yarn-site.xml,并在spark-env.sh中指定HADOOP_CONF_DIR,但似乎不起作用,并引发了相同的错误。我是不是错过了一些其他配置?
最初的Hadoop版本是2.8.0,Spark版本是2.1.1和Hadoop2.7。尝试下载Hadoop-2.7.4,但同样的错误仍然存在。
这里的问题表明这是java语法问题,而不是引发hdfs问题。我将尝试这种方法,看看这是否解决了这里的错误。
受到这里帖子的启发,自己解决了这个问题。
这个map-reduce作业依赖于一个可序列化的类,因此当在Spark本地模式下运行时,可以找到这个可序列化的类,并且可以依赖地执行map-reduce作业。
在Spark独立集群模式下运行时,最好通过spark-submit提交应用程序,而不是在IDE中运行。包装的一切在罐子和火花-提交罐子,作为一个魅力!
工人出现在图片上。为了运行我的代码,我使用了以下命令:
我们有一个Hadoop集群,数据节点为275个节点(55Tb总内存,12000个VCore)。这个集群与几个项目共享,我们有一个YARN队列分配给我们,资源有限。 为了提高性能,我们正在考虑为我们的项目构建一个单独的Spark集群(在同一网络中的Mesos上)并访问Hadoop集群上的HDFS数据。 正如Spark文档中提到的:https://spark.apache.org/docs/lates
如何确定spark独立群集模式上的工作线程数?在独立群集模式下添加工作线程时,持续时间将缩短。 例如,对于我的输入数据3.5 G,WordCount需要3.8分钟。但是,在我添加了一个内存为4 G的工作器后,需要2.6分钟。 增加调谐火花的工人可以吗?我正在考虑这方面的风险。 我的环境设置如下:, 内存128克,16个CPU,用于9个虚拟机 输入数据信息 HDFS中的3.5 G数据文件
/usr/local/spark-1.2.1-bin-hadoop2.4/bin/--类com.fst.firststep.aggregator.firststepmessageProcessor--主spark://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:7077--部署模式集群--监督文件:///home/xyz/sparkstreaming-0.0.1
应用程序不是那么占用内存,有两个连接和写数据集到目录。同样的代码在spark-shell上运行没有任何失败。 寻找群集调优或任何配置设置,这将减少执行器被杀死。
我已经在我的本地安装了mesos,并按照mesos设置中提到的进行了配置。现在我想在本地机器上安装的mesos上运行spark。我已经根据官方文档配置了spark,并在我的本地机器上运行了单节点hadoop集群。Spark二进制包被复制到hdfs根目录,我已经在spark-env.sh中设置了以下属性: 是Spark-Defaults.conf: