草庐IT

sparking

全部标签

scala - Spark 在 hdfs 上写入 Parquet

我安装了3个节点hadoop和spark。我想从rdbms中获取数据到数据帧中,并将这些数据写入HDFS上的Parquet。“dfs.replication”值为1。当我使用以下命令尝试此操作时,我看到所有HDFSblock都位于我执行spark-shell的节点上。scala>xfact.write.parquet("hdfs://sparknode01.localdomain:9000/xfact")这是预期的行为还是应该将所有block分布在整个集群中?谢谢 最佳答案 由于您正在将数据写入HDFS,因此这不依赖于spark,而

scala - 将 Spark 流数据写入并附加到 HDFS 中的文本文件

我正在创建一个sparkscala代码,我在其中从MQTT服务器读取连续流。我在yarn集群模式下运行我的工作。我想将此流保存并附加到HDFS中的单个文本文件中。我将每1秒接收一次数据流。所以我需要将这些数据附加到HDFS中的单个文本文件中。谁能帮忙。 最佳答案 使用数据框和使用模式Append这将在每次新记录出现时追加数据。valsqlContext=neworg.apache.spark.sql.SQLContext(context)importsqlContext.implicits._stream.map(_.value).

hadoop - Hive on Spark : Missing <spark-assembly*. jar>

我正在运行Hive2.1.1、Spark2.1.0和Hadoop2.7.3。我尝试按照HiveonSpark:GettingStarted构建Spark:./dev/make-distribution.sh--name"hadoop2-without-hive"--tgz"-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"但是,我在spark目录下找不到任何spark-assemblyjar文件(find.-name"spark-assembly*.jar"没有返回任何内容)。我没有将spark-assemblyjar链接到HIVE_

hadoop - spark-shell 无法连接到远程主机

我有两个相同版本的spark。192.168.2.230作为主机,192.168.2.5作为从机。我在2.5和2.230上尝试了./spark-submit--version:Welcometo______/__/__________//___\\/_\/_`/__/'_//___/.__/\_,_/_//_/\_\version2.1.0/_/UsingScalaversion2.11.8,OpenJDK64-BitServerVM,1.8.0_121BranchCompiledbyuserjenkinson2016-12-16T02:04:48ZRevisionUrlType--h

hadoop - 在 Sparklyr 中创建新的 Spark 表或数据框的最有效方法是什么?

在Hadoop集群(不是VM)上使用sparklyr包,我正在处理需要连接、过滤等的几种类型的表...我正在尝试确定使用dplyr命令以及sparklyr中的数据管理功能来运行处理、将其存储在缓存中并使用中间层的最有效方法数据对象以生成保留在缓存中的下游对象。上面提出的这个问题很肤浅,但我希望获得比纯粹效率更多的信息,所以如果你想编辑我的问题,我可以接受......我在Hive中有一些表,我们称它们为Activity2016、Accounts2016和Accounts2017。“帐户”表还包括地址历史记录。我想从2016年的数据开始,合并关于姓名和当前地址的两个表,过滤一些事件和帐户详

hadoop - (Spark) 当两个大的 rdd join 都对内存来说太大时(意味着不能使用广播),是否有任何可能的方法来优化它们?

作为标题。当两个大的rddjoin都对内存来说太大时,是否有任何可能的方法来优化它们?在这种情况下,我想我们不能将广播用于map端连接。如果我必须加入这两个rdd,并且它们都太大而无法容纳在内存中:country_rdd:(id,country)income_rdd:(id,(income,month,year))joined_rdd=income_rdd.join(country_rdd)有什么方法可以减少这里的洗牌吗?或者我可以做些什么来调整连接性能?此外,joined_rdd将仅按国家和时间进一步计算和减少,不再与id相关。例如:我的最终结果=不同国家不同年份的收入。这样做的最佳

scala - 如果我有身份验证详细信息,如何使用 spark 编程 API 写入 HDFS?

我需要写入外部HDFS集群,其身份验证详细信息可用于简单例份验证和kerberos身份验证。为了简单起见,假设我们正在处理简单的身份验证。这是我的:外部HDFS集群连接详细信息(主机、端口)身份验证详细信息(简单例份验证的用户)HDFS需要写入文件的位置(hdfs://host:port/loc)此外,其他细节,如格式等。请注意SPARK用户与为HDFS身份验证指定的用户不同。现在,使用spark编程API,这就是我想要做的:valhadoopConf=newConfiguration()hadoopConf.set("fs.defaultFS",fileSystemPath)hado

apache-spark - yarn 容量调度器 : Share resource between users and queues

我在设置以下调度程序队列参数时遇到了一些问题:有2个队列Dev和Prod根100%开发30%生产率70%(如果只有一个使用它应该充当100%的集群)每个队列由多个用户使用,资源应该被平均共享,但是当只有一个用户存在时(在每个队列中)它应该使用队列的全部容量。如果用户单独在集群中,它应该使用100%的集群以防第二个用户加入,调度程序应该共享可用资源我现在有什么,示例流程:集群没有作业用户队列Dev中的提交作业。(它现在使用100%的集群)用户B在队列Dev提交作业(它卡在已接受并等待第一个作业完成)我想要什么:在这种情况下,因为第二个作业在同一个队列中,每个作业都应该接收队列的50%,即

apache-spark - Hive 数据库仅列出默认数据库

当我尝试通过Spark(1.6)列出所有Hive数据库时scala>valtdf=sqlContext.sql("SHOWDATABASES");tdf:org.apache.spark.sql.DataFrame=[result:string]scala>tdf.show+-------+|result|+-------+|default|+-------+当我尝试通过hiveshell列出所有hive数据库时hive>showdatabases;OKdefaultTimetaken:0.621seconds,Fetched:1row(s)在我的hive中,实际上我已经有了很多数据库

json - 从 spark 中保存压缩的 json

我想从SparkRDD中暂存JSON数据并将其存档到AWSS3。只有压缩它才有意义,我有一个使用hadoop的GzipCodec的进程。,但有些事情让我对此感到紧张。当我查看org.apache.spark.rdd.RDD.saveAsTextFile的类型签名时这里:https://spark.apache.org/docs/2.3.0/api/scala/index.html#org.apache.spark.rdd.RDD类型签名是:defsaveAsTextFile(path:String,codec:Class[_但是当我在这里检查可用的压缩编解码器时:https://spa