• CentOS7安装部署CDH6.2.1


    CentOS7安装部署CDH6.2.1

    一、前言

    1.简介

    Cloudera Manager 是一个用于管理 CDH 集群的端到端应用程序。Cloudera Manager 设定了标准 通过提供对 CDH 集群每个部分的精细可见性和控制,实现企业部署,使运营商能够提高性能、提高服务质量、增加 合规性并降低管理成本。借助 Cloudera Manager,您可以轻松部署和集中操作完整的 CDH 堆栈和其他托管服务。该应用程序自动执行 安装过程,将部署时间从几周缩短到几分钟;为您提供集群范围内正在运行的主机和服务的实时视图;提供单个中央控制台来制定配置 集群中的更改;并集成了全套报告和诊断工具,可帮助您优化性能和利用率。本入门书介绍了基本概念、结构、 和Cloudera Manager的功能。

    2.架构

    在这里插入图片描述

    Cloudera Manager Server 可与其他几个组件配合使用:

    • 代理(Agent):安装在每台主机上。代理负责启动和停止进程、解压缩配置、触发安装以及 监视主机。
    • 管理服务(Management Service):由一组执行各种角色组成的服务 监视、警报和报告功能。
    • 数据库(Database):存储配置和监视信息。
    • Cloudera Repository :由ClouderaManager分发的软件存储库。
    • 客户端(Clients):是与服务器交互的接口:
      • Admin Console: 基于 Web 的 UI,Admin 可用于管理集群和 Cloudera Manager 。
      • API:开发人员用来创建自定义 Cloudera 的 API 管理器应用程序。

    3.环境

    • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
    • JDK 版本:Java SE Development Kit 11.0.19
    • CDH 版本:6.2.1

    Cloudera Manager Overview | 6.2.x:https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/cm_intro_primer.html

    Cloudera Installation Guide | 6.2.x:https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/installation.html

    CDH 6.2.1 Packaging:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_62_packaging.html#cdh_621_packaging

    CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916

    CentOS7安装部署Doris:https://blog.csdn.net/u011424614/article/details/132419397

    二、环境准备

    1.部署服务器

    机器名IP角色硬件配置
    cdh001192.168.249.121主节点4核 16G
    cdh002192.168.249.122从节点4核 8G
    cdh003192.168.249.123从节点4核 8G

    2.安装包准备

    • 百度云盘

    链接: https://pan.baidu.com/s/1ToePLghssMMxFnk-AiEkhQ

    提取码: xvgx

    • 所有节点创建目录
    mkdir /root/download
    
    • 1
    • 将下载的文件夹,上传到 cdh001/root/download 目录

    3.修改机器名

    执行机器:所有节点

    • 修改 3 台服务器的机器名
    #-- cdh001
    hostnamectl set-hostname cdh001 --static
    hostnamectl set-hostname cdh001 --transient
    
    #-- cdh002
    hostnamectl set-hostname cdh002 --static
    hostnamectl set-hostname cdh002 --transient
    
    #-- cdh003
    hostnamectl set-hostname cdh003 --static
    hostnamectl set-hostname cdh003 --transient
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.关闭防火墙

    执行机器:所有节点

    systemctl stop firewalld
    systemctl disable firewalld
    
    # 状态
    systemctl status firewalld
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5.关闭 SELinux

    执行机器:所有节点

    • 临时关闭
    setenforce 0
    
    • 1
    • 永久关闭
    vim /etc/selinux/config
    
    • 1

    编辑内容

    # SELINUX=enforcing 改为 SELINUX=disabled
    SELINUX=disabled
    
    • 1
    • 2

    6.Hosts文件

    执行机器:所有节点

    • 配置IP和机器名的映射
    cat > /etc/hosts <<EOF
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.249.121 cdh001
    192.168.249.122 cdh002
    192.168.249.123 cdh003
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    7.limits文件

    执行机器:所有节点

    • 设置用户最多可打开的文件数、进程数、内存占用
    cat > /etc/security/limits.conf <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 更新参数
    sysctl -p
    
    • 1

    8.设置swap空间

    执行机器:所有节点

    • 输出交换分区的使用情况
    cat /proc/sys/vm/swappiness
    
    • 1
    • 修改文件内容
    echo 10 > /proc/sys/vm/swappiness
    echo "vm.swappiness = 0" >> /etc/sysctl.conf
    
    • 1
    • 2
    • Cloudera 建议将交换空间设置为 0,过多的交换空间会引起 GC 耗时激增

    9.关闭透明巨页内存

    执行机器:所有节点

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    
    • 1
    • 2
    • 配置到文件
    echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
    #避免重启后不生效,设置执行权限
    chmod +x /etc/rc.d/rc.local
    
    • 1
    • 2
    • 3
    • 4

    10.免密登录

    执行机器:zdb001

    # 生成公钥和私钥;如果不设置密码,三次回车
    ssh-keygen -t rsa
    
    # 复制公钥和私钥,输入对应机器的root用户密码
    ssh-copy-id root@cdh001
    ssh-copy-id root@cdh002
    ssh-copy-id root@cdh003
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三、安装CM管理端

    1.安装第三方依赖包

    执行机器:所有节点

    yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl
    
    yum -y install bind-utils psmisc cyrus-sasl-plain libaio cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
    
    • 1
    • 2
    • 3

    2.安装Oracle的JDK

    执行机器:所有节点

    • 将 cdh001 的 JDK 安装包拷贝到其它两台机器
    # 拷贝到 192.168.249.122
    scp /root/download/cdh6.2.1/cloudera-repos-6.2.1/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm root@192.168.249.122:/root/download/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    
    # 拷贝到 192.168.249.123
    scp /root/download/cdh6.2.1/cloudera-repos-6.2.1/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm root@192.168.249.123:/root/download/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 安装 JDK
    # 查询已安装的java
    rpm -qa | grep java
    
    # 卸载
    yum -y remove java*
    
    # cdh001执行
    cd /root/download/cdh6.2.1/cloudera-repos-6.2.1/
    rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    
    # cdh002 和 cdh003 执行
    cd /root/download
    rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 配置环境变量
    vim /etc/profile
    
    • 1
    • 写入内容
    export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
    export PATH=$PATH:$JAVA_HOME/bin
    
    • 1
    • 2
    • 更新环境变量
    source /etc/profile
    
    • 1

    3.安装lrzsz

    执行机器:所有节点

    • 类似 ftp 的上传和下载工具
    rpm -qa | grep lrzsz
    
    # 如果已安装,可忽略
    yum -y install lrzsz
    
    • 1
    • 2
    • 3
    • 4

    4.安装ntp

    1)设置中国时区

    • 修改时区;如已修改过,可跳过
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    • 1
    • 验证
    date
    
    • 1

    2)安装 ntp

    执行机器:所有节点

    • 用于各个机器的时间同步
    rpm -qa | grep ntp
    
    # 如果已安装,可忽略
    yum -y install ntp
    
    • 1
    • 2
    • 3
    • 4
    • 管理 ntp 服务
    # 启动
    systemctl start ntpd.service
    systemctl enable ntpd.service
    # 重启
    systemctl restart ntpd.service
    # 关闭
    systemctl stop ntpd.service
    systemctl disable ntpd.service
    # 状态
    systemctl status ntpd.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3)选一台机器作为 ntp 服务端

    执行机器:cdh001

    vim /etc/ntp.conf
    
    • 1
    • 注释其它 server , 采用本地时间作为集群时间,且允许内网时间同步
    # server 0.centos.pool.ntp.org iburst
    # server 1.centos.pool.ntp.org iburst
    # server 2.centos.pool.ntp.org iburst
    # server 3.centos.pool.ntp.org iburst
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4)其它机器作为 ntp 客户端,同步服务端的时间

    执行机器:cdh002、cdh003

    • 使用 crontab 实现每隔 30 分钟同步一次内网一台机器的时间
    crontab -e
    
    • 1
    30 * * * *  /usr/sbin/ntpdate cdh001; /sbin/hwclock -w
    
    • 1
    • crontab 格式
    *  *  *  *  *  command
    分 时 日 月 周   命令
    
    • 1
    • 2

    5.安装MySQL

    执行机器:cdh001

    • MySQL connector 包
    # 创建目录
    mkdir -p /usr/share/java
    
    # 安装包目录
    cd /root/download/cdh6.2.1
    # 解压
    tar -zxvf mysql-5.7/mysql-connector-java-5.1.47.tar.gz
     
    # 移动到新建目录下,并改文件名为 mysql-connector-java.jar
    cd mysql-connector-java-5.1.47
    mv mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
    # 设置权限
    chmod 755 /usr/share/java/mysql-connector-java.jar
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 安装 MySQL 服务
    # 检查 mariadb 是否安装
    rpm -qa|grep mariadb
    
    # 卸载 mariadb
    rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    
    # 解压 MySQL 安装包
    cd /root/download/cdh6.2.1
    tar -xvf mysql-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
    
    # rpm 安装
    rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 配置 MySQL 参数
    cat > /etc/my.cnf <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 启动 MySQL
    # 注意保存初始化生成的临时密码
    # [Note] A temporary password is generated for root@localhost: q5TP/wdFjN?i
    mysqld --initialize --user=mysql
    
    # 启动
    systemctl start mysqld.service
    systemctl enable mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 修改密码和远程访问权限
    mysql -u root -p
    # 设置密码
    set password for root@localhost = password('cdh123Z');
    # 设置远程权限
    use mysql;
    update user set host='%' where user='root' and host='localhost';
    flush privileges;
    # 备用
    quit;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 创建默认数据库
    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 查询现有数据库
    show databases;
    
    • 1

    6.配置CM的yum源

    执行机器:cdh001

    • 安装和启动 http 服务器
    yum install httpd
    # 启动
    service httpd start
    systemctl enable httpd.service
    
    • 1
    • 2
    • 3
    • 4
    • 创建 CM 的 yum 源
    # 创建 yum 源目录
    mkdir -p /var/www/html/cloudera-repos/repodata
    
    # 安装包目录
    cd /root/download/cdh6.2.1
    # 复制 CM 的文件夹
    cp -r cloudera-repos-6.2.1/. /var/www/html/cloudera-repos/
    
    cd /var/www/html/cloudera-repos/
    
    # 安装 createrepo
    yum -y install yum-utils createrepo
    # 创建 repodata
    createrepo .
    
    # yum 清理
    yum clean all
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 访问 yum 源:http://cdh001/cloudera-repos/http://192.168.249.121/cloudera-repos/

    如无法访问,请注意配置 Hosts 文件

    7.CDH parcel包安装

    执行机器:cdh001

    # 创建 parcel 包存放目录
    mkdir -p /opt/cloudera/parcel-repo
    
    # 安装包目录
    cd /root/download/cdh6.2.1
    cp -r parcel-6.2.1/. /opt/cloudera/parcel-repo
    
    # 创建 cloudera-scm 用户
    useradd --system --home=/opt/cloudera-manager/cm-6.2.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    # 修改用户组
    chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
    
    cd /opt/cloudera/parcel-repo
    #校验 parcel 文件
    sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
    # 查看.sha1 内容
    cat CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1
    # 如果一样,直接将后缀 .sha1 改为 .sha
    # 如果不一样,将 sha1sum 后的值替换到 .sha1 文件中 并改为 .sha 
    mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    8.CM 组件安装

    执行机器:cdh001

    • 安装 CM 组件
    # 主节点(cdh001)导入 GPGkey 
    rpm --import http://cdh001/cloudera-repos/RPM-GPG-KEY-cloudera
    
    # 顺序安装
    # 所有节点安装 daemons
    yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
    # 主节点(cdh001)安装 server
    yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
    # 所有节点安装 agent
    yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm
    
    # 主节点(cdh001)初始化数据库
    # /opt/cloudera/cm/schema/scm_prepare_database.sh 数据库类型 数据库名 用户名 密码
    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root cdh123Z
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 修改 CM Agent 配置文件

    执行机器:cdh002、cdh003

    # 配置CM Server的Host
    sed -i '/server_host=/cserver_host=cdh001' /etc/cloudera-scm-agent/config.ini
    
    • 1
    • 2
    • 启动 CM 服务
    # 启动server(主节点 cdh001 执行)
    systemctl start cloudera-scm-server
    systemctl enable cloudera-scm-server
    # 启动agent(所有节点执行)
    systemctl start cloudera-scm-agent
    systemctl enable cloudera-scm-agent
    # 服务状态
    systemctl status cloudera-scm-server
    systemctl status cloudera-scm-agent
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    四.配置CDH集群

    执行机器:cdh001

    1.CM欢迎页

    CM管理端配置CDH集群

    • 登录 CM 管理端:http://cdh001:7180http://192.168.249.121:7180/
    • 默认账号和密码:admin || admin

    在这里插入图片描述

    • 欢迎页

    在这里插入图片描述

    • 用户协议

    在这里插入图片描述

    • 选择免费版

    在这里插入图片描述

    2.集群安装欢迎页

    在这里插入图片描述

    • 填写集群名称

    在这里插入图片描述

    • 切换到【当前管理的主机】,勾选所有主机

    在这里插入图片描述

    • 点击【更多选项】按钮,填写 “远程 Parcel 存储库 URL”

    在这里插入图片描述

    • 远程 Parcel 存储库 URL:【http://cdh001/cloudera-repos/cm6】,其它链接可删除

    在这里插入图片描述

    • 等待 CDH 安装完成
    • 点击 【Inspect Network Performance】 按钮 和 【Inspect Hosts】按钮,检查集群网络环境和主机状态

    在这里插入图片描述

    • 根据需要,选择要安装的服务,这里选择 【自定义服务】

    在这里插入图片描述

    • 自定义角色分配

    在这里插入图片描述

    • 数据库设置,填写数据库信息后,点击【测试连接】按钮

    在这里插入图片描述

    • 审核更改,默认存储目录

    在这里插入图片描述

    • 等待安装完成

    在这里插入图片描述

    • 安装完成

    在这里插入图片描述

    五、高可用

    1.Zookeeper高可用

    • 点击 zookeeper

    在这里插入图片描述

    • 实例 - 添加角色实例

    在这里插入图片描述

    • 选择主机

    在这里插入图片描述

    • 勾选 cdh002 和 cdh003

    在这里插入图片描述

    在这里插入图片描述

    • 安装之后,重启服务

    在这里插入图片描述

    2.HDFS高可用

    • 提前清理目录(cdh001执行)
    rm -rf /dfs/nn
    
    • 1
    • 点击 HDFS

    在这里插入图片描述

    • 操作 - 启用 HighAvailability

    在这里插入图片描述

    • 修改 nameservice 名称

    在这里插入图片描述

    • 选择角色的主机

    在这里插入图片描述

    • 编辑 NameNode 数据目录和 JournalNode 目录,注意:设置的目录与前面清理目录关联

    在这里插入图片描述

    • 等待部署完成后,重启服务

    在这里插入图片描述

    3.添加服务

    • 集群操作 - 添加服务

    在这里插入图片描述

    • 选择服务

    在这里插入图片描述

    六、告警

    1.CM 告警

    在这里插入图片描述

    2.集群告警

    在这里插入图片描述

    • 点击蓝色文字,根据提示修改配置

    在这里插入图片描述

    七、报错

    报错1

    • 提示信息
    # 集群配置 - 数据库设置
    JDBC driver cannot be found. Unable to find the JDBC database jar on host : cdh003.
    
    • 1
    • 2
    • 解决方法

    方案一:查看 Hive、Activity Monitor、Hue 是否已选择 cdh001,因为 cdh001 安装了 MySQL

    方案二:/usr/share/java/mysql-connector-java.jar 是否有 MySQL 连接驱动

    报错2

    • 提示信息
    对当前 NameNode 的名称目录进行格式化。如果名称目录不为空,此操作将失败。
    
    • 1
    • 解决方法
    rm -rf /dfs/nn
    
    • 1

    报错3

    • 提示信息
    Failed to start namenode.
    java.io.IOException: NameNode is not formatted.
    	at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:237)
    	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1084)
    	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:709)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:665)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:727)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:950)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:929)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1653)
    	at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1720)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 解决方法
    hdfs namenode -format
    
    • 1

    报错4

    • 提示信息

    场景说明:终端执行 hdfs dfs -ls /tmp 时,提示一下信息

    ls: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
    
    • 1
    • 原因

    HDFS 高可用模式下,执行的 NameNode 处于 standby 状态

    • 解决方法
    1. 编辑配置文件
    vim /etc/hadoop/conf/core-site.xml
    vim /etc/hadoop/conf.cloudera.hdfs/core-site.xml
    
    • 1
    • 2
    1. 将配置改成 active 状态的 NameNode
    
       fs.defaultFS
       hdfs://cdh002:8020
    
    
    • 1
    • 2
    • 3
    • 4
    1. 重启 HDFS ,配置才会生效

    报错5

    • 提示信息
    不良 : Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录。
    
    • 1
    • 解决方法
    1. 创建 /tmp 目录;

    2. 创建完成后,HDFS 会自动创建 .cloudera_health_monitoring_canary_files 文件夹

    hdfs dfs -ls /tmp
    
    sudo -u hdfs hdfs dfs -mkdir /tmp
    
    • 1
    • 2
    • 3

    报错6

    • 报错提示

    场景说明:在 NameNode 的 Web UI 中创建文件夹时,提示一下信息

    Permission denied: user=dr.who, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
    
    • 1
    • 解决方法
    1. HDFS = 配置 - 搜索 hdfs-site - hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀)

    2. 配置 dfs.permissions.enabled = false

    在这里插入图片描述

  • 相关阅读:
    Redis事务、pub/sub、PipeLine-管道、benchmark性能测试详解
    SpringBean生命周期
    【基本算法题-2022.7.27】5. 递归实现指数型枚举
    gzip 压缩优化大 XML 响应的处理方法
    STM32开发(二十九)STM32F103 数据手册 —— 高级定时器 TIM1 TIM8详解
    做转子力学分析,你选APDL还是Workbench仿真?
    02.CRUD和文件上传下载
    Java开发:Java SE 基础知识篇
    shell脚本 重试 分文件 多进程
    MySQL数据库基本操作-DQL-基本查询
  • 原文地址:https://blog.csdn.net/u011424614/article/details/134001158