操作场景
该任务指导用户在运维场景或业务场景中使用HDFS客户端。
前提条件
- 已安装客户端。
例如安装目录为“/opt/hadoopclient”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
- 各组件业务用户由系统管理员根据业务需要创建。安全模式下,“机机”用户需要下载keytab文件。“人机”用户第一次登录时需修改密码。(普通模式不涉及)
使用HDFS客户端
- 以客户端安装用户,登录安装客户端的节点。
- 执行以下命令,切换到客户端安装目录。
cd /opt/hadoopclient
- 执行以下命令配置环境变量。
source bigdata_env
- 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。
kinit 组件业务用户
- 直接执行HDFS Shell命令。例如:`
hdfs dfs -ls /
HDFS客户端常用命令
常用的HDFS客户端命令如下表所示。
详见下表:HDFS客户端常用命令
命令 | 说明 | 样例 |
---|---|---|
hdfs dfs -mkdir文件夹名称 | 创建文件夹 | hdfs dfs -mkdir /tmp/mydir |
hdfs dfs -ls文件夹名称 | 查看文件夹 | hdfs dfs -ls /tmp |
hdfs dfs -put客户端节点上本地文件 HDFS指定路径 | 上传本地文件到HDFS指定路径 | hdfs dfs -put /opt/test.txt /tmp上传客户端节点“/opt/test.txt”文件到HDFS的“/tmp”路径下 |
hdfs dfs -gethdfs指定文件 客户端节点上指定路径 | 下载HDFS文件到本地指定路径 | hdfs dfs -get /tmp/test.txt /opt/下载HDFS的“/tmp/test.txt”文件到客户端节点的“/opt”路径下 |
hdfs dfs -rm -r -fhdfs指定文件夹 | 删除文件夹 | hdfs dfs -rm -r -f /tmp/mydir |
hdfs dfs -chmod权限参数 文件目录 | 为用户设置HDFS目录权限 | hdfs dfs -chmod 700 /tmp/test |
客户端常见使用问题
- 当执行HDFS客户端命令时,客户端程序异常退出,报“java.lang.OutOfMemoryError”的错误。
这个问题是由于HDFS客户端运行时的所需的内存超过了HDFS客户端设置的内存上限(默认为128MB)。可以通过修改“ < 客户端安装路径> /HDFS/component_env”中的“CLIENT_GC_OPTS”来修改HDFS客户端的内存上限。例如,需要设置该内存上限为1GB,则设置:
CLIENT_GC_OPTS="-Xmx1G"
在修改完后,使用如下命令刷新客户端配置,使之生效:
source < 客户端安装路径 >/bigdata_env
- 如何设置HDFS客户端运行时的日志级别?
HDFS客户端运行时的日志是默认输出到Console控制台的,其级别默认是INFO级别。有的时候为了定位问题,需要开启DEBUG级别日志,可以通过导出一个环境变量来设置,命令如下:
export HADOOP_ROOT_LOGGER=DEBUG,console
在执行完上面命令后,再执行HDFS
Shell命令时,即可打印出DEBUG级别日志。
如果想恢复INFO级别日志,可执行如下命令:
export HADOOP_ROOT_LOGGER=INFO,console
- 如何彻底删除HDFS文件?
由于HDFS的回收站机制,一般删除HDFS文件后,文件会移动到HDFS的回收站中。如果确认文件不再需要并且需要立马释放存储空间,可以继续清理对应的回收站目录(例如:hdfs://hacluster/user/ xxx /.Trash/Current/ xxx )。