Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

作者头像
Albert陈凯
发布于 2018-04-08 02:57:19
发布于 2018-04-08 02:57:19
1.2K00
代码可运行
举报
文章被收录于专栏:Albert陈凯Albert陈凯
运行总次数:0
代码可运行

离线数据分析平台实战——020Hadoop Shell命令(可跳过)

Hadoop Shell命令简单描述

Hadoop的Shell命令主要分为两类:

  • 一类是启动命令
  • 一类是控制/操作命令(hdfs+mapred+yarn) 其中启动命令位于sbin目录下面, 控制/操作命令主要位于bin目录下面 其实最终的启动命令也是调用控制命令来进行集群服务的启动,区别在于启动命令中需要使用ssh的相关命令来控制其他机器启动服务, 而控制/操作命令主要是直接调用hadoop提供的服务类接口。

Hadoop配置信息

Hadoop命令的执行先需要设置配置信息, 然后再进行命令的执行; 了解命令必须先了解hadoop的配置信息。 Hadoop的配置信息主要在三个地方,分别是 ${HADOOP_HOME}/libexec, 主要储存hadoop的默认环境变量信息, ${HADOOP_HOME}/etc/hadoop, 主要是我们搭建环境的时候配置的环境变量信息 ${HADOOP_HOME}/share/hadoop。 主要是hadoop的相关依赖包信息,包括各个模块依赖的其他第三方jar等信息。

Hadoop环境信息配置脚本

  1. libexec/hadoop-config.sh:最基本的、公用的环境变量配置脚本,会调用etc/hadoop/hadoop-env.sh脚本。主要是配置java启动项相关参数,比如java执行环境的classpath等。
  2. libexec/hdfs-config.sh: hdfs对应的配置信息,里面会调用hadoop-config.sh
  3. libexec/mapred-config.sh: mapred对应的配置信息,里面会调用hadoop-config.sh
  4. libexec/yarn-config.sh:yarn对应的配置信息,里面会调用hadoop-config.sh
  5. libexec/httpfs-config.sh&kms-config.sh: 分别对应webhdfs和kms(Key Management Service)的配置信息。
  6. etc/hadoop/hadoop-env.sh: 用户自定义的公用的相关环境变量信息,比如JAVA_HOMEHADOOP_PID_DIR, HADOOP_CLASSPATH等(基本上除httpfs和kms外其他服务均就会调用该脚本)。
  7. etc/hadoop/mapred-env.sh:mapred相关的环境变量信息,比如配置mapred相关的pid存储路径(historyserver)等。
  8. etc/hadoop/yarn-env.sh: yarn相关环境变量信息(yarn相关服务执行的时候会调用该脚本)。
  9. etc/hadoop/httpfs-env.sh&kms-env.sh:具体的webhdfs和kms相关的环境变量信息,比如日志存储路径,pid存储路径等。

distribute-exclude.sh

作用:

将需要排除的datanode节点主机文件发布到所有NN机器上去。

参数:

前置条件:

集群必须启动;需要在hdfs-site.xml文件中指定dfs.hosts.exclude,默认为空,如果需要的话,可以指定一个文件的绝对路径。

httpfs.sh

作用:

启动/停止webhdfs,主要是提供一个基于HTTP的RESTful操作接口,基本包括hdfs文件系统的所有命令。

参数:

debug, start(启动), stop(停止)等。

前置条件:

hdfs相关服务必须启动;需要在core-site.xml文件中指定hadoop.proxyuser.#user#.hostshadoop.proxyuser.#user#.groups,前一个参数中指定代理用户可代理的用户ip,后一个参数指定代理用户所属组,参数均可以为数组信息的value,如果给定*表示不进行限制。#user#指启动httpfs服务的用户名,也是访问api时候携带的用户名。并指定dfs.webhdfs.enabled是否启动webhdfs,默认为true启动。

image.png

这个是最简单的一个配置信息,如果需要自定义其他信息,比如监听端口号,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-daemon.sh

作用:

启动/停止当前节点的hdfs相关的服务或者执行相对应的脚本命令。

命令格式:

hadoop-daemon.sh [--config <conf-dir>] [--hosts hostlistfile] [--script script] (start|stop) (namenode|secondarynamenode|datanode|journalnode|dfs|dfsadmin|fsck|balancer|zkfc|其他)

注意:

