文档章节

【Hadoop】使用 Maven 搭建 hadoop 开发环境

ok嘣
 ok嘣
发布于 2017/06/01 15:06
字数 466
阅读 21
收藏 0
  1. 在 pom.xml 文件里添加hadoop的依赖包 hadoop-common, hadoop-client, hadoop-hdfs ,内容如下:
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"  
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>my.hadoopstudy</groupId>  
    <artifactId>hadoopstudy</artifactId>  
    <packaging>jar</packaging>  
    <version>1.0-SNAPSHOT</version>  
    <name>hadoopstudy</name>  
    <url>http://maven.apache.org</url>  
   
    <dependencies>  
        <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-common</artifactId>  
            <version>2.5.1</version>  
        </dependency>  
        <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-hdfs</artifactId>  
            <version>2.5.1</version>  
        </dependency>  
        <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-client</artifactId>  
            <version>2.5.1</version>  
        </dependency>    
    </dependencies>  
</project>  

问题一: 在运行的过程中,原项目采用 log4j2 ,而 本hadoop-2.5.1 采用的是log4j ,更改 pom.xml 将log4j 冲突依赖排除

		<!-- hadoop 20170601 -->
		<dependency>
	<groupId>org.apache.hadoop</groupId>
	<artifactId>hadoop-common</artifactId>
	<version>2.5.1</version>
	<exclusions>
		<exclusion>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</exclusion>
		<!-- <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> 
			</exclusion> -->
	</exclusions>

</dependency>
	<dependency>
		<groupId>org.apache.hadoop</groupId>
		<artifactId>hadoop-hdfs</artifactId>
		<version>2.5.1</version>
		<exclusions>
			<exclusion>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
			</exclusion>

			<!-- <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> 
				</exclusion> -->
		</exclusions>

	</dependency>
	<dependency>
		<groupId>org.apache.hadoop</groupId>
		<artifactId>hadoop-client</artifactId>
		<version>2.5.1</version>
		<exclusions>
			<exclusion>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
			</exclusion>
			<!-- <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> 
				</exclusion> -->
		</exclusions>

	</dependency>
	<!-- end -->

问题二:

因为本项目是在windows 10 环境下去开发 CentOS6.5 环境下的hadoop 会出现错误:

Could not locate executable null\bin\winutils.exe in the Hadoop binaries

原因是没有配置hadoop 的环境变量: 添加

HADOOP_HOME=E:/hadoop/hadoop

在 path 中添加

E:/hadoop/hadoop/bin

同时下载 hadoop.dll 和 winutils.exe 放到 bin 文件夹下

读取 hadoop 下的内容

package my.hadoopstudy.dfs;  
   
import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.fs.FSDataOutputStream;  
import org.apache.hadoop.fs.FileStatus;  
import org.apache.hadoop.fs.FileSystem;  
import org.apache.hadoop.fs.Path;  
import org.apache.hadoop.io.IOUtils;  
   
import java.io.InputStream;  
import java.net.URI;  
   
public class Test {  
    public static void main(String[] args) throws Exception {  
        String uri = "hdfs://9.111.254.189:9000/";  
        Configuration config = new Configuration();  
        FileSystem fs = FileSystem.get(URI.create(uri), config);  
   
        // 列出hdfs上/user/fkong/目录下的所有文件和目录  
        FileStatus[] statuses = fs.listStatus(new Path("/user/fkong"));  
        for (FileStatus status : statuses) {  
            System.out.println(status);  
        }  
   
        // 在hdfs的/user/fkong目录下创建一个文件,并写入一行文本  
        FSDataOutputStream os = fs.create(new Path("/user/fkong/test.log"));  
        os.write("Hello World!".getBytes());  
        os.flush();  
        os.close();  
   
        // 显示在hdfs的/user/fkong下指定文件的内容  
        InputStream is = fs.open(new Path("/user/fkong/test.log"));  
        IOUtils.copyBytes(is, System.out, 1024, true);  
    }  
}  

© 著作权归作者所有

共有 人打赏支持
ok嘣
粉丝 4
博文 125
码字总数 57888
作品 0
海淀
私信 提问
大数据学习笔记-(二)启动集群&配置IDE环境

参考网站:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html 1.启动集群,格式化文件系统 bin/hdfs namenode -format 2.启动 sbin/start-dfs.sh ......

langyw98
2017/11/06
0
0
eclipse上搭建hadoop开发环境

一、概述 1.实验使用的Hadoop集群为伪分布式模式,eclipse相关配置已完成; 2.软件版本为hadoop-2.7.3.tar.gz、apache-maven-3.5.0.rar。 二、使用eclipse连接hadoop集群进行开发 1.在开发主...

一语成谶灬
2017/09/07
0
0
【Hadoop】win7下通过intellij idea对hadoop2.7.3进行访问操作的实践

原创文章,转载请注明:http://blog.csdn.net/lsttoy/article/details/52419138 Oops, 你还可以直接github来download我文章中提到的所有资料,都是开源的:) https://github.com/lekko1988...

lsttoy
2016/09/02
0
0
Mahout In Aciotn

Mahout In Aciotn 作者:Jack Zhang 来自开拓者部落 ,qq群:248087140,欢迎加入我们! 本文欢迎转载,转载请注明出处 http://my.oschina.net/u/1866370/blog/287907 i.Java和IDE(略) ii...

开拓者-2017
2014/07/09
0
0
Spring Cloud搭建开发环境

1 开发环境搭建 工欲善其事,必先利其器。在讲述本书的技术内容前,先将开发环境搭建好,本书所涉及基础环境将在本章准备,包括Eclipse、Maven等。 笔者建议读者在查阅本书过程中,使用与本书...

Jokey2017
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Supervisor管理springboot应用

目录 概述 环境准备 spring boot应用 supervisor配置 启动应用 概述 前面博文介绍了Supervisor进程管理,实际应用可以对springboot应用进行管理,如果springboot应用挂掉,Supervisor还可以对它...

java_龙
14分钟前
2
0
将神经网络训练成一个“放大镜”

摘要: 想不想将神经网络训练成一个“放大镜”?我们就训练了一个这样炫酷的神经网络,点击文章一起看下吧! 低分辨率蝴蝶的放大 当我们网购时,我们肯定希望有一个贴近现实的购物体验,也就...

阿里云官方博客
15分钟前
0
0
在细节消息中包含能够捕获失败的信息(63)

程序由于未被捕获异常失败时,系统会自动打印该异常的堆栈轨迹 包含异常的字符串表示法(toString) 通常包含异常的类名,以及紧随其后的细节信息(detail message) 是检查程序失败的必须信...

Java搬砖工程师
16分钟前
1
0
day173-2018-12-10-英语流利阅读-待学习

如何评价特朗普在此次 G20 上的表现? 毛西 2018-12-10 1.今日导读 在公众眼里,特朗普一直是个不省事的主——他爱在推特吐槽,还喜欢到处树敌。但最近,阿根廷首都布宜诺斯艾利斯举行的 G2...

飞鱼说编程
18分钟前
4
1
adr adrl ldr mov简单科普

ADR是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。 编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用...

天王盖地虎626
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部