使用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 -i D:/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/hadoop fs -put $DIR/$FILES $HDFS 
   然后,重新编辑刚才的bat文件,把后面的命令更改为sh脚本名称:
D:\cygwin\bin\bash --login -i /home/cloud/upload.sh 
   7、其它的部分的修改,主要是hadoop配置文件,一般要把其中的JAVA环境变量注释掉,或者某些部分的斜杠要改成windows的习惯,或者要修改windows的hosts表

相关推荐