hadoop-daemons.sh其实就是在hadoop-daemon.sh的基础上,通知其他机器执行命令,也就是说hadoop-daemon.sh只对一台机器起作用,但是hadoop-daemons.sh会对多台机器起作用。

yarn-daemon.sh

作用:

启动/停止当前节点的yarn相关的服务。

命令格式:

yarn-daemon.sh [--config <conf-dir>] [--hosts hostlistfile] (start|stop) (resourcemanager|nodemanager)

注意:

yarn-daemons.sh其实就是在yarn-daemon.sh的基础上,通知其他机器执行命令,也就是说yarn-daemon.sh只对一台机器起作用,但是yarn-daemons.sh会对多台机器起作用。

start-dfs.sh

作用:

启动所有节点的hdfs相关服务进程。

命令格式:

start-dfs.sh 里面按顺序分别调用hadoop-daemons.sh脚本启动namenodedatanodesecondarynamenodejournalnodezkfcstop-dfs.shstart-dfs.sh恰恰相反,按照启动的调用hadoop-daemons.sh来关闭服务进程。

start-yarn.sh

作用:

启动所有节点的yarn相关服务进程。

命令格式:

start-yarn.sh 里面按顺序分别调用yarn-daemons.sh脚本启动resourcemanagernodemanager服务。 stop-yarn.shstart-yarn.sh恰恰相反,按照启动的调用yarn-daemons.sh来关闭服务进程。

mr-jobhistory-daemon.sh

作用:

启动/停止当前节点的mapred相关服务。

参数:

start(启动), stop(停止)等。 比如说我们经常会启动job history server,默认情况下,这个服务是没有启动的,我们可以通过命令mr-jobhistory-daemon.sh start historyserver

其他命令

kms.sh: 启动/停止kms(Hadoop Key Management Service)。 refresh-namenodes.sh:刷新所有NN节点内容。 slaves.sh: 通知其他slave节点执行命令。 start/stop-secure-dns.sh: 启用/停用受保护的DN服务。 start/stop-balance.sh: 启用/停用数据平衡服务。 start/stop-all.sh: 启动/停止hdfs和yarn服务进程,底层调用start/stop-dfs.shstart/stop-yarn.sh命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
主要讲解运行命令,也就是sbin目录下面的启动shell文件。

distribute-exclude.sh
    作用:将exclude文件分布到各个namenode上。
        exclude文件主要作用不允许这个文件中host对应的主机连接NN,配置在hdfs-site.xml中配置key为dfs.hosts.exclude,默认为空。
        那么对应就有一个允许列表dfs.hosts,默认为空。
        两个属性都是给定文件路径。
        
        也就是说将一个不允许的hosts列表文件,复制到全部namenode机器上去。包括本机(如果本机是NN)。
        执行步骤:
            1、执行hdfs-config.sh
            2、读取NN节点和配置的exclude文件地址
            3、scp copy 覆盖

httpfs.sh
    作用:启动http fs文件系统,也就是使用http来进行文件访问操作。好处是:如果我们的集群处于防火墙内,但是我们又需要进行访问的情况,就可以开启这个服务,使用的是内置的tomcat,一般情况不会使用。
    httpfs.sh start/stop
    需要配置信息为:core-site.xml文件中添加
        <property>
            <name>hadoop.proxyuser.xxx.hosts</name>
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.xxx.groups</name>
            <value>*</value>
        </property>
    制定httpfs的用户代理hosts和用户组分别不进行限制(*)
    get 请求:
    http://10.2.3.12:14000/webhdfs/v1</path>?op=LISTSTATUS 查看list status
    open
    put请求:
    curl -i -X PUT "http://hh:14000/webhdfs/v1/tmp/webhdfs?op=MKDIRS&user.name=hadoop"
    curl -i -X DELETE "http://<host>:<port>/webhdfs/v1/<path>?op=DELETE
                              [&recursive=<true|false>]"
    "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS"

kms.sh
    作用启动kms服务,默认监听端口为16000
    
    
slaves.sh
    作用:通知其他slave节点机器,执行命令
    参数:
    执行步骤:
        1.首先执行libexec/hadoop-config.sh设置环境变量
        2.执行${HADOOP_CONF_DIR}/hadoop-env.sh设置环境变量
        3.获取${HADOOP_CONF_DIR}/slaves文件的内容
        4.通过ssh命令访问其他机器,这里指定端口号HADOOP_SSH_OPTS,并让其他机器执行命令。
    ssh 22 host 命令
        命令有个要求;指定全称,默认路径为用户根目录。不要求本机有这个命令。
    
