Mac OS下安装Hadoop1.0.4

   http://andy-ghg.iteye.com/blog/1165453

参照例子装了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的一篇微博说道:如果你想提升技术,多写博客,即能提高你思考的深度,也能锻炼你的表达能力。感觉说的比较对

猜你喜欢

转载自shimingliu-copyboy.iteye.com/blog/1846989
今日推荐