windows上hadoop安装(cygwin等)
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中)