小编use*_*611的帖子

检查HDFS中的目录是否已存在

我在HDFS中有以下目录结构,

/analysis/alertData/logs/YEAR/MONTH/DATE/HOURS
Run Code Online (Sandbox Code Playgroud)

这就是数据即将发布并以年/月/日/小时的格式存储.

我写了一个shell脚本,我正在通过路径直到

"/analysis/alertData/logs"   ( this will vary depending on what product of data i am handling)
Run Code Online (Sandbox Code Playgroud)

然后shell脚本遍历年/月/日/小时文件夹并返回最新的路径.

例如:

 Directories present in HDFS has following structure: 

 /analysis/alertData/logs/2014/10/22/01
 /analysis/alertData/logs/2013/5/14/04

 shell script is given path till :   " /analysis/alertData/logs "

 it outputs most recent directory :    /analysis/alertData/logs/2014/10/22/01
Run Code Online (Sandbox Code Playgroud)

我的问题是如何验证HDFS目录路径传递给shell脚本是否有效.让我说我传递一个错误的路径作为输入或路径不存在所以如何在shell脚本中处理它.

示例错误路径可以是:

  wrong path   :  /analysis/alertData ( correct path :  /analysis/alertData/logs/ )
  wrong path   :  /abc/xyz/  ( path does not exit in HDFS )
Run Code Online (Sandbox Code Playgroud)

我尝试使用Hadoop dfs -test -z/-d/-e选项对我没用.对此有任何建议.

注意:不在此处发布我的原始代码,因为我的问题的解决方案不依赖于它.

提前致谢.

shell scripting hadoop hdfs

14
推荐指数
4
解决办法
4万
查看次数

最佳实施旅行商/车辆路线使用案例

我最近遇到了一个案例,当被要求解决的用例属于旅行商问题/车辆路径问题时.我能够告诉他们实际问题是什么以及问题涉及什么数学.我确实解释了如何使用Hadoop的MapReduce范例部分解决下面提到的用例.(解释了多个地图减少工作将如何解决问题)使用本书中提到的数据密集文本处理与MapReduce提到的图谱算法"由Jimmy Lin和Chris Dyer编写.

出于好奇,我在google上做了一些研究,我可以看到很多实现和研究已经针对不同风格的这个问题做了.问题我被问到有(x,y)格式提到的城市坐标,我在谷歌看到的许多解决方案考虑了一些其他因素,如单位距离,负/正测量单位等.所以简而言之,我做了研究和阅读,我更加困惑.

我的问题是针对以下用例可能的解决方案以及它们中最好的解决方案.如果一些经验丰富的人可以对此进行一些说明,那么清除我的困惑并以更好的方式理解解决方案将会有所帮助.或者,如果有人可以指导我正确的方向(这样我就不会更加困惑地探索整个解决方案的海洋)

访谈中使用的用例:

一家公司正试图寻找最佳的最佳解决方案,为12名员工提供300服务.他们想要一种技术解决方案,告诉他们如何随着业务的增长以及其他变化(如客户变更位置,新位置等)的变化来满足客户需求.

问题基本上是旅行商问题(TSP)或车辆路径问题(VSP)的一种形式.以下事情需要在这里完成.

起始坐标为(0,0),城市坐标示例如下所述.以下是在文本文件中作为输入提供的工作解决方案的坐标:

X coordinate    Y Coordinate 
420 278 
421 40 
29  178 
350 47 
298 201 
417 186 
378 134 
447 239 
42  114 
45  199 
362 195 
381 243 
429 1 
338 209 
176 9 
364 26 
326 182 
500 129 
190 51 
489 103 
368 142 
132 260 
305 200 
446 137 
375 154 
440 190 
9   118 
437 32 
383 266 
Run Code Online (Sandbox Code Playgroud)
  1. 什么是正确的方法来处理这个NP难题,或者如果不正确的方式可能是不同的方法与他们的利弊.

  2. 由于其更多基于分析的问题可以进行某种可视化来解决这个问题.像一些图形或使用R /分析工具

如果您需要更多详细信息,或者您可以建议我可以阅读和了解更多内容,请告诉我.

提前致谢

java algorithm statistics analytics hadoop

12
推荐指数
1
解决办法
1283
查看次数

如何在perl中合并目录路径

我有一个Perl脚本,在其中我给出了目录的路径作为输入。目录中包含xml文件。

在我的代码中,我遍历所有xml文件并为所有xml文件创建绝对路径。代码运行正常。

#!/usr/bin/perl

use File::Spec;

$num_args = $#ARGV + 1;
if ($num_args != 1) {
   print "\nUsage: $0 <input directory>\n";
   exit;
}

my $dirPath = $ARGV[0];

opendir(DIR, $dirPath);
my @docs = grep(/\.xml$/,readdir(DIR));

foreach my $file (@docs) 
{
   my $abs_path = join("",$dir,$file);

   print "absolute path is $abs_path";
}
Run Code Online (Sandbox Code Playgroud)

我在这里的问题是,在没有分隔符的情况下连接$ dirPath和$ file意味着$ dirPath必须以“ /”结尾。因此,在perl中是否有任何方法或内置函数可以照顾这种情况并替换join方法。

我只想不用担心分隔符“ /”。即使以“ / test / dir_to_process”或“ / test / dir_to_process /”路径调用脚本,我也应该能够为存在的所有xml文件生成正确的绝对路径,而不必担心分隔符。

让我知道是否有人有任何建议。

linux perl

6
推荐指数
2
解决办法
5492
查看次数

使用 BaseX 读取多个 XML 文件

嗨,我是 BaseX 的新手,我正在尝试从文件夹中读取一堆 XML 文件。读取这些文件后,我会将数据输出到数据库表(一些 RDBMS)中。但是我不知道从哪里开始,因为我找不到很多关于使用 BaseX 的教程。我已经在互联网上搜索过,但仍然没有太大帮助。有人可以帮我解决这个问题。

提前致谢。

xml basex

5
推荐指数
1
解决办法
3811
查看次数

访问perl中的默认目录

我有一个perl脚本,它将目录路径作为输入,然后脚本遍历该目录中的所有文件.对于每个文件,它调用其他一些函数.

这是脚本:

#!/usr/bin/perl

use JSON;   
use XML::Simple;
use File::Spec;

$num_args = $#ARGV + 1;
if ($num_args != 1) {
    print "\nUsage: $0 <input directory>\n";
    exit;
}

my $dir = $ARGV[0];

opendir(DIR, $dir) or die "cannot open directory";

@docs = grep(/\.xml$/,readdir(DIR));

foreach $file (@docs) 
{
    my $abs_path = join("",$dir,$file);
    #print $abs_path;
    my $return_object = some_function_call($abs_path);
    print_output($return_object);
 }

 sub print_output
 {
    my $output_object = $_[0];
    print $output_object;
 }
Run Code Online (Sandbox Code Playgroud)

我这里的问题是当我正在读取输入目录时,如果不存在,怎么能使上面的脚本从"一些默认目录位置"读取.我尝试添加一些逻辑,但不适合我.这是我的第一个perl脚本,所以请原谅我,如果这个问题太基础了.

我在LINUX环境中工作.

linux shell perl

1
推荐指数
1
解决办法
227
查看次数

标签 统计

hadoop ×2

linux ×2

perl ×2

shell ×2

algorithm ×1

analytics ×1

basex ×1

hdfs ×1

java ×1

scripting ×1

statistics ×1

xml ×1