b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

hadoop2.6源码(Hadoop273)

hacker2022-06-07 19:56:25昨日新闻108
本文目录一览:1、hadoophdfs源码怎么看

本文目录一览:

hadoop hdfs 源码怎么看

在使用Hadoop的过程中,很容易通过FileSystem类的API来读取HDFS中的文件内容,读取内容的过程是怎样的呢?今天来分析客户端读取HDFS文件的过程,下面的一个小程序完成的功能是读取HDFS中某个目录下的文件内容,然后输出到控制台,代码如下:

[java] view plain copy

public class LoadDataFromHDFS {

public static void main(String[] args) throws IOException {

new LoadDataFromHDFS().loadFromHdfs("hdfs://localhost:9000/user/wordcount/");

}

public void loadFromHdfs(String hdfsPath) throws IOException {

Configuration conf = new Configuration();

Path hdfs = new Path(hdfsPath);

FileSystem in = FileSystem.get(conf);

//in = FileSystem.get(URI.create(hdfsPath), conf);//这两行都会创建一个DistributedFileSystem对象

FileStatus[] status = in.listStatus(hdfs);

for(int i = 0; i status.length; i++) {

byte[] buff = new byte[1024];

FSDataInputStream inputStream = in.open(status[i].getPath());

while(inputStream.read(buff) 0) {

System.out.print(new String(buff));

}

inputStream.close();

}

}

}

FileSystem in = FileSystem.get(conf)这行代码创建一个DistributedFileSystem,如果直接传入一个Configuration类型的参数,那么默认会读取属性fs.default.name的值,根据这个属性的值创建对应的FileSystem子类对象,如果没有配置fs.default.name属性的值,那么默认创建一个org.apache.hadoop.fs.LocalFileSystem类型的对象。但是这里是要读取HDFS中的文件,所以在core-site.xml文件中配置fs.default.name属性的值为hdfs://localhost:9000,这样FileSystem.get(conf)返回的才是一个DistributedFileSystem类的对象。 还有一种创建DistributedFileSystem这种指定文件系统类型对像的方法是使用FileSystem.get(Configuration conf)的一个重载方法FileSystem.get(URI uri, Configuration),其实调用第一个方法时在FileSystem类中先读取conf中的属性fs.default.name的值,再调用的FileSystem.get(URI uri, Configuration)方法。

linux 下 hadoop 2.6编译 找不到 dist和native是怎么回事

1,安装gcc,执行如下的几个yum命令即可

Java代码

yum -y install gcc

yum -y install gcc-c++

yum install make

yum install autoconf automake libtool cmake ncurses-devel openssl-devel gcc*

2,安装JDK,并设置环境变量,完成后测试安装成功否

Java代码

[root@ganglia ~]# java -version

java version "1.5.0"

gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-4)

Copyright (C) 2007 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@ganglia ~]#

3, 安装Maven,安装完成后测试安装与否

Java代码

[root@ganglia ~]# mvn -v

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T01:37:52+08:00)

Maven home: /usr/local/maven

Java version: 1.7.0_25, vendor: Oracle Corporation

Java home: /usr/local/jdk1.7.0_25/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"

[root@ganglia ~]#

4, 安装Ant, 安装完成后,依旧测试成功与否

Java代码

[root@ganglia ~]# ant -version

Apache Ant(TM) version 1.9.4 compiled on April 29 2014

[root@ganglia ~]#

5,安装protobuf,安装方式,从官网下载tar.gz的包,并上传到linux上解压,然后进入根目录下,执行如下的几个命令:

Java代码

./configure

make

make check

make install

然后,执行如下命令,进行测试安装成功与否

Java代码

[root@ganglia protobuf-2.5.0]# protoc

Missing input file.

[root@ganglia protobuf-2.5.0]#

6,从hadoop官网下载hadoop2.2.0的版本的源码的src的包,并查看目录

Java代码

[root@ganglia ~]# cd hadoop-2.2.0-src

[root@ganglia hadoop-2.2.0-src]# ll

总用量 108

-rw-r--r--. 1 67974 users 9968 10月 7 2013 BUILDING.txt

drwxr-xr-x. 2 67974 users 4096 10月 7 2013 dev-support

drwxr-xr-x. 4 67974 users 4096 6月 9 17:05 hadoop-assemblies

drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-client

drwxr-xr-x. 9 67974 users 4096 6月 9 17:14 hadoop-common-project

drwxr-xr-x. 3 67974 users 4096 6月 9 17:26 hadoop-dist

drwxr-xr-x. 7 67974 users 4096 6月 9 17:20 hadoop-hdfs-project

drwxr-xr-x. 11 67974 users 4096 6月 9 17:25 hadoop-mapreduce-project

drwxr-xr-x. 4 67974 users 4096 6月 9 17:06 hadoop-maven-plugins

drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-minicluster

drwxr-xr-x. 4 67974 users 4096 6月 9 17:03 hadoop-project

drwxr-xr-x. 3 67974 users 4096 6月 9 17:05 hadoop-project-dist

drwxr-xr-x. 12 67974 users 4096 6月 9 17:26 hadoop-tools

drwxr-xr-x. 4 67974 users 4096 6月 9 17:24 hadoop-yarn-project

-rw-r--r--. 1 67974 users 15164 10月 7 2013 LICENSE.txt

-rw-r--r--. 1 67974 users 101 10月 7 2013 NOTICE.txt

-rw-r--r--. 1 67974 users 16569 10月 7 2013 pom.xml

-rw-r--r--. 1 67974 users 1366 10月 7 2013 README.txt

[root@ganglia hadoop-2.2.0-src]#

7,修改/root/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml文件,增加,补丁内容,这部分是hadoop2.2.0的bug,如果是其他的2.x的版本,可以视情况而定,内容如下:

Xml代码

dependency

groupIdorg.mockito/groupId

artifactIdmockito-all/artifactId

scopetest/scope

/dependency

!--新增的内容开始 --

dependency

groupIdorg.mortbay.jetty/groupId

artifactIdjetty-util/artifactId

scopetest/scope

/dependency

!--新增的内容结束 --

dependency

groupIdorg.mortbay.jetty/groupId

artifactIdjetty/artifactId

scopetest/scope

/dependency

8,修改完毕后,回到hadoop-2.2.0-src的跟目录下执行编译打包命令:

Java代码

mvn clean

mvn package -Pdist,native -DskipTests -Dtar

然后等待半个小时左右的编译时间,网速快的话,时间可能会更短,编译完成 编译好的hadoop包,

Java代码

[root@ganglia target]# pwd

/root/hadoop-2.2.0-src/hadoop-dist/target

[root@ganglia target]# ll

总用量 282348

hadoop 源代码 从哪里可以找到啊?怎么下载,说详细一点谢谢

hadoop的源代码可以到 下载,下载要用SVN软件来下,具体的方法可以在Hadoop入门期 刊中找到

如何在eclipse里方便的读hadoop源码

导入查看hadoop源码(1)选择Existing Projects into Workspace (2)选择源码路径 (3)查看源码 这样就完成了全部的内容。

阅读hadoop源码其中比较常用的Open Call Hierarchy:用Open Call Hierarchy可以查看方法的调用层次。

发表评论

评论列表

  • 孤央漠望(2022-06-08 00:52:08)回复取消回复

    ake check make install 然后,执行如下命令,进行测试安装成功与否 Java代码 [root@ganglia protobuf-2.5.0]# protoc Missing input