HDFS客户端操作客户端操作
1. HDFS客户端环境搭建客户端环境搭建
1.1 安装安装hadoop
1.安装对应的编译后的hadoop包到非中文路径下
1.1 这里简单阐述一下在搭建环境时为什么hadoop需要重新编译源码
答: hadoop是用java写的,但是某些操作不适合用java实现,所以用的是c/c++的动态库(本地库),所以需要根据不同的处理器架构,重新编译,他们以
库的形式提供接口供上层调用。
2.配置HADOOP_HOME相关环境变量(如何配置hadoop环境变量笔者就不在赘述,跟Java同理)
1.2 创建创建Maven工程导入相应依赖工程导入相应依赖
junit
junit
RELEASE
org.apache.logging.log4j
log4j-core
2.8.2
org.apache.hadoop
hadoop-common
2.7.2
org.apache.hadoop
hadoop-client
2.7.2
org.apache.hadoop
hadoop-hdfs
2.7.2
注:
1) 如果idea打印不出日志,需要在项目src/main/resources目录下新建一个文件命名为"log4j.properties"文件中填入:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
1.3 连接集群测试连接集群测试
package com.hadoop.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
/**
* @author childwen
* HDFS客户端测试
*/
public class HdfsClient {
static FileSystem fs;
/**
* 连接集群
*/
@Before
public void before() throws URISyntaxException, IOException, InterruptedException {
// 1 生成配置文件
Configuration configuration = new Configuration();
// 2 获取集群对象操作集群
// 注: 这里的hadoop103是core-site.xml配置文件中指定的内部通讯集群节点,在连接时不指定内部通讯节点则会出现
connectionexception异常