四-hadoop shell命令

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"

基本命令就介绍到这里

Hadoop提供了一些常用的Shell命令用于管理和操作Hadoop集群。以下是一些常见的Hadoop Shell命令: 1. Hadoop文件系统相关命令: - `hadoop fs -ls <path>`:列出给定路径下的文件和目录。 - `hadoop fs -mkdir <path>`:创建一个新目录。 - `hadoop fs -copyFromLocal <localsrc> <dst>`:将本地文件或目录复制到Hadoop文件系统中的指定目标路径。 - `hadoop fs -copyToLocal <src> <localdst>`:将Hadoop文件系统中的文件或目录复制到本地目标路径。 - `hadoop fs -rm <path>`:删除指定路径的文件或目录。 - `hadoop fs -cat <path>`:显示文件的内容。 - `hadoop fs -get <src> <localdst>`:从Hadoop文件系统中复制文件或目录到本地路径。 - `hadoop fs -put <localsrc> <dst>`:从本地路径复制文件或目录到Hadoop文件系统中。 2. Hadoop作业相关命令: - `hadoop jar <jar> <class>`:运行一个Hadoop作业。 - `hadoop job -list`:列出当前运行的所有Hadoop作业。 - `hadoop job -kill <job-id>`:终止指定的Hadoop作业。 - `hadoop job -status <job-id>`:获取指定Hadoop作业的状态。 - `hadoop job -kill-task <task-id>`:终止指定的Hadoop任务。 - `hadoop job -list-attempt-ids <job-id> <task-id> <type>`:列出指定作业和任务的尝试ID。 3. Hadoop集群管理命令: - `start-all.sh`:启动Hadoop集群中的所有守护进程。 - `stop-all.sh`:停止Hadoop集群中的所有守护进程。 - `hadoop dfsadmin -report`:显示Hadoop集群的文件系统报告。 - `hadoop dfsadmin -safemode [enter|leave|get|wait]`:进入、离开、获取或等待Hadoop安全模式。 以上只是一些常用的Hadoop Shell命令,更多命令请参考Hadoop文档。如果您有任何其他问题,欢迎继续提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值