hadoop-daemon.sh
    作用:启动当前节点的hadoop服务
    Usage: hadoop-daemon.sh [--config conf-dir] [--hosts hostlistfile] [--script script] (start|stop) <hadoop-command> <args...>
    --config 指定运行参数
    --script指定执行的脚本,当hadoop-commend指定的参数不是下面的这些的时候
    hadoop-command: namenode|secondarynamenode|datanode|journalnode|dfs|dfsadmin|fsck|balancer|zkfc
    执行步骤:
        1.执行libexce/hadoop-config.sh
        2.读取参数,这里直接就开始读取--script参数,没有看到读取--config参数和--hosts参数
        3.执行etc/hadoop/hadoop-env.sh: ”需要配置HADOOP_CONF_DIR4.设置一些pid和log日志位置信息
        4.决定是start stop
        5.如果command是hadoop集群的一些命令,那么执行bin/hdfs命令,否则执行--script指定的命令,如果为空,那就不执行

hadoop-daemons.sh
    作用:启动集群的hadoop的服务
    Usage: hadoop-daemons.sh [--config confdir] [--hosts hostlistfile] [start|stop] command args...
    --config 指定参数信息
    执行步骤:
        1.执行libexec/hadoop-config.sh
        2.执行sbin/slaves.sh
        3.使用slaves.sh来通知所有机器执行hadoop-daemon.sh,并将传入的参数同事传递过去。
    
hdfs-config.sh
    作用:执行libexec/hadoop-config.sh,我们从这个代码中可以看出必须将sbin目录添加到PATH路径中去。
        配置环境变量:HADOOP_LIBEXEC_DIR HADOOP_COMMON_HOME HADOOP_HOME 必须有一个配置,当然不配置也是可以的。

mr-jobhistory-daemon.sh
    作用:启动当前节点的jobhistory相关服务
    Usage: mr-jobhistory-daemon.sh [--config <conf-dir>] (start|stop) <mapred-command> 其实--config参数没有进行处理
    执行步骤:
        1. 执行libexec/mapred-config.sh配置mapred相关环境变量
        2. 执行${HADOOP_CONF_DIR}/mapred-env.sh
        3. 设置日志和pid存储路径
        4. 判断是start or stop。如果是stop直接kill pid
        5. 如果是start,调用bin/mapred

refresh-namenodes.sh
    作用:刷新namenode节点数据
        hdfs dfsadmin -fs hdfs://xxx -refreshNodes
        
start-all.sh
    同时启动hdfs和yarn
stop-all.sh
    同时关闭hdfs和yarn

start-balancer.sh
    作用:启动数据平衡器
    执行步骤:
        1.执行libexce/hadoop-config.sh环境变量
        2.调用hadoop-daemon.sh --script bin/hdfs start balancer, 也就是说最终还是调用了hdfs的start balancer命令。
stop-balancer.sh
    停止数据平衡器
    底层调用hadoop-daemon.sh的stop命令

start-dfs.sh
    作用:启动hdfs相关服务
    Usage: start-dfs.sh [-upgrade|-rollback] [other options such as -clusterId]
    upgrade: 升级
    rollback:回滚到上一个版本
    执行步骤:
        1. 获取当前命令的绝对路径,获取libexec的路径
        2. 执行libexce/hdfs-config.sh(其实就是为了hadoop-config.sh来进行环境配置)
        3. 解析参数
        4. 获取namenode列表, 通过hdfs的getconf命令来获取
        5. 启动namenode节点,使用hadoop-daemons.sh来启动,并指定config为etc/hadoop;hostname为获取的nn列表,script为hdfs,start, namenode;并将其他参数传递过去。其实这里可以不指定script的。
        6. 判断是否设置环境变量HADOOP_SECURE_DN_USER, 如果设置那么就不能启动datanode,必须使用start-secure-dns.sh来启动。否则使用hadoop-daemons.sh来启动datanode。
        7. 通过hdfs命令获取列表,启动secondaryNamenodes
        8. 通过hdfs命令获取shared edits路径,如果配置的路径是以qjournal://开头的,那么通过hadoop-daemons.sh来启动journalnode
        9. 获取hdfs-site.xml中的配置参数dfs.ha.automatic-failover-enabled,如果为true, 那么启动zkfc

