草庐IT

sparking

全部标签

hadoop - Spark 的 Yarn 集群优化

我正在尝试为我的4节点集群配置Yarn和Spark。每个节点都有以下规范:24核23.5GB内存换掉到目前为止,我配置了Yarn和Spark,Spark可以执行SparkPi示例计算,但这仅在yarn-site.xml的以下配置下有效:yarn.acl.enable0yarn.resourcemanager.hostnameds11yarn.nodemanager.resource.memory-mb20480yarn.scheduler.maximum-allocation-mb20480yarn.scheduler.minimum-allocation-mb1536yarn.nod

hadoop - 在 Spark 1.6.0 View 中输入文件名

我无法在Spark1.6.0View中使用input_file_name()函数。它适用于选择语句或df.withColumn("path",input_file_name()),但不适用于View。例如:CREATEVIEWv_testASSELECT*,input_file_name()FROMtable失败。当我改用INPUT__FILE__NAME时,它也会失败。只是:SELECT*,input_file_name()FROMtable按预期工作。这是一个已知的错误还是我做错了什么?PS:我可以在Hive中创建View,但无法从Spark访问它,因为它失败并出现相同的错误:未知

hadoop - Apache Spark 中的延迟评估

我想了解Apachespark中的惰性求值。我的理解是:假设我在hardrive中有文本文件。步骤:1)首先我将创建RDD1,它现在只是一个数据定义。(现在没有数据加载到内存中)2)我在RDD1上应用了一些转换逻辑并创建了RDD2,这里RDD2仍然是数据定义(仍然没有数据加载到内存中)3)然后我在RDD2上应用过滤器并创建RDD3(仍然没有数据加载到内存中,RDD3也是一个数据定义)4)我执行了一个操作,以便我可以在文本文件中获得RDD3输出。因此,当我执行此操作时,我期望从内存中输出一些内容,然后spark将数据加载到内存中,创建RDD1、2和3并产生输出。所以spark中RDD的惰

apache-spark - Hadoop 与 Spark 澄清

我正在研究Hadoop和Spark,但遇到了一个疑问。请帮我澄清一下。Hadoop从HDFS(硬盘)读取并处理内存中的数据,并将产生的输出写回HDFS(硬盘)。如果这里有误,请纠正我。Sparks也会从硬盘读取数据(否则它可能在第一次的地方?)并将这些数据填充到RDD(在内存中创建)然后进行处理,如果不进一步处理则稍后将数据写入硬盘必需的。在spark中可以创建多个RDD来处理不同类型的数据处理。这些RDD可以相互交互。如果这里有误,请纠正我。建议使用Spark进行实时处理。为什么?Hadoop不能做同样的事情吗?因为最后source和destination都是Harddisk。(如果

scala - 小于 spark scala rdd 中日期的比较

我想打印1991年以前入职的员工数据,下面是我的示例数据:69062,FRANK,ANALYST,5646,1991-12-03,3100.00,,200163679,SANDRINE,CLERK,69062,1990-12-18,900.00,,2001用于加载数据的初始RDD:valrdd=sc.textFile("file:////home/hduser/Desktop/Employees/employees.txt").filter(p=>{p!=null&&p.trim.length>0})用于将字符串列转换为日期列的UDF:defconvertStringToDate(s:

apache-spark - Spark 作业未显示在 Google Cloud 的 Hadoop UI 中

我在GoogleCloud中创建了一个集群并提交了一个Spark作业。然后我按照theseinstructions连接到UI:我创建了一个ssh隧道并用它打开Hadoopweb界面。但工作没有出现。一些额外的信息:如果我通过ssh连接到集群的主节点并运行spark-shell,这个“作业”会显示在hadoop网络界面中。我很确定我以前做过这个并且我可以看到我的作业(包括正在运行的和已经完成的)。我不知道他们之间发生了什么才停止出现。 最佳答案 问题是我在本地模式下运行作业。我的代码有一个.master("local[*]")导致了这

scala - 无法从Sqoop创建的Spark中的序列文件创建数据框

我想读取orders数据并从中创建RDD,它作为sequence文件存储在cloudera的hadoopfs中虚拟机。以下是我的步骤:1)将订单数据导入为序列文件:sqoopimport--connectjdbc:mysql://localhost/retail_db--usernameretail_dba--passwordcloudera--tableorders-m1--target-dir/ordersDataSet--as-sequencefile2)在sparkscala中读取文件:星火1.6valsequenceData=sc.sequenceFile("/ordersD

apache-spark - 如何使用新的 Hadoop parquet magic commiter 通过 Spark 自定义 S3 服务器

我有spark2.4.0和Hadoop3.1.1。根据HadoopDocumentation,为了使用新的Magic提交器,它允许将parquet文件一致地写入S3,我在conf/spark-default.conf中设置了这些值:spark.sql.sources.commitProtocolClasscom.hortonworks.spark.cloud.commit.PathOutputCommitProtocolspark.sql.parquet.output.committer.classorg.apache.hadoop.mapreduce.lib.output.Bindi

java - Spark - 数据集之间的迭代而不收集数据

在我的代码的某个时刻,我有两个不同类型的数据集。我需要一个数据来过滤另一个数据。假设没有办法从此时开始更改代码,有没有办法在不从report2Ds收集所有数据并在Spark函数中使用它的情况下执行我在下面的评论中描述的内容?Datasetreport1Ds...Datasetreport2Ds...report1Ds.map((MapFunction)report->{Stringcompany=report.getCompany();//getdatafromreport2Dswherereport2.getEmployeer().equals(company);},kryo(Rep

apache-spark - 如何知道 Spark 集群 'participate' 中的机器是否有作业

我想知道什么时候可以安全地从集群中的机器上删除节点。我的假设是,如果机器没有任何容器,并且它不存储任何有用的数据,那么移除机器可能是安全的。通过https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html的API,我们可以做到GEThttp:///ws/v1/cluster/nodes获取每个节点的信息如/default-rackRUNNINGhost1.domain.com:54158host1.domain.comhost1.domain.com:804214