基本命令:
hadoop fs -命令 (这里命令一般和Linux中的命令一样)
※这里一定要在~/.bashrc中进行配置,不然不会生效,在配置文件中加上下面语句
export HADOOP_HOOM=/usr/local/hadoop (这要写自己hadoop的安装路径)
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
常用命令:
hadoop fs -mkdir /user/用户名 ——创建默认工作目录,用户名是你的用户名也可以用这个语句创建其他目录
hadoop fs -ls —— 查看
hadoop fs -lsr —— 递归查看
hadoop fs -put example.txt . —— 从本地复制到hdfs的默认工作目录,注意后面有个.
hadoop fs -get example.txt —— 从hdfs中取出example.txt
hadoop fs -cat example.txt —— 显示hdfs中example.txt数据
hadoop fs -help 命令 —— 了解该命令详细内容
hadoop fs —— 查看hadoop该版本全部命令
※这些命令基本都是对hdfs的操作
java编程处理hdfs文件
FileSystem类:与文件系统交互,调用factory方法
Configuration类:保留键值对
例:
package org.apache.hadoop.examples;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class PutMerge {
publicstatic void main(String[] args) throws IOException{
Configuration conf = new Configuration();
FileSystemhdfs = FileSystem.get(conf);
FileSystemlocal = FileSystem.getLocal(conf);
PathinputDir = new Path(args[0]); //设置输入目录
PathhdfsFile = new Path(args[1]); //设置输出目录
try{
FileStatus[]inputFiles = local.listStatus(inputDir); //得到本地文件列表
FSDataOutputStream out = hdfs.create(hdfsFile); //生成hdfs输出流
for(int i=0;i
System.out.println(inputFiles[i].getPath().getName());
FSDataInputStream in = local.open(inputFiles[i].getPath());//打开本地输入流
bytebuffer[] = new byte[256]; //java复制过程
intbytesRead=0;
while((bytesRead = in.read(buffer))>0){
out.write(buffer, 0, bytesRead);
}
in.close();
}
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
}