草庐IT

bash - 在特定作业上运行 SHell 脚本时如何从 HDFS 获取最新的有效分区日期?

我的任务是为特定的Spark作业实现所有分配的表。我需要根据要为分配给作业的所有表打印的时间戳和路径编写脚本。我需要获取与该作业关联的表关联的所有时间戳。这是我开发的脚本。#!/usr/bin/envbashJOB_NAME=${1}inputDirListings=$(awk-F:-vkey="$1"'$1==key{print$2}'test_paths.txt)fordirin$(echo$inputDirListings|tr",""\n");dopath=$direcho"diris$path"cmd2='hdfsdfs-du-h$path'ev1=`eval$cmd2|ta

apache-spark - 写入数据后使用 .saveAsTable 写入 HDFS 时出现 TImeout 错误

我在EMR上运行Spark2.3,并尝试使用Scala将数据写入HDFS,如下所示:dataframe.write.partitionBy("column1").bucketBy(1,"column2").sortBy("column2").mode("overwrite").format("parquet").option("path","hdfs:///destination/").saveAsTable("result")写入数据并完成任务后,我收到超时错误。错误发生后,我可以在HDFS中看到已完全处理的数据。为什么会出现这个错误?有什么意义吗?看起来主节点正在尝试与另一个IP(

azure - 域加入 HdInsight 集群 hdfs 用户权限

我已经创建了一个加入域的HdInsight集群。这在允许我的activedirector中的用户使用他们的AD凭据登录到集群方面非常有效。但是,似乎并没有限制用户访问各种文件/目录的方法。用户1对用户2的文件具有完全访问权限,反之亦然。我最初的希望是使用Ranger为各种用户/组配置HDFS权限-但是,考虑到后端的blob存储,这似乎不太可能。我也尝试过使用诸如“hadoopfs-chown”之类的命令来设置用户/组/其他权限,但是,当通过ssh进入集群(头节点)时,所有用户似乎都可以为所欲为。这是预期的行为吗?有没有办法限制用户访问HDFS上的各种目录?不幸的是,在后端使用Azure

hadoop - 如何决定在 HDFS 中使用的集群大小和实例类型?

如何在HDFS中决定集群大小、节点数量、要使用的实例类型以及每台机器的硬件配置设置?如果可能,请解释如何处理10TB的数据。例如如果我们有10TB的数据,那么标准的集群大小、节点数量以及可以在hadoop中使用的实例类型应该是多少? 最佳答案 我已经使用Hadoop几年了。首先,查看此Hortonworks指南:https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.5.3/bk_cluster-planning/content/ch_hardware-recommendations

java - Spark 流式传输和模拟 hdfs

需要为Spark流代码实现测试。此特定代码使用thislibrary在单独的jvm中运行上述应用程序的输入是hdfs。我已经像这样启动了MiniDFSClusterexample(javaversion)但我不认为它会起作用,因为它们在两个不同的JVM中。如果我要成功测试spark流代码,模拟hdfs输入的最佳方法是什么。我大致解释了上面的场景。真正的要求是实现一个成功的cucumber测试。 最佳答案 您可以在本地模式下运行Spark并指定诸如“file:///foo/bar”之类的路径,而不是尝试模拟hdfs-然后将使用本地文件

hadoop - 至少一个文件系统不支持 ACL : Distcp HDFS

Asperdistcpdocumentation->If-paisspecified,DistCppreservesthepermissionsalsobecauseACLsareasuper-setofpermissions.buthadoopdistcp-pa-delete-update/src/path/dest/path/isfailingwithACLsnotsupportedonatleastonefilesystem.Completelogsbelow上面的命令执行失败。预期是使用ACL将hdfs文件从源复制到目标。org.apache.hadoop.tools.Copy

hadoop - 将 Hive 表导出到 hdfs 中的 csv/tsv

我使用以下代码以csv/tsv格式将表从配置单元导出到hdfs。INSERTOVERWRITEDIRECTORY'/user/xyz/dem_data/science_data'ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'LINESTERMINATEDBY'\n'STOREDASTEXTFILESELECT*FROMscience_data;当我在hdfs中查看复制的文件时,我看到很多这样的字符??=%??0notherepisod?/aAj%?is?a???$ofJhorse!de9?amA?se0(我不确定出了什么问题。我是否需要对此进行某种编码

docker - docker 中的 Kafka 连接和 HDFS

我在docker-compose中使用kafkaconnectHDFSsink和Hadoop(用于HDFS)。Hadoop(名称节点和数据节点)似乎工作正常。但是kafkaconnectsink出现错误:ERRORRecoveryfailedatstateRECOVERY_PARTITION_PAUSED(io.confluent.connect.hdfs.TopicPartitionWriter:277)org.apache.kafka.connect.errors.DataException:Errorcreatingwriterforlogfilehdfs://namenode:

hadoop - 从一个集群到另一个集群的 HDFS 数据传输不适用于 distcp

我需要将HDFS数据从一个集群传输到另一个集群。我看到“distcp”命令对这种情况有帮助。但事实并非如此。两个集群Namenode都与其他数据节点私下互连。所以我有两台代理机器与名称节点公开连接。比如说,我让namenode的8070端口在haproxy中运行在20000以下。现在我可以ping两个集群名称节点了。所以,我选择了distcp选项。mapreduce作业开始执行数据传输,但尚未完成。[hdfs@ip-20-0-42-252~]$hadoopdistcphdfs://YY.YY.YY.YY:20000/user/ce_prasith/filter.txthdfs://xx

hadoop - 如何使用Flume将数据实时写入HDFS?

我正在使用Flume将传感器数据存储在HDFS中。一旦通过MQTT接收到数据。订阅者将JSON格式的数据发布到FlumeHTTP监听器。它目前工作正常,但问题是水槽在我停止它之前不会写入HDFS文件(或者文件大小达到128MB)。我正在使用Hive在读取时应用模式。不幸的是,生成的配置单元表仅包含1个条目。这是正常的,因为Flume没有将新的数据写入文件(由Hive加载)。有什么方法可以强制Flume以近乎实时的方式将即将到来的新数据写入HDFS?所以,我不需要重新启动它或使用小文件?hereismyflumeconfiguration:#Namethecomponentsonthis