stop-dfs.sh
    作用:关闭全部的hdfs相关服务,没有参数
    执行步骤:
        1. 获取路径
        2. 执行libexec/hdfs-config.sh<也就是执行hadoop-config.sh>
        3. 使用hdfs的命令获取namenode节点列表,然后执行hadoop-daemons.sh命令停止服务
        4. 停止datanode
        5. 停止secondarynamenode
        6. 停止journalnode
        7. 停止zkfc

start-secure-dns.sh
    作用:启动安全验证的datanode节点服务,要求设置环境变量EUID=0 HADOOP_SECURE_DN_USER指定用户
    底层也是调用hadoop-daemons.sh

stop-secure-dns.sh
    停止datanode


start-yarn.sh
    作用:启动yarn相关所有服务resourcemanager和nodemanager
    参数无
    执行步骤“;
        1. 执行yarn-config.sh,
        2. 启动resourcemanager,调用yarn-daemon.sh(因为只需要启动一次, 而nn可能因为存储ha机制(有多个namenode),所以调用的是hadoop-daemons.sh)
        3. 启动nodemanager
stop-yarn.sh 命令yarn相关停止服务

yarn-daemons.sh
    作用:启动/停止yarn相关服务
    Usage: yarn-daemons.sh [--config confdir] [--hosts hostlistfile] [start
|stop] command args...
    执行步骤:
        1. 执行yarn-config.sh设置环境变量
        2. 执行slaves.sh通知其他机器执行yarn-daemon.sh

yarn-daemon.sh
    作用:启动/停止当前节点的yarn相关服务
    Usage: yarn-daemon.sh [--config <conf-dir>] [--hosts hostlistfile] (start|stop) <yarn-command>
    执行步骤:
        1. 设置hdfs-config.sh相关环境变量
        2. 设置yarn-env.sh相关环境变量
        3. 设置pid log等信息
        4. 如果是start,调用hdfs启动
        5. 如果是stop,直接kill进程。


hadoop-config.sh
    配置一些环境变量信息
hdfs-config.sh
    根据是否环境变量调用hadoop-config.sh文件
httpfs-config.sh
    配置httpfs相关环境变量,比如pid的存储路径,log日志的存储路径等。还有这个其他配置信息。
kms-config.sh
    配置kms相关环境变量,最终会调用/etc/hadoop/kms-env.sh
mapred-config.sh
    配置mapred相关环境变量,主要是historyserver
        先调用hadoop-config.sh
        配置日志信息
