• 小白从CentOS7到安装CDH6.3.2入坑实操指北(二)


    1、所需文件下载

    在这里插入图片描述

    2、磁盘直挂

    1、磁盘分区并挂载磁盘

    在这里插入图片描述

    2、磁盘挂载并设置开机自启

    mount /dev/sdb1 /data1
    echo "/dev/sdb1 /data1 ext4 defaults 0 0" >> /etc/fstab
    

    3、磁盘挂载完要打开 df -l 查看挂载情况,可能会直接挂载在根目录上,而其他磁盘挂载在/root/data1,导致在安装集群时找不到磁盘

    3、离线安装HTTP

    从 https://centos.pkgs.org/ 下载依赖包,全部选择X86_64
    在这里插入图片描述
    直接通过这种办法安装是比较麻烦的,我使用上面的方式安装的时候发现有很多依赖,而且又有版本限制,花了很长时间才把这个服务安装上去,最好的方式是通过挂载的CentOS 镜像安装,省时省力。

    4、时钟同步ntp安装

    1、卸载已安装的包及安装指定版本的包

     yum remove ntpdate.x86_64 
     rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm 
     rpm -ivh ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm 
    rpm -ivh ntp-4.2.6p5-28.el7.centos.x86_64.rpm 
    

    2、开启时钟同步

    systemctl start ntpd
    systemctl enable ntpd
    systemctl status ntpd
    

    3、配置文件
    以离线环境下任意服务器为例,如10.1.42.210为服务端server配置,10.1.42.211为客户端client配置。

    在ntp服务器server端

    vi /etc/ntp.conf
    

    ------------------添加
    允许IPV4 IPV6 查询 拒绝修改
    restrict -4 default kod notrap nomodify
    restrict -6 default kod notrap nomodify
    .# 如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置成时间服务器是自己
    server 127.127.1.0.fudge 127.127.1.0 stratum 8
    .# 注释掉以下行
    .# 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

    service ntpd restart
    systemctl disable chronyd.service
    systemctl enable ntpd.service
    ntpstat

    在ntp客户client端

    vi /etc/ntp.conf
    restrict -4 default kod notrap nomodify
    restrict -6 default kod notrap nomodify
    .# 如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置成时间服务器是自己
    server 10.1.42.210
    fudge 10.1.42.210 stratum 8

    service ntpd restart
    systemctl disable chronyd.service
    systemctl enable ntpd.service
    ntpstat
    ntpdate -u 10.1.42.210

    5、Hosts文件配置

    配置各服务器IP

    vi /etc/hosts
    

    在这里插入图片描述

    6、关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    

    7、禁用selinux并关闭防火墙

    vi /etc/sysconfig/selinux
    

    8、镜像挂载

    https://blog.csdn.net/it_lihongmin/article/details/124319737

    挂载镜像到目录:/media/CentOS7

    mkdir -p /media/CentOS7
    

    cd /media/CentOS7
    挂载ISO文件到新建(/media/CentOS7)路径下,比如当前的文件上传到了/opt 目录下, 则最好是cd 到iso镜像所在目录再执行挂载,否则会报挂载只读的错误。

    cd /opt
    mount -t iso9660 -o loop /opt/CentOS-7.8.iso /media/CentOS7
    

    然后将原来的所有repo文件都 copy到bak目录中:

    cd /etc/yum.repos.d
    mkdir bak
    mv ./* bak
    

    此时需要根据原 CentOS-Base.repo进行修改,则先将该文件copy一份到 /etc/yum.repo.d 在进行修改

    cd bak
    cp CentOS-Base.repo ../
    cd ../
    vi /etc/yum.repos.d/CentOS-Base.repo
    

    后修改Centos-Base.repo为当前的文件内容,vi 进入后可以先删除全部文件行(可以输入 100dd,删除前100行),文件内容如下:

    [base]
    name=centos7
    baseurl=file:///media/CentOS7
    enabled=1
    gpgcheck=0
    gpgkey=file:///media/CentOS7/RPM-GPG-KEY-CentOS-7
    

    挂载完成后可以进行查询或者安装东西.

    yum install -y gcc-C++  或者yum search jdk
    

    如何把本地yum源给其他机器使用_使用本地http的yum源
    https://blog.csdn.net/weixin_33417371/article/details/113714552
    查看上传的镜像
    http://10.1.42.210/cdh6/

    从一台服务器复制远程访问本地镜像文件到另一台

    cd  /etc/yum.repos.d
    scp Centos-Base.repo  root@master01:/opt/cloudera/parcel-repo
    

    如果不想挂载这么麻烦,还有一种办法是使用 UltralSO 打开镜像,然后把需要的包拖出来,用rpm 安装就行了。

    9、修改机器名

    hostnamectl set-hostname centos701
    

    10、安装Java

    1、把rpm安装包上传
    2、mkdir /usr/java
    3、把原系统安装的jdk卸载后再安装jdk

    rpm -e  --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
    

    4、安装jdk

    rpm -ivh jdk-8u261-linux-x64.rpm  
    chmod -R 755 /usr/java   
    

    5、vi /etc/profile 在最后加入
    export JAVA_HOME=/usr/java/default
    export CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JAVA_HOME/jre/lib
    export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
    6、返回终端输入以下命令立即生效

    source /etc/profile
    

    11、安装数据库

    1、解决mariadb-libs is obsoleted by mysql-community-libs-5.7.16-1.el7.x86_64问题

    rpm -qa | grep postfix
    rpm -qa | grep mariadb
    
    rpm -e postfix-2:2.10.1-9.el7.x86_64
    rpm -e mariadb-libs-5.5.65-1.el7.x86_64
    

    2、安装数据库

    rpm -ivh mysql-community-*.rpm
    

    3、打开数据库

    systemctl start mysqld
    systemctl enable mysqld  #开机自启
    

    4、查看初始化密码

    cat /var/log/mysqld.log |grep password
    

    5、用初始化密码登陆

    mysql -uroot -p
    

    报错:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
    在vi /etc/my.cnf 加入skip-grant-tables 退出终端重启数据库

    6、输出查出的初始密码,修改密码为

    set password=password('Bigdata@2022');
    

    解决 MySQL修改密码:ERROR 1133 (42000): Can’t find any matching row in the user table
    use mysql; select Host,User from user;

    报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

    set password for ‘root’@‘localhost’=password(‘Bigdata@2022’);
    

    set password for 'root'@'%'=password('Bigdata@2022');
    

    再运行

    flush privileges;
    

    7、建立相关数据库及用户,允许远程登陆

    登录

    mysql -uroot -p
    

    密码

    mysql -uroot -p‘Bigdata@2022’
    

    在数据库里执行

    grant all on *.* to root@'%' identified by ‘Bigdata@2022’ with grant option; 
    create database scm default character set utf8 default collate utf8_general_ci; 
    grant all on scm.* to 'scm'@'%' identified by 'Bigdata@2022'; 
    create database hue default character set utf8 default collate utf8_general_ci; 
    grant all on hue.* to 'hue'@'%' identified by 'Bigdata@2022'; 
    create database hive default character set utf8 default collate utf8_general_ci; 
    grant all on hive.* to 'hive'@'%' identified by 'Bigdata@2022'; 
    create database azkaban default character set utf8 default collate utf8_general_ci; 
    grant all on azkaban.* to 'azkaban'@'%' identified by 'Bigdata@2022'; 
    flush privileges;
    

    flush privileges 是让数据库及时生效

    9、初始化数据库
    在终端执行

    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql  scm root Bigdata@2022
    

    10、把mysql-connection.jar安装包复制

    cp mysql-connector-java-5.1.48.jar  /usr/share/java/mysql-connector-java.jar
    

    12、安装CM

    1、从挂载上去的CentOS系统中取出安装所需文件并安装

    yum install mod_ssl
    yum install openssl-devel
    yum install python-psycopg2
    yum install MySQL-python
    yum install lsb
    yum install postgresql-server
    

    以上可合并为如下

    yum install mod_ssl openssl-devel  python-psycopg2 MySQL-python lsb postgresql-server
    

    3、上传CM、CDH文件到服务器上,然后从一台拷贝到其他所有机器上,修改sha1 为sha

    cd /var/www/html/cdh6/
    Mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
    
    scp clou*  root@master01:/opt/cm6
    scp CDH*  root@master01:/opt/cdh6
    

    3、安装CM

    cd /opt/cm6
    rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
    rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
    rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm 
    

    13、修改配置文件

    1、所有agent节点

    vi /etc/cloudera-scm-agent/config.ini
    


    server_host=hostname
    改为

    server_host=master01 
    

    server_host=192.168.1.210 
    

    #尽量不要用机器名,因为在10段访问时,识别的机器IP为10段,不是内部的192段。

    2、配置server节点

    vi /etc/cloudera-scm-server/db.properties
    com.cloudera.cmf.db.type=mysql
    com.cloudera.cmf.db.host=localhost(或192.168.1.210)
    com.cloudera.cmf.db.name=scm
    com.cloudera.cmf.db.user=root
    com.cloudera.cmf.db.setupType=EXTERNAL
    com.cloudera.cmf.db.password=123456
    

    14、启动集群

    1、启动server 和agent所有节点

    service cloudera-scm-server start
    systemctl  enable cloudera-scm-server
    systemctl status cloudera-scm-server
    
    service cloudera-scm-agent start
    systemctl enable cloudera-scm-agent
    systemctl status cloudera-scm-agent
    

    查看端口

    netstat -nltp
    

    2、登陆CM管理界面安装集群

    http://10.1.42.210:7180/cmf/login

    登陆的界面网上有很多截图,这里我没有一一截图。
    在这里插入图片描述
    每个节点的配置其实不用太纠结,在在后面装完后,可以在管理界面上添加角色和服务。

    在这里插入图片描述

    在这里插入图片描述

    15、不良处理

    1、节点不良处理办法:

    rm -f /var/lib/cloudera-scm-agent/cm_guid 
    systemctl restart cloudera-scm-agent
    

    2、格式化集群
    hdfs namenode -format

    3、终端显示乱码
    方法1:
    打开文件

    vi /etc/locale.conf  
    

    输入

     LANG=“ch_CN”   
    

    立即生效

     source /etc/locale.conf
    

    终端运行date 验证,发现 星期 是中文的就说明成功了

    date
    

    方法2:
    可以使用命令修改locale.conf配置文件

    localectl set-locale LANG=zh_CN
    source /etc/locale.conf
    

    4、授权访问磁盘文件夹

    sudo chmod -R a+w /root/data1
    

    5、重装系统(这部分在第一篇文章有详细图片)

    1、修改iso文件名称长度,缩短,重新刻录进U盘
    2、重启服务器 按del进去manager configure 修改boot type为legacy Boot
    3、保存重启
    4、装完系统后,需再修改回UEFI Boot

    6、该主机已与 Cloudera Manager Server 建立联系。 该主机未与 Host Monitor 建立联系。

    service cloudera-scm-agent stop
    service cloudera-scm-agent start
    

    网上有很多教程说是要删除节点,然后再添加,这本麻烦,因为master和agent之间是有一个UUID相互匹配的,如果重装之后不一致,就添加不进来了。尤其是当master出现问题时,这可能使得整个集群崩溃,如果是新安装的集群,里面没数据还好,损失不大,要是使用很久的,这就会导致影响业务。




    参考文献

    1、CDH–6.3安装配置
    https://blog.csdn.net/qq_39300291/article/details/115530451
    CDH、CM下载
    https://archive.cloudera.com/

    2、CDH和CM介绍及搭建
    http://www.fblinux.com/?p=1492

    3、java JDK下载
    https://jdk.java.net/18/

    4、MYSQL
    https://dev.mysql.com/downloads/

    5、CDH安装教程
    https://blog.csdn.net/Happy_Sunshine_Boy/article/details/106658771

    https://cloud.tencent.com/developer/article/1638154

    https://mp.weixin.qq.com/s?__biz=MzI4OTY3MTUyNg==&mid=2247485512&idx=1&sn=9e953a7eb8b3b2a64a011550ab7da184&chksm=ec2ad841db5d51573f5913d14c33135180bca023de1c349fc431f561c055d1d085527107b66e&scene=21#wechat_redirect

    6、httpd下载,httpd服务主要用于搭建OS、Cloudera Manager、CDH的yum源。
    https://httpd.apache.org/download.cgi#apache24

    7、ntp下载,用于时间同步
    http://www.ntp.org/downloads.html

    9、看懂Hadoop集群原理与实现方式
    http://www.uml.org.cn/bigdata/201712272.asp

    9、cdh裸机部署最佳推荐
    https://blog.csdn.net/edgar_t/article/details/118612633

    10、CDH平台部署规划方案
    https://blog.csdn.net/xwd127429/article/details/108083941?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1-108083941-blog-118612633.t0_layer_searchtargeting_s&spm=1001.2101.3001.4242.2&utm_relevant_index=3

    11、从零搭建生产Hadoop集群(七)——关键服务器双网卡配置
    https://blog.csdn.net/lxbalex/article/details/83660409/

    12、数据盘挂载
    https://blog.csdn.net/Joseph25/article/details/125348494

    13、重新安装cloudera-manager接管已有集群
    https://www.cnblogs.com/SimpleHe/p/14888361.html

    14、CDH安装
    https://blog.csdn.net/yangZHyu/article/details/123324387
    https://blog.csdn.net/xuye0606/article/details/119713220
    https://blog.csdn.net/weixin_57250068/article/details/123358156

    15、镜像挂载
    https://blog.csdn.net/it_lihongmin/article/details/124319737

  • 相关阅读:
    [附源码]SSM计算机毕业设计民宿客栈管理系统JAVA
    Spring的AOP开发-AOP简介
    Android Studio实现记单词App,背完四六级一次过~
    MindSpore:【模型训练】gpu在训练结束后运行model.时,若打开了混合精度就会报数据类型不兼容
    【版本2020.03】使用idea导入maven项目
    交叉编译器gcc-linaro-7.5.0快速安装
    虚拟博物馆和纪念馆全景漫游
    7天狂揽 1.3w star 的 MetaGPT,他们的目标让软件公司为之一惊
    Navigation 组件使用入门
    docker容器内部安装gcc ffmpeg make
  • 原文地址:https://blog.csdn.net/quantam/article/details/126956870