草庐IT

scala - 写入 HDFS - hive 时如何控制 Spark 流中的行数和/或输出文件大小?

使用SparkStreaming读取和处理来自Kafka的消息并写入HDFS-Hive。由于我希望避免创建许多垃圾文件系统的小文件,我想知道是否有办法确保最小文件大小和/或强制文件中输出行数最少的能力,除了超时。谢谢。 最佳答案 据我所知,无法控制输出文件中的行数。但是您可以控制输出文件的数量。控制它并考虑您的数据集大小可能会帮助您满足您的需求,因为您可以计算输出中每个文件的大小。您可以使用coalesce和repartition命令执行此操作:df.coalesce(2).write(...)df.repartition(2).w

hadoop - 使用hdfs目录建表时如何指定时间戳格式

我的hdfs存储中的path/to/file中有以下csv文件。1842,10/1/20170:027424,10/1/20174:06我正在尝试使用以下命令创建一个表:createexternaltablet(numberstring,reported_timetimestamp)ROWFORMATdelimitedfieldsterminatedBY','LOCATION'path/to/file';我可以在impala查询编辑器中看到t表中的reported_time列始终为空。我想这是因为我的时间戳不是可接受的时间戳格式。问题:如何指定时间戳列应为dd/mm/yyyyhh:mi

hadoop - hdfs ls on directory 返回 No such file or directory 错误

HDFSls在以下两个目录上返回Nosuchfileordirectory错误。[mybox]$hdfsdfs-ls/data/tdc/dv1/corp/base/dpp/raw/load_date=2018-05-01/|grepTenantdrwxr-xr-x-tdcdv1rtdcdv1c02018-05-0118:28/data/tdc/dv1/corp/base/dpp/raw/load_date=2018-05-01/rtng_ky=Access.NBNOrder.Amend.Info.{Tenant}.Rejected.v2.eventdrwxr-xr-x-tdcdv1rt

mysql - 在 Cloudera 中使用 sqoop 将数据从 HDFS 导出到 mysql 时作业失败

我正在导出HDFS位置/user/training/sqoop_import/departments_export目录中存在的departments_export文件的HDFS数据。以下是文件中的记录。2,Fitness3,Footwear4,Apparel5,Golf6,Outdoors7,FanShop8,Development1000,Admin1001,Books我想将数据导出到名为departments_export(department_idint,department_namevarchar)的mysql表中。此表已包含以下数据mysql>select*fromdepar

mongodb - 是否可以将数据库直接从 HDFS 作为 DataFrame 加载到 spark 中?

我的MongoDB和Spark在Zeppelin上运行,它们共享相同的HDFS。MongoDB生成一个存储在同一个HDFS中的.wt数据库。我想将MongoDB生成的数据库集合从HDFS加载到SparkDataFrame中。是否可以将数据库直接从HDFS作为DataFrame加载到spark中?还是我需要使用MongoDBSpark连接器? 最佳答案 我不建议阅读或修改内部WiredTigerStorageEngine's*.wt文件。首先,这些内部文件可能会在没有通知的情况下更改(不是面向公众的API),而且对这些文件的任何意外修

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-然后将使用本地文件