在Windows下利用cygwin搭建hadoop环境.

1、  所需软件
1.1、Cygwin
下载地址:http://www.cygwin.com/setup.exe
1.2、JDK 1.6.x
1.3、hadoop(本例用的是hadoop-0.18.2)
下载地址:http://download.csdn.net/detail/kkdelta/4381822
hadoop的官方网站 http://hadoop.apache.org/
2、  安装
2.1、Cygwin安装说明见文章:http://www.zihou.me/2010/02/19/1506/
补充:cygwin的bash是无法复制粘贴的,很不方便,所以可采用putty,下载地址是:http://download.csdn.net/detail/kkdelta/4381833
,将puttycyg.zip解压后的三个exe文件放到Cygwin安装目录HOME_PATH下bin目录下,然后修改HOME_PATH下的Cygwin.bat文件,建议用记事本打开,然后将bash –login –i注释掉,在前面加rem,也就是rem bash –login –i,或者:: bash –login –i,加入 start putty -load cygwin 即可。这样将会用putty的方式启动cygwin.
这样一来就可以复制粘贴了,但注意的是默认的根目录是Cygwin的HOME_PATH,如果要切换到其他主目录,但如果你想要进入到其他根目录,但如果你想要进入到其他根目录,需要通过系统根目录,子猴这里的是/cygdrive,比如要进入到c盘,则为/cygdrive/c。
2.2、JDK的安装省略了
2.3、hadoop-0.18.2安装
将hadoop-0.18.2.tar.gz解压,解压后的目录如hadoop-0.18.2,假设是放在E盘:
E:\hadoop-0.18.2,修改conf/hadoop-env.sh文件,将export JAVA_HOME的值修改为你机上的jdk安装目录,比如/cygdrive/d/tools/jdk1.6.0_03,/cygdrive是Cygwin安装成功后系统的根目录.
3、  安装和配置ssh
3.1、安装
在Cygwin的根目录下分别运行:
$ chmod +r /etc/group
$ chmod +r /etc/passwd
$ chmod +rwx /var
$ ssh-host-config
*** Info: Generating /etc/ssh_host_key
*** Info: Generating /etc/ssh_host_rsa_key
*** Info: Generating /etc/ssh_host_dsa_key
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) yes
*** Info: Note that creating a new user requires that the current account have
*** Info: Administrator privileges.  Should this script attempt to create a
*** Query: new local account 'sshd'? (yes/no) yes
*** Info: Updating /etc/sshd_config file
*** Info: Added ssh to C:\WINDOWS\system32\driversc\services
*** Info: Creating default /etc/inetd.d/sshd-inetd file
*** Info: Updated /etc/inetd.d/sshd-inetd
*** Warning: The following functions require administrator privileges!
*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: [] cygwin
(注:此处输入的cygwin可以是任意的)
*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start sshd' or `cygrunsrv -S sshd'.  Otherwise, it
*** Info: will start automatically after the next reboot.
*** Info: Host configuration finished. Have fun!
在询问yes/no的地方,统一输入yes,sshd就安装好了。
3.2配置
3.2.1、启动sshd服务
net start sshd
CYGWIN sshd 服务正在启动
CYGWIN sshd 服务已经启动成功
3.2.2、$ ssh localhost
试着连接本机看看,注意,如果在没有启动sshd服务,这个连接肯定是失败的!关于此错误也可参见:
http://www.zihou.me/2010/02/19/1521/
如果没问题,会出现下面一些内容:
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 08:03:20:43:48:39:29:66:6e:c5:61:ba:77:b2:2f:55.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
zihou@localhost's password:
会提示输入你机子的登录密码,输入无误后,会出现文本图形,类似于欢迎的提示:
The Hippo says: Welcome to
3.2.3、建立ssh的通道
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
Generating public/private dsa key pair.
Your identification has been saved in /home/zihou/.ssh/id_dsa.
Your public key has been saved in /home/zihou/.ssh/id_dsa.pub.
The key fingerprint is:
6d:64:8e:a6:38:73:ab:c5:ce:71:cd:df:a1:ca:63:54 zihou@PC-04101515
The key's randomart image is:
+--[ DSA 1024]----+

|                 |

|                 |

|          o      |

|         *  E    |

|        S +.     |

|     o o +.      |

|    + * ..o   .  |

|     B + .o. o . |

|    ..+  .ooo .  |

+-----------------+
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再执行遍$ ssh localhost看看,如果没有问题,就说明sshd已经配置好了。
4、  配置hadoop
编辑conf/hadoop-site.xml
加入以下内容:
<configuration>
<property>
<name>fs.default.name</name>
<value>localhost:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5、 运行hadoop
进入到C:\hadoop-0.18.2,在cygwin下的操作如:
$ cd /cygdrive/c/hadoop-0.18.2,
$ bin/hadoop namenode -format 格式化一个新的分布式文件系统,提示信息如下:
12/06/19 14:46:17 INFO dfs.Storage: Storage directory \tmp\hadoop-YaoKun\dfs\name has been successfully formatted.
6、  启动hadoop守护进程
$ bin/start-all.sh
starting namenode, logging to /cygdrive/c/hadoop-0.18.2/bin/../logs/hadoop-YaoKun-namenode-NBK-DAL-625040.out
localhost: starting datanode, logging to /cygdrive/c/hadoop-0.18.2/bin/../logs/hadoop-YaoKun-datanode-NBK-DAL-625040.out
localhost: starting secondarynamenode, logging to /cygdrive/c/hadoop-0.18.2/bin/../logs/hadoop-YaoKun-secondarynamenode-NBK-DAL-625040.out
starting jobtracker, logging to /cygdrive/c/hadoop-0.18.2/bin/../logs/hadoop-YaoKun-jobtracker-NBK-DAL-625040.out
localhost: starting tasktracker, logging to /cygdrive/c/hadoop-0.18.2/bin/../logs/hadoop-YaoKun-tasktracker-NBK-DAL-625040.out
Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).
浏览NameNode和JobTracker的网络接口,它们的地址默认为:
    NameNode - http://localhost:50070/
    JobTracker - http://localhost:50030/
