最初のhadoopプログラム(javaプログラムはhadoopのhdfsファイルシステムのファイルにアクセス)

1943 ワード

1:hadoop2.7.3環境
2:アリクラウドサーバーcentos 6.5,ipは:47.88.14.190
3:hadoopは擬似分散で実行されます.
4:具体的なプロファイルは以下の通りです.
1)core-site.xml構成(ipアドレスはlocalhostを使わないほうがいい.そうしないとテストしにくい)
                        fs.defaultFS                 hdfs://47.88.14.190:9000        
2)hdfs-site.xml構成(構成コピーが1、すなわち擬似分散)
                        dfs.replication                 1        
3)mapred-site.xml
                        mapred.job.tracker 47.88.14.190:8021 5:javaプログラムがhadoopにアクセスするときにこれらのポートを使用するため、4のプロファイルのポート番号が重要であることに注意してください.
6:hadoopを実行し、sbin/start-allを実行します.sh
7:centos 6.5で実行、hadoop fs-mkdir/test
8:testをアップロードします.txtはhadoopのファイルシステムに、hadoop fs-copyFromLocal/usr/text.txt /test
9:javaプログラムを新規作成しhadoopファイルシステムの/test/textを読み出す.txtファイル.(注意ポート番号9000はcore-site.xmlで構成されているポート番号です)
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 FileSystemCat {
	public static void main(String[] args) throws Exception {
		String uri="hdfs://47.88.14.190:9000/test/test.txt";
		Configuration configuration=new Configuration();
		FileSystem fileSystem=FileSystem.get(URI.create(uri), configuration);
		FSDataInputStream in=null;
		in=fileSystem.open(new Path(uri));
//		FileStatus fileStatus=fileSystem.getFileStatus(new Path(uri));
//		byte[] buffer=new byte[1024];
//		in.read(4096, buffer, 0, 1024);
		IOUtils.copyBytes(in, System.out, 4096, false);
		IOUtils.closeStream(in);
	}
	
}

10:jarパッケージの問題、多くの人が、私の上のコードを自分のeclipseにコピーして、jarが欠けていることに気づいて、それから問題が来て、私たちはどのjarパッケージをインポートする必要がありますか?
初心者にはhadoop-eclipse-plugins-2.7.3をインストールすることをお勧めします.JArプラグイン、このプラグインはネット上でダウンロードすることができて、インストールした後、直接右クリックしてMap/Reduceプロジェクトを新築することができて、自動的にhadoop開発に必要な関連jarパッケージを導入して、このようにClassNotFound異常が存在しません.