yarn-config.sh
    调用hadoop-config.sh
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.08.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop大数据部署
关闭防火墙: systemctl stop firewalld systemctl disable firewalld
星哥玩云
2022/07/20
5430
【Hadoop篇】--Hadoop常用命令总结
1、启动hadoop所有进程 start-all.sh等价于start-dfs.sh + start-yarn.sh
LhWorld哥陪你聊算法
2018/09/13
3.2K0
Hadoop 集群部署
Hadoop各个功能模块的理解 零. 概述 HDFS模块 HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。
Freedom123
2024/03/29
1720
高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
192.168.1.84 hadoop84 #namenode1,resourcemanager
白石
2019/08/23
4970
Hadoop2.2.0 的安装和基本配置
Hadoop2.0的架构和1.0完全不一样,在安装配置上和1.0也有很大的不同,譬如配置文件的目录不一样了,还有要对yarn进行配置,这个在1.0是没有的。很多人第一次接触hadoop2.0的时候,会很不适应,而且官方的文档也有些写得不太清楚的地方,也有些错误。笔者在初次安装hadoop2.0的时候,看着官方的文档,中间也出现过很多问题。为了帮助大家很快的部署上hadoop2.0,笔者写了这篇文章。这篇文章主要就是介绍一个hadoop2.0的一个最基本最简单的配置,目的就是尽快的让hadoop2.0在机器上
小小科
2018/05/02
9240
Hadoop数据分析平台实战——030Hadoop Shell命令02(熟悉linux跳过)离线数据分析平台实战——030Hadoop Shell命令02
离线数据分析平台实战——030Hadoop Shell命令02 hdfs命令 hdfs命令是hadoop提供的操作HDFS分布式文件系统的shell命令客户端, 我们可以通过该命令对分布式文件系统进行文件的增删查操作, 也可以通过该命令获取到一些hadoop的相关配置信息, 而且我们启动hdfs相关服务进程都是通过该命令进行的。 hdfs命令主要分为两类, 一类是用户命令:dfs, fsck等, 一类是管理员命令:dfsadmin,namenode,datanode等。 http://archi
Albert陈凯
2018/04/08
7090
Hadoop数据分析平台实战——030Hadoop Shell命令02(熟悉linux跳过)离线数据分析平台实战——030Hadoop Shell命令02
Hadoop完全分布式搭建部署
1)在各个JournalNode节点上,输入以下命令启动journalnode服务:(前提zookeeper集群已启动)
星哥玩云
2022/08/08
4770
Hadoop完全分布式搭建部署
Hadoop框架:单服务下伪分布式集群搭建
以下配置文件所在路径:/opt/hadoop2.7/etc/hadoop,这里是Linux环境,脚本配置sh格式。
知了一笑
2020/09/18
3280
原 Spark On Yarn完全分布式搭
Spark On Yarn完全分布式搭建     Spark On Yarn的搭建分为三个阶段,第一个是Zookeeper集群的搭建,第二是Hadoop集群的搭建,第三是Spark集群的搭建。所以以下将按照这三个步骤来给大家进行展示Spark On Yarn完全分布式搭建。 一、准备 1、软件及版本     1. jdk-8u65-linux-x64.tar.gz     2. scala-2.11.0.tgz     3. zookeeper-3.4.7.tar.gz     4. hadoop-2.7.
云飞扬
2018/05/17
1.7K0
Hadoop2.2.0集群启动和停止Shell脚本
说明:Hadoop2.2.0集群启动和停止Shell脚本,以下脚本中出现的master,slave1,slave2,slave3均已配host。
星哥玩云
2022/07/03
4340
Hadoop完全分布式安装
完全分布式安装部署,其实步骤上来说与伪分布式没有太大的区别,主要增加2台虚拟机部署称为一个3台的集群
我脱下短袖
2019/12/21
4740
Hadoop完全分布式搭建
一、介绍 Hadoop2.0中,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,Quorum Journal Node(JournalNode)集群或者Nnetwor
用户1263954
2018/06/22
1.4K0
Hadoop2.6版本集群环境搭建
2、linux版本:[spark@S1PA11 ~]$ cat /etc/issue Red Hat Enterprise Linux Server release 5.4 (Tikanga)
星哥玩云
2022/07/04
3690
Hadoop 入门教程(超详细)[通俗易懂]
在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。 在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。
全栈程序员站长
2022/08/12
11.8K0
Hadoop 入门教程(超详细)[通俗易懂]
保姆级教程:还愁不会搭建伪分布式吗?(其实很简单)
在上面三篇文章我们已经把基本环境搭建好了,也进行了相应的案例演示,下面我们将进入伪分布式的环境搭建,并运行实例,建议先看上面三篇文章在进行操作。看一百遍,不如手过一遍。快点拿起你的键盘和我一起操作起来吧。
用户7656790
2020/08/13
3980
保姆级教程:还愁不会搭建伪分布式吗?(其实很简单)
大数据实训之集群规划
vi /etc/sysconfig/network-scripts/ifcfg-ens33
张哥编程
2024/12/07
820
大数据实训之集群规划
大数据成长之路------hadoop集群的部署(2)
7、启动集群 a)格式化集群 在第一个节点执行 hadoop namenode -format
Maynor
2021/04/09
3160
大数据_Hadoop初体验
root@node1 server$ scp -r /export/server/hadoop root@node2:$PWD
Pandolar
2022/01/04
1K0
大数据_Hadoop初体验
Hadoop伪分布式配置
http://localhost:50070/dfshealth.html#tab-overview
羊羽shine
2019/08/24
7490
Hadoop部署配置及运行调试(上)
本地模式是最简单的部署模式,所有模块都运行在一台机器的单个JVM进程中,使用的是本地文件系统,而不是HDFS. 本地模式主要是用于本地开发过程中的运行调。下载Hadoop安装后不用进行任何的配置,默认的就是本地模式。
数人之道
2022/01/07
1.2K0
Hadoop部署配置及运行调试(上)
相关推荐
Hadoop大数据部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验