HDFS 简介
hdfs是hadoop中分布式的文件存储系统;具有高容错、可扩展;广泛的用于大数据项目中(不仅仅是hadoop)
1 hdfs copyFromLocal
1.1 java API
public static final String HDFS_PATH = "hdfs://192.168.72.160:8020";
Configuration configuration;
FileSystem fileSystem;
@Before
public void setUp() throws Exception {
configuration = new Configuration();
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "hadoop");
}
@After
public void tearDown() throws IOException {
if (fileSystem != null) {
fileSystem.close();
}
}
@Test
public void copyFromLocalFile() throws Exception{
Path localpath = new Path("E:/linux/redis_install.sh");
Path hdfsPath = new Path("/test/");
fileSystem.copyFromLocalFile(localpath,hdfsPath);
}
1.2 hdfs 命令
[hadoop@hadoop000 data]$ hdfs dfs -copyFromLocal access.log /test/
1.3 两种上传的副本数为什么不同?
原因:
测试环境为伪分布式环境,hdfs 命令上传时使用的配置文件为集群中的配置文件hdfs-site.xml,
而java PI上传时使用的是默认jar中配置文件。
解决办法有两种:
第一种:将集群中的配置文件hdfs-site.xml文件复制到项目中resources目录下
第二种:在Configuration中设置副本数