7、  测试
下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。(注:根目录是hadoop的目录)

在伪分布式模式上运行
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop fs -put conf input
12/06/19 15:10:33 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
12/06/19 15:10:33 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
12/06/19 15:10:33 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
12/06/19 15:10:33 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
put: Target input/conf is a directory

$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
如果没有错误的话,会给出一堆信息,如:
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
12/06/19 15:46:55 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
12/06/19 15:46:56 WARN fs.FileSystem: "localhost:9000" is a deprecated filesystem name. Use "hdfs://localhost:9000/" instead.
12/06/19 15:46:57 INFO mapred.FileInputFormat: Total input paths to process : 10
12/06/19 15:46:57 INFO mapred.FileInputFormat: Total input paths to process : 10
12/06/19 15:46:58 INFO mapred.JobClient: Running job: job_201206191545_0001
12/06/19 15:46:59 INFO mapred.JobClient:  map 0% reduce 0%
12/06/19 15:47:05 INFO mapred.JobClient:  map 18% reduce 0%
12/06/19 15:47:09 INFO mapred.JobClient:  map 36% reduce 0%
12/06/19 15:47:11 INFO mapred.JobClient:  map 54% reduce 0%
12/06/19 15:47:13 INFO mapred.JobClient:  map 72% reduce 0%
12/06/19 15:47:15 INFO mapred.JobClient:  map 81% reduce 0%
12/06/19 15:47:16 INFO mapred.JobClient:  map 90% reduce 0%
12/06/19 15:47:17 INFO mapred.JobClient:  map 100% reduce 0%
12/06/19 15:47:26 INFO mapred.JobClient:  map 100% reduce 12%
12/06/19 15:47:31 INFO mapred.JobClient:  map 100% reduce 18%
12/06/19 15:47:32 INFO mapred.JobClient:  map 100% reduce 21%
12/06/19 15:47:36 INFO mapred.JobClient:  map 100% reduce 27%
12/06/19 15:47:39 INFO mapred.JobClient: Job complete: job_201206191545_0001
.......
查看输出文件:
将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*
或者
在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/*
完成全部操作后,停止守护进程:
$ bin/stop-all.sh
这样,hadoop就成功配置了!
说明:
Hadoop中文文档地址:http://hadoop.apache.org/common/docs/r0.18.2/cn/
快速安装说明手册:http://hadoop.apache.org/common/docs/r0.18.2/cn/quickstart.html
Hadoop简介:
Hadoop是一个开放源代码的分布式文件系统,属于Apache中的一个项目,所谓分布式文件系统(DistributedFile System),指的是具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取,客户端访问的时候不需要知道文件真正存放在哪里。 Hadoop最初是包含在Nutch中的,后来,Nutch中实现的NDFS和MapReduce代码剥离出来成立了一个新的开源项目,这就是 Hadoop。
过程中遇到的一些问题:
1,如果put时出现java.io.IOException: Not a file:hdfs://localhost:9000/user/icymary/input/test-in
解决办法是bin/hadoop dfs -rmr input
2,java.io.IOException: Incompatible namespaceIDs in C:\tmp\hadoop-SYSTEM\dfs\dfs.data.dir: namenode namespaceID = 898136669; datanode namespaceID = 2127444065,原因:每次namenode format会重新创建一个namenodeId,而tmp下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有晴空
datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录.
参考链接:
http://www.zihou.me/html/2010/02/19/1525.html
http://tdcq.iteye.com/blog/1338777
http://blog.csdn.net/wh62592855/article/details/5752199#
http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html

本文用的hadoop是0.18.2,0.20版本在Linux下的安装可以参照http://www.cnblogs.com/reckzhou/archive/2012/03/21/2409765.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows下使用Cygwin编译Perl源码可以按照以下步骤进行: 1. 下载和安装Cygwin:首先,你需要下载并安装Cygwin。你可以从Cygwin官方网站(https://www.cygwin.com/)下载安装程序。在安装过程中,选择默认选项即可。 2. 启动Cygwin终端:安装完成后,打开Cygwin终端。你可以在开始菜单中找到Cygwin并点击打开。 3. 安装构建工具和依赖项:在Cygwin终端中运行以下命令来安装构建工具和Perl的依赖项: ``` apt-cyg install make gcc apt-cyg install libiconv-devel libintl-devel libncurses-devel ``` 4. 下载Perl源码:你可以从Perl官方网站(https://www.perl.org/)下载最新的Perl源码压缩包。 5. 解压源码:将下载的Perl源码压缩包解压到一个目录中,比如 `~/perl-source`。 6. 进入源码目录:使用Cygwin终端进入源码目录,比如 `cd ~/perl-source`。 7. 配置构建环境:运行以下命令来配置构建环境: ``` sh Configure -de ``` 这个命令将会配置Perl的构建环境,并使用默认选项。 8. 构建Perl:运行以下命令来开始构建Perl: ``` make ``` 这个命令将会开始编译和链接Perl源码。这个过程可能会需要一些时间。 9. 安装Perl:编译完成后,运行以下命令来安装Perl: ``` make install ``` 这个命令将会将编译好的Perl程序和相关文件复制到系统目录中,使其可以在任何地方使用。 完成以上步骤后,你就成功在Windows下使用Cygwin编译了Perl源码。你可以在Cygwin终端中运行 `perl -v` 命令来验证安装是否成功,并显示Perl的版本信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值