我是HortonworksVM的新手,我很困惑。我正在尝试在Spark上运行.jar文件。通常我通过运行在Windows上进行本地测试spark-submit--driver-memory4g--classen.name.ClassName%CODE%/target/program.jar但由于我需要Hive,所以我想我应该转移到HortonworksVM以在本地进行测试。现在,我已经通过Hortonworks的Ambari的HDFS文件GUI将我的.jar和输入文件上传到HDFS(到/tmp/my_code目录)。接下来是什么?我也找到了命令行,但是如何从VM的命令行访问HDFS上的
我的数据大约是300G。如果我使用Hadoop对其执行reduce作业,180个reduce插槽就可以了,队列中没有任务等待。如果我使用具有相同数量的reduce槽的Spark执行此操作,它会在洗牌阶段卡住,而如果我使用更多的槽(比如4000)就不会发生这种情况,但这将以低效率结束。有什么我可以做的,比如调整参数,以便我可以使用与hadoop相同的插槽?顺便说一句,我的集群有15个节点,每个节点有12个核心 最佳答案 ShuffleOperationinHadoopandSpark是关于该主题的好读物。一些引述:Eachmaptas
为了调试,我需要在我的Spark作业中获取当前的Hadooporg.apache.hadoop.conf.Configuration。具体来说,我需要使用org.apache.hadoop.fs.Path#getFileSystem(conf:Configuration)方法获取org.apache.hadoop.fs.FileSystem路径给定一个org.apache.spark.SparkContext,有没有办法获取Configuration? 最佳答案 您可以按照下面的代码设置配置sc.hadoopConfiguratio
请帮助我理解HDFS的数据block和Spark中的RDD之间的区别。HDFS将数据集分发到集群中的多个节点作为具有相同大小的block,数据block将被复制多次并存储。RDD被创建为并行集合。Parallelized集合的元素是跨节点分布还是存储在内存中处理?和HDFS的数据block有关系吗? 最佳答案 IsthereanyrelationtoHDFS'datablocks?一般不会。他们解决不同的问题RDD是关于分配计算和处理计算失败的。HDFS用于分配存储和处理存储故障。分布是公分母,但仅此而已,故障处理策略明显不同(分别
我在docker容器中使用hadoop集群(我正在使用覆盖网络)我在同一个主机上有2个容器(master和slave2)另一个在不同的主机(slave1)容器可以访问仅由它们使用的本地网络10.0.0.0master和slave2容器还可以访问与主机172.18.0.0共享的另一个网络Slave1可以访问与其主机共享的不同网络172.18.0.0两台主机中的网络172.18.0.0是独立的。所以恢复每个容器都有两个ip地址master:10.0.0.2和172.18.0.2salve2:10.0.0.3和172.18.0.3药膏3;10.0.0.4和172.18.0.2树容器必须通过1
我试图在我的本地机器(MacBookproosx10.13.3)上运行我的Scala作业,但我在运行时遇到错误。我的版本:scala:2.11.12Spark:2.3.0hadoop:3.0.0我通过brew安装了所有东西。异常(exception)是:引起:java.lang.StringIndexOutOfBoundsException:开始0,结束3,长度2发生在那些行:valconf=newSparkConf().setAppName(getName).setMaster("local[2]")valcontext=newSparkContext(conf)最后一行是抛出异常的
我正在使用Zeppelin0.7.0来运行Spark作业。我的Zeppelin是独立安装的,而Spark是使用Hortonworks/Ambari(版本2.6)安装的。当我在Ambari中检查Spark的状态时,它全是绿色的。对于许多解释器来说,Zeppelin也运行良好。但是Spark解释器不起作用。我尝试做的任何事情,甚至像sc.version这样简单的事情都会给出完全相同的错误:java.lang.NullPointerExceptionatorg.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)atorg.apach
我正在寻找从Kafka读取消息(大量消息,每天大约100B)的最佳方式,在读取消息后我需要对数据进行操作并将其写入HDFS。如果我需要以最佳性能执行此操作,那么从Kafka读取消息并将文件写入HDFS的最佳方式是什么?哪种编程语言最适合?我是否需要考虑为此使用Spark等解决方案? 最佳答案 您应该为此使用Spark流(参见here),它提供了Kafka分区和Spark分区之间的简单对应关系。或者您可以使用UseKafkaStreams(参见more)。KafkaStreams是用于构建应用程序和微服务的客户端库,其中输入和输出数据
我已经实现了一个SparkStreaming作业,它将过去6个月收到的事件流式传输到HDFS。它在HDFS中创建许多小文件,我希望它们的每个文件大小为HDFS的128MB(block大小)。如果我使用追加模式,所有数据都将写入一个parquet文件。如何配置Spark为每128MB数据创建一个新的HDFSparquet文件? 最佳答案 Spark会在写入之前在对象上写入与分区一样多的文件。这可能真的很低效。要减少部分文件的总数,试试这个,它会检查对象的总字节大小并将其重新调整为+1最佳大小。importorg.apache.spar
我是Apache-Spark的新手。我想知道如何在ApacheSpark的MapReduce函数中重置指向Iterator的指针,这样我就写了Iterator>>iter=arg0;但它不起作用。以下是在java中实现MapReduce功能的类。classCountCandidatesimplementsSerializable,PairFlatMapFunction>>,Set,Integer>,Function2{privateList>currentCandidatesSet;publicCountCandidates(finalList>currentCandidatesSet