hadoop shell命令简单描述:
Hadoop的Shell命令主要分为两类,一类是启动命令,一类是控制/操作命令(hdfs+mapred+yarn)。其中启动命令位于sbin目录下面,控制/操作命令主要位于bin目录下面。其实最终的启动命令也是调用控制命令来进行集群服务的启动,区别在于启动命令中需要使用ssh的相关命令来控制其他机器启动服务,而控制/操作命令主要是直接调用hadoop提供的服务类接口。
hadoop配置信息
Hadoop命令的执行先需要设置配置信息,然后再进行命令的执行;所以说了解命令必须先了解hadoop的配置信息。
Hadoop的配置信息主要在三个地方,分别是
HADOOPHOME/libexec, {HADOOP_HOME}/etc/hadoop, ${HADOOP_HOME}/share/hadoop。其中第一个文件中主要储存hadoop的默认环境变量信息,第二个文件中主要是我们搭建环境的时候配置的环境变量信息,第三个文件主要是hadoop的相关依赖包信息,包括各个模块依赖的其他第三方jar等信息。
hadoop环境信息配置脚本1:
- libexec/hadoop-config.sh:最基本的、公用的环境变量配置脚本,会调用etc/hadoop/hadoop-env.sh脚本。主要是配置java启动项相关参数,比如java执行环境的classpath等。
- libexec/hdfs-config.sh: hdfs对应的配置信息,里面会调用hadoop-config.sh。
- libexec/mapred-config.sh: mapred对应的配置信息,里面会调用hadoop-config.sh
- libexec/yarn-config.sh:yarn对应的配置信息,里面会调用hadoop-config.sh
- libexec/httpfs-config.sh&kms-config.sh: 分别对应webhdfs和kms(Key Management Service)的配置信息。
hadoop环境信息配置脚本2:
- etc/hadoop/hadoop-env.sh: 用户自定义的公用的相关环境变量信息,比如JAVA_HOME,HADOOP_PID_DIR, HADOOP_CLASSPATH等(基本上除httpfs和kms外其他服务均就会调用该脚本)。
- etc/hadoop/mapred-env.sh:mapred相关的环境变量信息,比如配置mapred相关的pid存储路径(historyserver)等。
- etc/hadoop/yarn-env.sh: yarn相关环境变量信息(yarn相关服务执行的时候会调用该脚本)。
- etc/hadoop/httpfs-env.sh&kms-env.sh:具体的webhdfs和kms相关的环境变量信息,比如日志存储路径,pid存储路径等
httpfs.sh:
作用:启动/停止webhdfs,主要是提供一个基于HTTP的RESTful操作接口,基本包括hdfs文件系统的所有命令。
参数:debug, start(启动), stop(停止)等。
前置条件:hdfs相关服务必须启动;需要在core-site.xml文件中指定hadoop.proxyuser.#user#.hosts和hadoop.proxyuser.#user#.groups,前一个参数中指定代理用户可代理的用户id,后一个参数指定代理用户所属组,参数均可以为数组信息的value,如果给定*表示不进行限制。#user#指启动httpfs服务的用户名,也是访问api时候携带的用户名。并指定dfs.webhdfs.enabled是否启动webhdfs,默认为true启动。
httpfs-site.xml 配置
[hadoop@hadoop-vm hadoop]$ pwd
/home/hadoop/bigdata/hadoop-2.6.0-cdh5.6.0/etc/hadoop
[hadoop@hadoop-vm hadoop]$ vim httpfs-site.xml
<configuration>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
这个是最简单的一个配置信息,如果需要自定义其他信息,比如监听端口号,pid存储路径等一些列信息,那么需要在etc/hadoop/httpfs-env.sh中进行配置。比如端口号配置信息为HTTPFS_HTTP_PORT默认为14000,pid存储文件为CATALINA_PID默认/tmp/httpfs.pid
httpfs.sh命令简单介绍:
启动/停止服务: httpfs.sh start/stop
RESTful API:
1. 获取指定路径的liststatus信息,命令为LISTSTATUS,请求方式为GET。
2. 创建一个文件夹, 命令为MKDIRS,请求方式为PUT。
3. 删除一个文件,命令为DELETE,请求方式为DELETE。
4. 新增一个文件并打开,命令CREATE,请求方式PUT。
5. 打开一个文件,命令为OPEN,请求方式GET。
启动
[hadoop@hadoop-vm sbin]$ ./httpfs.sh start
例如
[hadoop@hadoop-vm sbin]$ curl -i "http://hadoop-vm:14000/webhdfs/v1/tmp?op=LISTSTATUS&user.name=hadoop"
基本命令就介绍到这里
![](/qrcode.jpg)