使用WebDAV从Windows上传日志到HDFS

2019-03-28 14:09|来源: 网络

在讨论如何从windows上传日志到hdfs时,除cygwin外,我们还测试了另外一种手段:webdav。

hdfs-webdav 下载
扩展Hadoop hdfs,实现webdav协议. 以便将hdfs映射为本地文件夹.

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2012年资料/1月/16/使用WebDAV从Windows上传日志到HDFS/

 

参考文档:http://www.linuxidc.com/Linux/2012-01/51647.htm

网上关于使用webdav进行上传日志的文章,基本上都是以上述链接文档为参考的。而且上述链接文档说的很详细,这里就不再赘述,安装完以后,即可从网页上看到效果。如图:

但是我们在windows上挂载hdfs目录时,出了点问题:必须与webdav同网段的windows机器才能挂载webdav目录!

为了解决这个问题,我们写了一个cshell程序,不用再挂载webdav目录了,直接连接URL进行上传;后来发现一个更简便的方法,就是使用curl的windows版直接上传,创建一个bat文件,用于计划任务,定时执行上传动作。我的bat文件示例如下:

for /R "G:\test" %%s in (*.*) do ( G:\curl_722_0\curl.exe -T %%s http://192.168.9.53:8080/hdfs-webdav/test/ )

注意:webdav的地址最后必须要有一个斜杠 (/)!否则会上传失败。

--------------------------------------------------------------

2011-10-09补充:

按上述做法搭建成功webdav,但是在上传日志到hdfs的时候,发现了一个问题:webdav按照64M大小的分块进行存储文件,默认拷贝3份副本;而我的集群设置为128M的块大小,2份副本。两者不符。

解决办法是,把hadoop的hdfs-site.xml文件拷贝到webdav的WEB-INF/classes目录下,跟hadoop-site.xml文件放到一起。

相关问答

更多
  • WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。 iphone怎么访问webdav服务器? 首先,需要安装一个WebDAV客户端。 1.直接在APP store中搜索,Web ...
  • 如何上传的?api么?你写两个不同的文件试试 先确定问题在哪,如果有错误日志贴出来
  • cURL会为你做的 curl -T filetoput.xml http://www.url.com/filetoput.xml cURL will do it for you. curl -T filetoput.xml http://www.url.com/filetoput.xml
  • 我自己测试了这一点,并且指出创建HDFS文件几乎与追加HDFS文件相同。 这是假设写入的内容小于HDFS块大小。 如果你上传一个HDFS文件,这相当于创建HDFS文件并添加到它,所以这意味着它需要两倍的时间追加到它。 I have tested this myself, and have noted that creating an HDFS file takes almost the same time as appending to it. This is assuming that the conte ...
  • 我在这里找到了答案 因为我正在使用YARN框架,所以我在log4.properties文件中为mapred.audit.logger添加了以下行 log4j.logger.org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger=${mapred.audit.logger} I found an answer here As i am using YARN framework, i just added the below line in lo ...
  • 使用date +%T是不可能的,因为命令结果将包含:字符如11:12:45 ,并且在HDFS中无法创建具有:字符的文件名。 请参阅Hadoop-3275 。 在脚本中尝试此命令, hdfs dfs -put /home/myname/folder1/* /user/myname/example_1_`date +%H%M%S`.txt 这将创建类似/user/myname/example_1_111245.txt文件名。 Using date +%T is not possible as the comm ...
  • 在Server 2003上,默认情况下不安装Web文件夹(WebDAV客户端)。 您可以从Microsoft网站安装它: http : //www.microsoft.com/download/en/details.aspx?displaylang = en& id = 15123 请注意,这将安装Web文件夹扩展。 如果您希望使用地图网络驱动器向导(迷你重定向器,另一个WebDAV客户端),请按照下列步骤操作: 确保WebClient服务正在运行。 打开“服务”管理单元并查找WebClient服务。 在W ...
  • 使用CURLOPT_RESUME_FROM_LARGE选项 。 将其设置为从中启动简历的位置。 或者使用-1使卷曲在部分上传的文件末尾自动恢复。 请注意,这仅影响远程端。 您还需要寻找到同一位置的本地文件读指针(使用fseek )。 因此,如果要在部分上载文件的末尾恢复,则需要首先查询其大小,以了解在何处寻找本地文件读取指针。 为此,请参阅PHP:远程文件大小而不下载文件 。 Use the CURLOPT_RESUME_FROM_LARGE option. Either set it to a posit ...
  • 我相信您描述的方法(称为“挑战/响应”方法)是WebDAV的预期行为。 至少它是根据规格 。 没有auth头的第一个请求是必要的; 来自WebDAV的响应包含验证下一个请求的随机数 ,有助于避免例如重放攻击。 所以,底线:你不能,也不应该试图避免这种行为。 对于正在执行此操作的非Windows客户端...在初始质询/响应调用之后,他们可能会以某种方式缓存和重用nonce。 这在规范中肯定是允许的 - 即使nonce应该是一次性项目,规范允许WebDAV服务器在多个请求中使nonce短命。 您的非Window ...
  • 要在HDFS和S3之间复制数据,应该使用s3DistCp 。 s3DistCp针对AWS进行了优化,并在S3存储桶中并行执行大量文件的高效复制。 对于s3DistCp使用,您可以在这里参考文档: http : s3DistCp s3DistCp的代码在这里可用: https : //github.com/libin/s3distcp For copying data between HDFS and S3, you should use s3DistCp. s3DistCp is optimized for ...