windows上hadoop安装(cygwin等)

xiyf0 2012-04-05

hadoop运行方式

1、本机方式:不做任何配置

2、伪分布式:pseudodistributed

3、全分布式:fulldistributed

由于hadoop只能运行于linux(unix类型)操作系统上,因此在windows上做开发、测试,需要安装cygwin来模拟linux环境。

一、cygwin安装

直接到cygwin上下载安装配置程序setup.exe,该程序并不包含实际的安装文件,只是一个外壳,启动之后可以选择1、在线安装,并将需要的文件下载到本地;2、只下载需要安装的文件到本地,并不安装;3、从本地文件中定位已下载好的安装文件,然后进行安装。

这里有一个概念,安装外壳程序(控制安装过程)、需要安装的文件,将安装过程分为不同部分,分别处理,可以根据需求,扩展需要安装的文件,而不需要修改安装的外壳程序。

根据需要选择一种方式,然后需要安装的组件:openssh、vim、rpm,根据提示选择路径,安装好cygwin。

cygwin简单说明

cygwin能够模拟linux语法,在选择安装组件后,能使用已安装的组件,如上例中正确安装了vim,则可以使用vim文件编辑工具,其他的可根据需要自己选择安装。在cygwin中可以像在linux环境下运行一样处理,模拟了linux的文件系统。还有一个特点就是cygwin还可以使用windows中的命令,也就是说cygwin不仅模拟了linux运行环境,而且还能使用windows中自身的脚本或命令。例如:在windows中设置了java的运行环境,则在cygwin中无需安装java运行环境,直接输入java-version就能和在windows中的cmd中的输出一致。又例如,在windows中的环境变量中增加了java_home,那么在windows的cmd中执行echo%java_home%和在cygwin中执行echo%java_home将是一样的。

在cygwin中建立软连接

windows中安装的java环境,可能安装在包含空格的路径中,如e:\programfiles\java,那么在cygwin模拟的linux环境中,如果是简单执行java程序,那么没有问题,cygwin本身就可以根据windows的环境变量找到java的运行环境,但如果是复杂一点的配置,如hadoop中,需要单独配置java_home的环境变量,那么在配置文件中直接配置e:\programfiles\java这样的路径,是无法成功的。因此需要建立一个软连接,将windows中的路劲映射到cygwin所模拟的linux系统上,命令ln-s"E:\ProgramFiles\Java\jdk1.6.0_20"/usr/local/jdk1.6.0_20

如此,就可以在hadoop的环境配置中将java的运行环境java_home设置为/usr/local/jdk1.6.0_20了。

二、安装hadoop

将hadoop的压缩包解压得到hadoop-1.0.1,可以直接将该文件夹copy到

E:/cygwin/usr/local/下,也可以采用软连接的方式将对应的hadoop文件映射到/usr/local/hadoop-1.0.1上(如:ln-sd:/soft/hadoop-1.0.1/usr/local/hadoop-1.0.1)。

1、配置hadoop

(1)编辑文件/etc/profile增加

exportHADOOP_INSTALL=/usr/local/hadoop-1.0.1

exportPATH=$PATH:$HADOOP_INSTALL/bin

保存文件并使用命名source/etc/profile重新编译使配置生效

完成之后可以使用命名检查配置是否生效

hadoop-version,如果配置正确,则会正确输出hadoop版本信息。

(2)编辑文件/usr/local/hadoop-1.0.1/conf/hadoop-env.sh增加

exportJAVA_HOME=/usr/local/jdk1.6.0_20

(3)配置core-site.xml、hdfs-site.xml、mapred-site.xml文件

修改core-site.xml配置为

<configuration>
	<property>
		<name>fs.default.name</name>
		<value>hdfs://localhost/</value>
	</property>
</configuration>

修改hdfs-site.xml配置为

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>

修改mapred-site.xml配置为

<configuration>
	<property>
		<name>mapred.job.tracker</name>
		<value>localhost:8021</value>
	</property>
</configuration>

2、格式化namenode

使用命令:hadoopnamenode-format

三、配置ssh

(1)创建ssh服务器

使用命令ssh-host-config

在交互阶段选择

Shouldprivilegeseparationbeused?yes

newlocalaccount'sshd'?yes

Doyouwanttoinstallsshdasaservice?yes

EnterthevalueofCYGWINfordaemon:[]

当看到Hostconfigurationfinished.Havefun!表示安装完成

启动ssh服务,使用命令netstartsshd

(2)采用密钥方式登陆,不使用用户/密码方式登陆

使用命令

ssh-keygen-trsa-P''-f~/.ssh/id_rsa

cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

如果成功,则执行命名

sshlocalhost不会提示输入密码,直接登陆成功

启动hadoop

执行命令:start-all.sh(这相当于执行命名/usr/local/hadoop-1.0.1/bin/start-all.sh,因为在/etc/profile中加hadoop的bin路径加入了环境变量path中)

相关推荐