Windows安装hadoop
然后安裝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. 結束,祝大家成功。
總結
以上是生活随笔為你收集整理的Windows安装hadoop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里、美团、Oracle凭这套题不知道刷
- 下一篇: 怎么查询服务器是什么操作系统,怎么查服务