Mac OS下安装Hadoop1.0.4
参照例子装了1.0.4,不过略微有些不同
1:在core-site上加上了namenode指定
<property> <name>hadoop.tmp.dir</name> <value>/Users/apple/tmp/hadoop/hadoop-${user.name}</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:8020</value> </property>
这样好像就避免了bin/hadoop namenode -format 要输入Y了,而且安装的目录也是自己可选可控制的
hadoop-env.sh加上了如下配置
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home export HADOOP_HEAPSIZE=2000 export HADOOP_INSTALL=/Users/apple/hadoop-1.0.4 export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
OPTS好像能够解决一个什么bug,具体忘记了。
另外还有就是1.0.4的插件了,这个插件比较难找啊,找了好多试了都没法使用,自己在本地打了一个出来,测试可以使用,附件放在dropins下;
最后就是测试程序了
package hadoop; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class MyTest { public static void main(String[] args) throws Exception { String uri = "hdfs://localhost:8020/Users/apple/tmp/hadoop/Zookeeper.doc"; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(uri), conf); FSDataInputStream in = null; try { in = fs.open(new Path(uri)); System.out.println("the first print:"); IOUtils.copyBytes(in, System.out, 4096, false); in.seek(0);// 可以重新定位文件的pos,因为是读取,但是如果写DFS上的文件的时候只能读取pos,不能更改Pos,因为hadoop只运行顺序的追加数据。 System.out.println("the second print:"); IOUtils.copyBytes(in, System.out, 4096, false); } finally { IOUtils.closeStream(in); } } }
在Hadoop1.0.4,Myeclipse8.6下测试通过。
第一次写博客,写的很粗糙,不过ThoughtWorks的一篇微博说道:如果你想提升技术,多写博客,即能提高你思考的深度,也能锻炼你的表达能力。感觉说的比较对