使用cygwin从windows上传日志到hdfs
windows操作系统:windows server2003 对cygwin不熟,所幸我只是需要进行很简单的应用,在同事的帮助下完成了这个工作。这里大致说一下,给大家提供一个思路。 1、安装JDK,并配置环境变量。要注意安装路径不要空格,不要安装到类似于program files这种目录,否则cygwin会出问题。 2、部署hadoop。直接拉一个liux上部署的hadoop,并部署到本地。我把它放到了D盘的根目录下。 3、安装cygwin。主要是几个组件,不必细说。我把它安装到了D盘的根目录下。 4、创建windows用户cloud。这里创建的用户,必须与linux里运行hadoop的用户相同,否则在上传文件时会提示没有权限。 5、创建一个供cloud用户调用的bat文件,写入: D:\cygwin\bin\bash--login-iD:/hadoop-0.20.2-CDH3B4/bin/hadoop-ls/ 上述脚本的目的是为了测试使用windows脚本通过cygwin调用hadoop命令是否成功。注意斜杠的不同: 前半部分是windows下的斜杠,后半部分是linux下的斜杠! 以cloud用户的身份运行这个脚本后,cygwin会其安装目录下的home文件下创建一个cloud的用户目录! 6、上述测试通过以后,则在cygwin中的cloud用户目录中创建一个sh文件,比如名为upload.sh的文件,写入: #!/bin/bash D:/hadoop-0.20.2-CDH3B4/bin/hadoopfs-put$DIR/$FILES$HDFS 然后,重新编辑刚才的bat文件,把后面的命令更改为sh脚本名称: D:\cygwin\bin\bash--login-i/home/cloud/upload.sh 7、其它的部分的修改,主要是 hadoop配置文件,一般要把其中的 JAVA环境变量注释掉,或者某些部分的斜杠要改成 windows的习惯, 或者要修改windows的hosts表。 本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/665666