草庐IT

re-doing-it-wrong

全部标签

hadoop - yarn : Do we need nodemanager on namenode?

我们是否需要在名称节点节点上启动节点管理器,即我不会将其设为数据节点?我将在一台机器上启动namenode和resourcemanager。由于我不会在这台机器上启动datanode,我想我也不需要启动nodemanager?感谢 最佳答案 这取决于你。您可以选择在未安装Datanode服务的节点上保留Nodemanager,在这种情况下,如果由该Nodemanager执行,数据将通过网络传输以执行任务。但是如果你想减少主节点的负载,那么你应该避免在它上面安装如此繁重的进程(Datanode和NodeManager)。在许多情况下,

java - 线程 "main"java.lang.IllegalArgumentException : Wrong FS: expected: file:///中的异常

我正在尝试使用java实现copyFromLocal命令,下面是我的代码。packagecom.hadoop;importjava.io.IOException;importjava.net.URI;importjava.net.URISyntaxException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;publicclassCopyFromLocal{publicstaticvoidmain(Str

java - Hadoop : set a variable like hashSet only once so that it can be utilized multiple times in each map task

您好,我有一个HashSet,它需要在hadoop中的每个映射任务中使用。我不想多次初始化它。我听说可以通过在配置函数中设置变量来实现。欢迎提出任何建议。 最佳答案 看来你还没有真正了解Hadoop的执行策略。如果你是分布式模式,你不能在多个map任务中共享一个集合(HashSet)。这是因为任务是在它们自己的JVM中执行的,并且它不是确定性的,即使不使用jvm重用,你的集合在jvm被重置后仍然存在。您可以做的是在计算开始时为每个任务设置一个HashSet。因此您可以覆盖setup(Contextctx)方法。这将在调用映射方法之前

java - Apache Hadoop : Can it do "time-varying" input?

即使经过一些谷歌搜索,我也没有找到答案。我的输入文件是由一个进程生成的,当文件达到1GB时,该进程将它们分块。现在,如果我要运行一个处理dfs中的输入目录的mapreduce作业,我如何确保该作业在hadoop作业运行时获取添加到同一输入目录的文件?我觉得这几乎是不可能的,因为当hadoop作业运行时,它会计算剩余时间和所有这些东西,所以当我的输入不断堆积或换句话说是“可变的”时,Hadoop不会知道如何管理它-这是我的猜测。我想知道您对此的看法以及对此的最佳替代方法!感谢您的帮助。 最佳答案 您描述的用例不是Hadoop设计用来处

java.lang.IllegalAccessError : cannot access its superinterface 错误

问题:我有两个具有相同限定路径的java类。我正在运行一个EMR作业,为此我将所有依赖项jar打包在一个jar中并上传到S3。EMR集群应该使用来自S3的这个jar。但我收到错误:Exceptioninthread"main"java.lang.IllegalAccessError:classorg.apache.hadoop.fs.s3native.AbstractNativeS3FileSystemStorecannotaccessitssuperinterfaceorg.apache.hadoop.fs.s3native.NativeFileSystemStoreatjava.l

hadoop - java.lang.IllegalArgumentException : Wrong FS 异常

我正在尝试在我的Ubuntu机器上安装oozie。这是我的core-site.xmlhadoop.tmp.dir/app/hadoop/tmpAbaseforothertemporarydirectories.fs.default.namehdfs://localhost:54310Thenameofthedefaultfilesystem.AURIwhoseschemeandauthoritydeterminetheFileSystemimplementation.Theuri'sschemedeterminestheconfigproperty(fs.SCHEME.impl)nam

Python 和 MapReduce : beyond basics -- how to do more tasks on one database

我有一个巨大的txt数据存储,我想在其中收集一些统计数据。使用Hadoop流和Python我知道如何实现MapReduce以在单个列上收集统计信息,例如计算100个类别中的每个类别有多少条记录。我创建了一个简单的mapper.py和reducer.py,并将它们分别作为-mapper和-reducer插入到hadoop-streaming命令中。现在,我对如何实际处理更复杂的任务有点不知所措:除了上述类别(例如地理位置、类型、日期等)之外,还收集各种其他列的各种统计数据。所有这些数据都在同一个txt文件中。我是否将mapper/reducer任务链接在一起?我是否传递最初很长的键值对(

hadoop - HDFS 加密 : User:hdfs not allowed to do 'DECRYPT_EEK' on 'hdfskey'

我正在尝试在HDP2.4上使用RangerKMS设置HDFS加密。我能够部署和配置KMS服务。我已经创建了一个key和一个访问策略,以授予hdfs用户使用此key进行操作的所有权限。我可以创建一个加密区域sudo-uhdfshdfsmkdir/data_encsudo-uhdfshdfscrypto-createZone-keyNamehdfskey-path/data_enc但是,当我尝试将文件放入目录时,出现此错误:sudo-uhdfshdfsdfs-put/tmp/file.txt/data_enc/...User:hdfsnotallowedtodo'DECRYPT_EEK'o

python - pickle .PicklingError : args[0] from __newobj__ args has the wrong class with hadoop python

我正在尝试通过spark删除停用词,代码如下fromnltk.corpusimportstopwordsfrompyspark.contextimportSparkContextfrompyspark.sql.sessionimportSparkSessionsc=SparkContext('local')spark=SparkSession(sc)word_list=["ourselves","out","over","own","same","shan't","she","she'd","what","the","fuck","is","this","world","too","w

hadoop - Sqoop 增量导入到 S3 Wrong FS 报错

使用--incrementalappend时sqoopimport中的标志,作业将失败。ERRORtool.ImportTool:ImportedFailed:WrongFS:s3n://:@bucket/folder/完整命令如下:sqoopimport--connectjdbc:postgresql://someplace.net:12345/db--warehouse-dirs3n://:@bucket/folder/--tablemy_table--hive-drop-import-delims--escaped-by"\\"--usernameroot--passwordsa