Windows安装hadoop

79 篇文章 0 订阅
64 篇文章 1 订阅

首先安装cygwin 见同一目录下的“下载安装Cygwin.mht”,或者上谷歌搜索关键字“下载安装Cygwin.mht”。然后安装hadoop-0.21.0,步骤如下10步:
 1. 打开cygwin
 进入D盘目录下的Hadoop文件夹:cd D:/Hadoop
 2. 安装hadoop:  tar -zvxf hadoop-0.20.1.tar.gz
 3. 解压完成后进入hadoop-0.20.1的配置目录,打开core-site.xml,加入以下内容。这里是定义namenode运行地址和端口

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


 4. 打开hdfs-site.xml,加入以下内容

   <property>
  <name>dfs.replication</name>
  <value>1</value>
   </property>
   
   <property>
  <name>dfs.name.dir</name>
  <value>/Hadoop/namenode</value>
   </property>
   <property>
  <name>dfs.data.dir</name>
  <value>/Hadoop/datanode</value>
   </property>


 5. 最后修改hadoop-env.sh,把下面注释的这行打开,并设置为你的jdk路径。
  如果你的java在Program Files下,则整个jdk路径加引号,最好是把jdk目录设置到如下:D:\Java\jdk1.6.0_26
  但是你可以这么做:
   在Hadoop的配置文件,hadoop-env.sh中,需要添加Java SDK的路径。
   要知道,Cygwin中并没有安装Java,那么只能使用Windows下安装的JDK。
   看了网上的文章,只是提到说export后面的路径需要用双引号括起来,
   因为一般JDK都是安装在“Program Files”下的。但是我这么添加以后,就是不行,
   报错“JAVA_HOME is not set”还是“…Program cannot found”来着,不太记得了,
   反正就是启动Hadoop的时候报错。经过研究后知道,首先Cygwin下不能使用windows的路径直接访问,
   需要是Linux风格的目录,如果是访问C盘下安装的JDK的话,不能使用“C:/Program Files/Java/jdk1.6.0_22”,
   而需要使用这样“/cygdrive/c/Program Files/Java/jdk1.6.0_22”;其次是hadoop好像不能识别带空格的目录路径,
   那怎么办呢,想到了符号链接,通过在Cygwin下创建一个符号链接,指向我的JDK安装目录,
   使用这样的命令:ln “C:/Program Files/Java/jdk1.6.0_22” /usr/local/jdk1.6.0_22. 
   这样就在/usr/local/下创建了一个Windows下JDK目录的符号链接,如果使用:cd /usr/local/jdk1.6.0_22, 
   然后ls下,就会发现已经在jdk的安装目录下了。然后在hadoop-env.sh中export JAVA_HOME=/usr/local/jdk1.6.0_22,
   这样就OK了
  因为我安装的时候,在Program Files中没有安装成功。修改为如下内容:
  # The java implementation to use.  Required.
  export JAVA_HOME=/cygdrive/d/Java/jdk1.6.0_26
 6. 在cygwin下进入bin目录,首先需要格式化namenode
  cd D:\Hadoop\hadoop-0.21.0\bin
  ./hadoop namenode -format
  这里会报这个错:

  java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
  Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
   
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
  Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.


  解决办法如下:
  只需要将${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容 

  JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"` 


  改成 

  JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"` 


 7. 启动namenode: ./hadoop namenode
 8. 启动datanode: ./hadoop datanode
 9. 尝试上传文件:./hadoop fs -put d:/download/test.rar /tt/vm.rar  然后list一下:  ./hadoop fs -lsr /tt
  结果如下:

  -rw-r--r--   1 Administrator supergroup   20793970 2010-01-18 15:52 /tt/vm.rar

  可以在本地文件中(记得这个配置吧/Hadoop/datanode?数据文件存放地)
  D:\Hadoop\datanode\current\finalized中看到拷贝的文件,但是文件名是blk_6098310948767462040这种,可以看大小啦。。。
 10. 结束,祝大家成功。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小哭包

创作不易,给作者加个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值