`
yale
  • 浏览: 356236 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Cygwin使用hadoop

 
阅读更多

便于hadoop伪分布式在本地进行调试,采用Cygwin来进行hadoop开发是一种比较好的方式,因此该文章将介绍hadoop在Cygwin中的使用方法。

安装Hadoop伪分布,hadoop使用了ssh协议,ssh采用标准的公钥加密来生成一对用户验证密钥---一个公钥、一个私钥,并且使用NFS在集群中共享它,公钥被本地存储在集群的每个节点上,私钥则由主节点在视图访问远程节点时发送过来,默认情况下的Cygwin没有安装ssh,所以重新运行http://www.cygwin.com/setup.exe,在Select Packages的时候,在search输入ssh,选择openssh,继续安装cgywin,直到安装成功

 

配置SSH服务

1、在cygwin中输入:ssh-host-config

除了Do you want to use a different name?  no 其他都是yes

2、输入密码时候最好和你本身linux密码一致,这样方便记忆

 

这样我们就设置ssh信任机制,让两台机器能够相互通信,在相互访问的时候不需要输入密码

3、执行 cygrunsrv  -S  sshd  启动ssh服务

查看服务是否启动:services.msc中查看cyg ,同时还可以修改密码,注意:如果需要重新安装sshd服务,可以用cygrunsrv -R sshd

4、生成SSH Key

ssh-keygen  -t  rsa(密码为空,路径默认)

cp  .ssh/id_rsa.pub  .ssh/authorized_keys

 

 

5、检查SSH

 

安装hadooop
因为我们用cygwin只是用来方便调式hadoop,并不是为了在上面搭建正式的服务器,因为我们没有必要选择有bug的hadoop版本进行安装,我们选择集成中没有bug的版本.020.2下载,解压并拷贝到Cygwin下的目录(JDK也一并安装)
http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
官方说明1.x版本有BUG,参考,BUG修复请参考:
http://en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin

 

 

配置环境变量(.bashrc文件追加下面内容)
export  JAVA_HOME=/usr/java/jdk1.6.0_20
export  PATH=/usr/java/hadoop-0.20.2/bin:$JAVA_HOME/bin:$PATH

在hadoop-0.20.2/conf/hadoop-evn.sh中追加下面内容

export  JAVA_HOME=/usr/java/jdk1.6.0_20
export  HADOOP_LOG_DIR=/tmp/logs

 

创建连接符
由于默认情况下在cygwin中,hadoop的默认文件存放在根目录的tmp文件夹下,这样对统一目录不方便,因此采用连接符(在win下的cmd中执行)
mklink /D c:\tmp c:\cygwin\tmp

执行后,重新执行:ssh localhost,使其生效

 

配置HADOOP运行参数
我们这次将不采用指定存储目录,采用默认的存储目录,我们看看默认情况下文件存放情况(如果我们不指定,默认的文件存储配置存放在hadoop根目录下的hadoop-0.20.2-core.jar包的xxx-default.xml文件中的)

conf/core-site.xml

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

conf/hdfs-site.xml

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

conf/mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>localhost:9001</value>
</property>
<property> 
  <name>mapred.tasktracker.map.tasks.maximum</name>
  <value>4</value>
</property> 
<property> 
  <name>mapred.tasktracker.reduce.tasks.maximum</name>
  <value>4</value>
</property>

 

格式化名称节点并启动集群
使用命令:hadoop namenode –format


使用命令:start-all.sh,通过jps和ps的方式查看启动进程是否启动成功,我们可以看到下面通过jps只能看到启动了JobTracker、NameNode,和我们在linux下面启动的5个进程有区别(在linux下如果没有启动5个进程,表示有进程失败,需要通过日志查看启动失败的原因),但是我们发现通过ps命令确实已经启动了5个java进程,我们通过这5个进程的pid可以在我们hadoop产生的文件中查看到底是否hadoop相关进程成功启动

 

执行hadoop自带例子
创建一个文件yale.txt,存放在hadoop根目录下,并添加一些内容

执行:hadoop fs -put yale.txt input/yale.txt
查看:hadoop fs -cat  input/yale.txt


执行:hadoop jar hadoop-0.20.2-examples.jar wordcount input output

 

具体查看:
hadoop fs -cat output/p*


还可以通过web方式查看,http://localhost:50070 可以查看

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics