05.HADOOP CDH5.16.1 详细搭建流程

CDH 相对于原生的HADOOP 平台具有更好的可操作性,通过页面就行控制,方便安装和管理,还可以对整个集群进行参数的调整等等。

在此也要感谢 马尔东风 https://blog.csdn.net/qq_39572733/article/details/89469741 给到的帮助。

在这里我使用了  CDH5.16.1 版本 ,那么与其对应的 软件包也需要相应下载。

1.安装前的准备工作

1)需要用的软件包

     CDH 是不需要提前下载各种 Hadoop, Hive, Hue, Sqoop 等。只需要下载CDH 相关的包。

     需要用到以下包:

  •       JAVA :jdk-8u211-linux-x64.tar.gz 

             05.HADOOP CDH5.16.1 详细搭建流程_第1张图片     

  •    Mysql 连接 JAVA的 驱动:mysql-connector-java.jar

              05.HADOOP CDH5.16.1 详细搭建流程_第2张图片

  • CDH5.16.1 的配置文件:

       1. cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz

       2. CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel , CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha ,manifest.json

          如果下载的是  .sha1 结尾的文件,记得改为 .sha 

           05.HADOOP CDH5.16.1 详细搭建流程_第3张图片

 

2) 节点的配置:

    一共3个节点,node01 、node02 、node03

   CDH 分为 Server 和 Agent , Server 就相当于管理员,而 Agent 就相当于工作人员。

   类似于 Namenode 和 Datanode 的关系。

   配置: node01: Server 、 Agent;

               node02: Agent;

               node03: Agent;

   

2. 节点的基础配置

之前的 Haoop 全分布式搭建步骤 中有基础配置的一部分说明,这里就讲一下简单的步骤

以下步骤在所有节点上都必须完成,下面只以一个节点为例。

1.修改服务器的名字hostnamectl set-hostname node01   ,修改完之后需要重启,输入 reboot

2.网络设置:

    1) 设置 IP 地址: vi  /etc/sysconfig/network-scripts/ifcfg-ens33  ,

     ifcfg-ens33 可能名称不一样,基本是 network-scripts 中的第一个文件

       05.HADOOP CDH5.16.1 详细搭建流程_第4张图片

    2)修改网络名称: vi  /etc/sysconfig/network  , 写入 NETWORK=yes , HOSTNAME= node01

       

    3)   添加主机名的映射:  vi  /etc/hosts  , 把 我写的 macnode01 对应改为 node01 就行。

       05.HADOOP CDH5.16.1 详细搭建流程_第5张图片      

   4) 重新启动网络:service network restart   ,记得检查节点之间是否能互 平ping   

3.设置所有节点之间的免密登入:

    1) ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  生成公钥

    2) ssh-copy-id node01    复制公钥到其他节点,自己节点也免密一下,node01,node02,node03  。

    3)免密完成后,之后的一些修改的配置文件,可以直接把文件传送到其他节点上,方便操作。

4.防火墙设置:

    1) systemctl stop firewalld.service   #停止firewall

    2) systemctl disable firewalld.service   #禁止firewall开机启动

    3) 检查是否关闭安全模式 : vi  /etc/selinux/config  设置 SELINUX=disabled

5.每个节点统一时间:使用ntp ,以 node01 的时间为准,其他节点同步 node01 的时间

   参考:https://blog.csdn.net/qq_38591756/article/details/85243965

   详细操作流程:

    1) 安装ntp: yum -y install ntp   

    2)设置ntp开机启动并启动ntp:systemctl enable ntpd  ;  systemctl start ntpd 

    3) 修改 node01 的配置文件(以 node01 为标准时间):vim /etc/ntp.conf

          a. restrict 172.17.0.0 mask 255.255.255.0 nomodify notrap ;  

                掩码地址扩展为255,因此从172.17.0.1-172.17.0.254的服务器都可以使用我们的NTP服务器来同步时间

          b. 指定位置添加以下代码:参考截图

                server 0.cn.pool.ntp.org
                server 1.cn.pool.ntp.org
                server 2.cn.pool.ntp.org
                server 3.cn.pool.ntp.org

                restrict 0.cn.pool.ntp.org nomodify notrap noquery
                restrict 1.cn.pool.ntp.org nomodify notrap noquery
                restrict 2.cn.pool.ntp.org nomodify notrap noquery
                restrict 3.cn.pool.ntp.org nomodify notrap noquery

                server 127.0.0.1 # local clock
                fudge 127.0.0.1 stratum 10

           05.HADOOP CDH5.16.1 详细搭建流程_第6张图片

           c.  修改完成后保存退出,并重启ntp(systemctl restart ntpd)

    4)修改 node2 和 node3 的配置文件:vim /etc/ntp.conf

         a.指定位置添加以下代码:参考截图

            server 172.17.0.85   #注释:节点node01 的IP地址

            restrict 172.17.0.85 nomodify notrap noquery   #注释:节点node01 的IP地址

            server 127.0.0.1 # local clock
            fudge 127.0.0.1 stratum 10

           05.HADOOP CDH5.16.1 详细搭建流程_第7张图片

         b. systemctl restart ntpd 

6.  禁止交互(以下的步骤记住也是每个节点都需要)

     1)vim /etc/sysctl.conf   ,添加一行 vm.swappiness=0

     2)sudo sysctl vm.swappiness=0

7. 禁止大页面

   1)echo never > /sys/kernel/mm/transparent_hugepage/defrag

        echo never > /sys/kernel/mm/transparent_hugepage/enabled

   2)vim /etc/rc.local ,添加 2行:

        echo never > /sys/kernel/mm/transparent_hugepage/defrag
        echo never > /sys/kernel/mm/transparent_hugepage/enabled 

   3) chmod +x /etc/rc.d/rc.local      

8.JDK 的安装以及设置环境变量

    1) 要创建固定的 JDK 的路径

  •  mkdir -p /usr/share/java/
  •  cd /usr/share/java/

    2) 在此目录下解压 JDK 的压缩文件

  •  tar -zxvf ./jdk-8u201-linux-x64.tar.gz

    3)配置环境变量

  •  vim  +  /etc/profile 
  • #jdk配置
    export JAVA_HOME=/usr/share/java/jdk1.8.0_201
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    export PATH=$PATH:${JAVA_HOME}/bin
     

9.Mysql 的安装 (在此之前可以先做快照,之后一些操作很容易会出错

   1) 先查看有没有自带的数据库,有的话就卸载掉

  •  rpm -qa | grep mariadb
  •  rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64              

   2) 下载mysql,并安装到指定位置

  •    cd /usr/local/src
  •    wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
  •    rpm -ivh mysql57-community-release-el7-8.noarch.rpm
  •    yum -y install mysql-server

  3) 启动mysql

  •    service mysqld start
  •    systemctl start mysqld.service

  4)查看mysql 状态

  • service mysqld status
  • systemctl status mysqld.service

  5)获取MySQL的临时密码,Mysql5.7默认安装之后root是有密码的。

  • grep 'temporary password' /var/log/mysqld.log ,复制原始密码,这里的密码是YdsGaxOq>2n!

  • mysql -uroot -p ,用 YdsGaxOq>2n!密码登录到服务端后,必须马上修改密码,进入 mysql 界面
  • set global validate_password_policy=0;    
  • set global validate_password_length=1;   这两步是为了 让密码设置可以简单。
  • ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';  修改密码
  • 授权其他机器登入 mysql

       GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

  • FLUSH  PRIVILEGES;   激活权限。
  • 在 mysql 中 创建 4个 database; 用于放置 一些 metadata

       create database hive;

       create database hue;

       create database ooz;

       create database scm;

  •  上传数据库驱动 ,mysql 是安装在 node01 上(以上命令只要在node01 上进行操作)

         mysql-connector-java.jar 需要在每个 节点上都上传,并放入 /usr/share/java 目录下

05.HADOOP CDH5.16.1 详细搭建流程_第8张图片

 

3.CM的安装和CDH的设置

1.不同节点创建文件夹并授权,server 就是node01

  • mkdir -p /opt/cloudera-manager    --在所有上创建
  • mkdir -p /opt/cloudera/parcel-repo    --在server上创建
  • mkdir -p /opt/cloudera/parcels    --在所有的agent节点上创建
  • mkdir -p  /opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent     --在所有的agent节点上创建
  • 在所有节点,创建用户,这是CM需要使用的用户:

  sudo useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false 

  • chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/   -在server上
  • chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels   -在agent上

2.上传所需要的压缩包
将cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz,CDH5.16.1的三个文件上传到服务器,自己创建一个文件夹。

05.HADOOP CDH5.16.1 详细搭建流程_第9张图片

3.在所有节点,解压 cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz  到/opt/cloudera-manager目录。

  •  tar -zxvf  cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz  -C  /opt/cloudera-manager

4.在所有的agent节点,修改主机 节点名

  • vi /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini
  • server_host=server

5.在server节点上执行命令。初始化数据库scm。mysql table username password分别代表:数据库类型 database名称 数据库用户名 数据库密码

  • /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh  mysql scm root root123

注意:这条命令要执行成功,需要server和MySQL在一个节点上。如果不在一个节点上,需要使用-hmysqlserver命令指定MySQL主机位置,比如如果MySQL安装机器IP为192.168.1.101,那么执行命令为

  • /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh -h 192.168.1.101   mysql scm root root123

 6.将 CDH 的 3个 文件 上传至主节点 node01 /opt/cloudera/parcel-repo 路径下

  05.HADOOP CDH5.16.1 详细搭建流程_第10张图片

7.启动 CM

  • /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start    --server节点运行
  • /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start    --agent节点运行
     

8.当问server:7180
在这里插入图片描述
不要急,如果没出现可以等一下,不过一般会很快就出现。
如果出现上面界面就说明成功了,用户名密码都是admin。接下来就是一步一步的配置。

9.web界面操作安装cdh

1)hue
如果显示链接不上数据库
通过查看日志:tail -f 300 /opt/cloudera-manager/cm-5.16.1/log/cloudera-scm-server/cloudera-scm-server.log

可以看到在说什么这个错误:

Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory

原因是:

/usr/lib64/mysql目录下没有libmysqlclient.so.18文件,可能可以看到libmysqlclient.so.20文件

原因是mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm没有安装(具体版本和你安装的MySQL版本有关)

解决办法是:

去MySQL官网,找到安装的对应MySQL版本的这个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,只有几兆

然后下载下来上传到server上(我的server和MySQL安装在同一个节点上,如果server和MySQL不在同一个节点,那么可以尝试这两个节点都去安装一下),安装:

rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

然后群集设置重新检测一下就OK。

怎么找rpm包,可以参考https://blog.csdn.net/smiles13/article/details/81460617

2)oozie界面
oozie界面不展示是因为缺少ExtJs2.2。

将ext-2.2.zip上传到/var/lib/oozie/

  • cd /var/lib/oozie/
  •  unzip ./ext-2.2.zip
  •  chown -R oozie:oozie ext-2.2

3)hue load balancer启动失败

运行下面两行命令,再从7180界面重启就好了(记得是安装load balancer的那台服务器)

  • yum -y install httpd
  • yum -y install mod_ssl

搭建好之后修改权限 dfs.permissions,去掉勾就好了,不然root用户操作不了hdfs。

4)hue 需要装一些 package

hue就是不成功,运行这个安装
sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel -y
 

你可能感兴趣的:(05.HADOOP CDH5.16.1 详细搭建流程)