package com.pip.data.hadoop.util.test;
import java.io.File;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
/**
* @author hewang
*
*/
public class FileSystemUtil extends Configured implements Tool {
@Override
public int run(String[] args) throws Exception {
String inputpath = args[0];
String outputpath = args[1];
JobConf conf = new JobConf(getConf(), FileSystemUtil.class);
FileSystem fileSys = FileSystem.get(conf);
System.out.println("localDir==" + inputpath);
System.out.println("dfs dir==" + outputpath);
if(outputpath.indexOf(File.separator) >= 0) {
outputpath = outputpath.substring(outputpath.lastIndexOf(File.separator));
}
if(!outputpath.startsWith("/"))
outputpath = "/" + outputpath;
System.out.println("outputpath=="+outputpath);
//将本地文件系统的文件拷贝到HDFS中
fileSys.copyFromLocalFile(new Path(inputpath), new Path(outputpath));
//删除输入和输出的临时文件
//fileSys.copyToLocalFile(new Path(shortout),new Path(outputpath));
//fileSys.delete(new Path(shortin),true);
//fileSys.delete(new Path(shortout),true);
return 0;
}
/**
* @param args
*/
public static void main(String[] args) {
args = new String[2];
args[0] = "d:/test/wanghongen/demo/filein/aa.txt";
args[1] = "/wanghongen/demo/filein/wordcount_in0.txt";
try {
int res = ToolRunner.run(new Configuration(), new FileSystemUtil(), args);
System.exit(res);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
- `hadoop fs -put localfile /`: 将本地文件上传到HDFS。 - `hadoop fs -get /hdfsfile .`: 从HDFS下载文件到本地。 - `hadoop jar hadoop-mapreduce-examples.jar wordcount input output`: 运行WordCount示例程序...
这些元数据被存储在内存中,同时也定期写入到本地文件系统以确保持久化。 #### 通讯协议 HDFS内部通信主要依赖于两种协议: - **RPC(远程过程调用)**:用于客户端与Namenode、客户端与Datanode之间以及Datanode...
- **-put [-f] [-p] <localsrc> **:将本地文件上传到 HDFS。 - **-rm [-f] [-r|-R] [-skipTrash] **:删除 HDFS 中的文件或目录。 - **-rmdir [--ignore-fail-on-non-empty] **:删除空目录。 - **-setfacl [-R] [{...
5. SecondaryNameNode 将 edits1 变成可读文件,生成新的 edits2, edits1 可读文件和 fsimage 一同发送到 SecondaryNameNode 中。 6. SecondaryNameNode 生成新的 fsimage(fsimage_chkpoint),并将其发送到 ...
其实,从ftp上拉取文件上传到hdfs上,这个过程大家不要想复杂了,我们讲本地文件上传到hdfs,其实就是采用流的方式。因此,我们可以直接读取ftp上的文件流,然后以流的方式写入到hdfs。 下面,直接贴出代码: ```...
为了验证集群是否正常运行,可以进行一些基本的测试,如使用`hadoop fs -put`将本地文件上传到HDFS,再用`hadoop fs -ls`列出HDFS中的文件,或者运行一个简单的MapReduce作业。 至此,你已经成功搭建了一个基础的...
首先在电脑端下载Linux JDK8的压缩包,然后使用WinSCP将其上传到服务器。解压后,将JDK路径添加到`/etc/profile`或`~/.bashrc`文件中,使环境变量生效。如果不选择手动方式,也可以使用命令行安装,但可能会遇到一些...
例如,可以使用`hadoop fs -put`命令将本地文件上传至HDFS,然后编写一个简单的WordCount程序进行测试。 总之,搭建Hadoop集群是一项涉及多步骤且需要细心操作的任务。通过理解Hadoop的核心组件,正确配置集群环境...
包括创建目录、上传文件、查看文件、删除文件等,通过Hadoop命令行工具或者HDFS API完成。 十四、测试MAPREDUCE程序 编写MapReduce程序,通过提交到YARN执行,观察运行结果和性能指标。 十五、HADOOP分布式系统...
3. **上传文件**:使用`hdfs dfs -put`命令将本地文件上传到HDFS。 4. **运行WordCount**:执行`hadoop jar`命令,指定jar包路径和输入、输出路径,运行WordCount程序。 5. **监控运行状态**:在Web界面的MapReduce...
1. **HDFS命令行**:在终端中,使用`hadoop fs`命令与HDFS交互,如`hadoop fs -put localfile hdfs://namenode:port/remotefile`上传文件。 2. **Hadoop客户端**:编写Java程序,使用Hadoop的API访问HDFS,如`...
4. **测试Hadoop功能**:上传文件到HDFS,运行简单的MapReduce作业。 #### 练习题 - 在伪分布式模式下,如何监控HDFS的状态? - 如何使用YARN提交一个MapReduce任务? ### Hadoop完全分布式集群模式 #### 实验...
- **序列化并上传元数据**:将合并后的元数据序列化到磁盘,并上传给Namenode以替换原有的FsImage文件。 #### 三、Namenode启动流程 - **加载镜像文件**:加载FsImage文件,还原Checkpoint时间点前的元数据信息。 ...
2. **上传文件到HDFS**:使用`hadoop fs -put`命令将本地文件上传至HDFS,验证文件系统工作。 3. **运行WordCount示例**:Hadoop提供了一个简单的WordCount程序,可计算文本中的单词数量。编译并运行此程序,验证...
- 数据本地化原则:将计算移动到数据所在的位置,减少数据传输延迟。 - **Hadoop简史** - Hadoop起源于Google的两篇论文:GFS(Google File System)和MapReduce。 - 由Doug Cutting创建,并在Apache软件基金会下...
- `hdfs dfs -put localfile /hdfsdir`:将本地文件上传到 HDFS。 2. **HDFS 详解**: - **架构**:HDFS 使用主/从架构,包括一个 NameNode 和多个 DataNodes。 - **元数据**:NameNode 存储文件系统的元数据,...
- **hdfs dfs -put**:将本地文件上传到HDFS。 - **hdfs dfs -get**:从HDFS下载文件到本地。 - **hadoop jar**:提交MapReduce作业。 #### 六、Hadoop基本流程 Hadoop的数据处理流程主要包括以下几个阶段: 1. **...
用户可以通过客户端或Web界面将本地文件上传到云端服务器,同时也可以从云端下载所需文件。实现这一功能需要考虑以下几个关键点: 1. **文件分块上传**:大文件上传通常会采用分块策略,将大文件分割成小块并分别...
- `hdfs dfs -put <localfile> <remotedir>`:将本地文件上传到HDFS指定路径。 - `hdfs dfs -get <remotedir> <localdir>`:将HDFS中的文件下载到本地。 - `hdfs dfs -ls <remotedir>`:列出HDFS指定目录下的文件...
在进行Hadoop的部署之前,我们需要在本地计算机上创建一个适合开发和测试的Linux环境。这通常通过安装虚拟机软件如VmWare来实现。VmWare是一款强大的虚拟化软件,它允许我们在单个物理主机上同时运行多个操作系统...