我试图理解Kerberos是如何工作的,因此遇到了一个名为Keytab的文件,我相信它用于对KDC服务器进行身份验证.
就像kerberos领域中的每个用户和服务(比如说Hadoop)都有服务主体一样,每个用户和服务都有一个keytab文件吗?
此外,使用keytab进行身份验证是否适用于对称密钥加密或公钥 - 私钥?
我有一个结构化流应用程序从 Kafka 读取消息。每天的消息总数约为 180 亿条,每分钟的峰值消息数 = 12,500,000。最大消息大小为 2 KB。
如何确保我的 Structured Streaming 应用程序能够处理如此多的数据量和速度?基本上,我只想知道如何设置最佳触发时间、maxOffsetsPerTrigger 或任何其他使工作顺利进行并能够处理故障和重新启动的配置。
apache-kafka apache-spark spark-streaming spark-structured-streaming
我有这段代码可以从 Hadoop 文件系统中获取文件。我在单个节点上设置了 hadoop,然后从我的本地机器运行此代码,以查看它是否能够从该节点上的 HDFS 设置中获取文件。有效。
package com.hdfs.test.hdfs_util;
/* Copy file from hdfs to local disk without hadoop installation
*
* params are something like
* hdfs://node01.sindice.net:8020 /user/bob/file.zip file.zip
*
*/
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HDFSdownloader{
public static void main(String[] args) throws Exception {
System.getProperty("java.classpath");
if (args.length != 3) {
System.out.println("use: HDFSdownloader hdfs src dst");
System.exit(1);
}
System.out.println(HDFSdownloader.class.getName());
HDFSdownloader dw = new HDFSdownloader();
dw.copy2local(args[0], args[1], args[2]);
}
private void copy2local(String hdfs, String src, String …Run Code Online (Sandbox Code Playgroud) 我有一个在应用程序启动时作为另一个 Actor 的子级创建的 Actor,每天从父级接收一条消息,以执行从某个 SFTP 服务器获取某些文件的操作。
现在,可能存在一些轻微的临时连接异常,导致操作失败。在这种情况下,需要重试。
但可能存在抛出异常并且重试时无法解决的情况(例如:找不到文件、某些配置不正确等)
因此,在这种情况下,考虑到参与者将在很长的时间间隔(每天一次)后收到消息,适当的重试机制和监督策略可能是什么。
在这种情况下,发送给参与者的消息并不是错误的输入——它只是一个触发器。例子:
case object FileFetch
Run Code Online (Sandbox Code Playgroud)
如果我在父级中有这样的监督策略,它将在每个次要/主要异常时重新启动失败的子级,而无需重试。
override val supervisorStrategy =
OneForOneStrategy(maxNrOfRetries = -1, withinTimeRange = Duration.inf) {
case _: Exception => Restart
}
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的:
override val supervisorStrategy =
OneForOneStrategy(maxNrOfRetries = -1, withinTimeRange = Duration.inf) {
case _: MinorException => Retry same message 2, 3 times and then Restart
case _: Exception => Restart
}
Run Code Online (Sandbox Code Playgroud) 我想编写一个数据保留shell脚本,当给出两个输入时 - 基本目录和保留期(以天为单位)删除仅比保留期更早的文件(而不是目录).我在互联网上搜索过并且有一些解决方案,但他们列出了目录并根据修改时间删除它们.
但是目录可能具有非常旧的时间戳,但可能包含最近更新的文件.
我该怎么办?命令中的mindepth和maxdepth选项find在HDFS中不起作用.
基目录可以具有多个子目录,这些子目录可以具有子目录等等.
base 目录是 /user/abhikaushik
然后我们有yyyy/mm/dd/hh像base/2017/04/23/22
或base/studies/programming/file1.txt等等形式的子文件夹
hadoop ×3
kerberos ×2
actor ×1
akka ×1
akka-actor ×1
apache-kafka ×1
apache-spark ×1
hdfs ×1
java ×1
keytab ×1
scala ×1
security ×1
shell ×1