请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

HDFSAPI创建目录

package hadooppTEst;


import static org.junit.Assert.*;

import java.net.URI;

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.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class MyTest {
	private Configuration configuration=null;
	private FileSystem fileSystem=null;
	private static final String HDFS_PATH="hdfs://hadoop000:8020";
	/**
	 * 创建目录
	 * @throws Exception
	 */
	@Test
	public void createDir() throws Exception {
		fileSystem.mkdirs(new Path("/testApp"));
	}
		
	@Before
	public void setUp()throws Exception{
		System.out.println("begin");
		configuration =new Configuration();
		fileSystem=FileSystem.get(new URI(HDFS_PATH),configuration,"hadoop");
	}
	@After
	public void tearDown()throws Exception{
		configuration=null;
		fileSystem=null;
		System.out.println("HDFSApp.tearDown");
	}
}

maven的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>hadoop</groupId>
	<artifactId>2018-7-10_hdfs_01</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<!--没有添加cdh仓库 -->
	<repositories>
		<repository>
			<id>cloudera</id>
			<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
		</repository>
	</repositories>
	<!--添加hadoop的依赖 -->
	<properties>
		<hadoop.version>2.6.0-cdh5.7.0</hadoop.version>
	</properties>
	<dependencies>
	
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>${hadoop.version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- 设置jdk的编译版本 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

begin

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Junit测试跑起来就不停了,控制台输出上面的语句这是怎么回事??

正在回答

3回答

你debug到setup 的第一行,我咋感觉没走到呢

0 回复 有任何疑惑可以回复我~
  • 提问者 慕码人1088981 #1
    走到了,是在运行 fileSystem.mkdirs(new Path("/testApp"));这个句话之后就不往下走了。当我把这句话注释掉,换成System.out.println("111");就可以跑完了
    回复 有任何疑惑可以回复我~ 2018-07-11 10:04:05
  • Michael_PK 回复 提问者 慕码人1088981 #2
    那还是本地连到HDFS有问题,你把hadoop000换成IP试试
    回复 有任何疑惑可以回复我~ 2018-07-11 10:10:57
  • 提问者 慕码人1088981 #3
    可以了,我打开我的hosts文件发现hadoop000配置了两个ip地址- -, 另外URI为什么这么写:"hdfs://hadoop000:8020"
    回复 有任何疑惑可以回复我~ 2018-07-11 10:20:32
Michael_PK 2018-07-10 21:09:36

运行完去HDFS上看一下OK没

0 回复 有任何疑惑可以回复我~
Michael_PK 2018-07-10 21:09:10

这只是普通日志输出而已,你运行的时候是选择一个case运行的吧

0 回复 有任何疑惑可以回复我~
  • 提问者 慕码人1088981 #1
    HDFS上没有创建成功,没有数据。我直接运行也是这样
    回复 有任何疑惑可以回复我~ 2018-07-10 21:36:11
  • Michael_PK 回复 提问者 慕码人1088981 #2
    你tea R down的日志貌似都没处来。你确定下HDFS进程是否都在,本地开发的机器hadoop000映射没,
    回复 有任何疑惑可以回复我~ 2018-07-10 22:51:31
  • 提问者 慕码人1088981 回复 Michael_PK #3
    开启了,在linux上输出jps有nameNode,DataNode,SecondaryNameNode.在windows上从网页输入http://hadoop000:50070也可以访问到
    回复 有任何疑惑可以回复我~ 2018-07-11 09:17:03
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号