基於yum安裝CDH集群


一、環境准備

  准備至少3台設備;CentOS7系統;

       如果是在實驗環境下,給虛擬機的內存至少4G,根建議1T,數據盤1T,由於是虛擬機,所以根分區和數據盤放心大膽的給;如果是在生產環境則多多益善;我這次的實驗環境是三台2G內存,50G硬盤的騰訊雲主機(CentOS7.5),不知是否能搭建成功,試試吧;

二、數據庫安裝

  注意:以下數據庫的配置方式是錯誤的,一定不要yum安裝數據庫,yum安裝在CentOS7上是mariadb5.5版本的;在最后初始化的時候會遇到各種古怪問題,我的CDH版本明明是5版本的,但是錯誤提示是識別到我的CDH版本是3的,需要我升級到4,再到5;然后我直接在CentOS7上二進制安裝了mysql5.7完美解決各種古怪問題;所以以下數據庫的安裝都是錯誤示范;我之所以保留也是為各位有緣人不要犯跟我一樣的錯誤;

  如果想參考正確的數據庫配置方式,請參考:https://www.cnblogs.com/zhangzhide/p/11124064.html我的這篇博文中的mysql安裝部分就好;

  這篇筆記除了數據庫安裝部分有問題之外其他的都是親測正確的;希望這篇博文能夠幫助到有緣人;

  既然是yum安裝那就一鍵yum到底;

       1、yum install mariadb mariadb-server -y

            

  2、啟動mariadb服務,並開機自啟

    systemctl start mariadb  確認3306端口已經啟動

              systemctl enable mariadb

  3、修改密碼並配置授權用戶

    MariaDB [mysql]> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123.com');

           MariaDB [(none)]> CREATE DATABASE scm DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ##創建scm數據庫並指定字符集為utf8mb4,排序規則為utf8mb4_unicode_ci,ci表示不區分字母大小寫;

              MariaDB [(none)]> CREATE USER 'scm'@'172.21.0.%' IDENTIFIED BY '123.com';  ##創建'scm'@'172.21.0.%'用戶

              MariaDB [(none)]> GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'172.21.0.%';   將scm庫下的表的所有權授權給scm用戶;

              MariaDB [(none)]> FLUSH PRIVILEGES; ##讓配置立即生效;

  4、用新創建的用戶登陸測試是否能正常使用;

    (vir-3.5.2) [root@master ~]# mysql -uscm -h172.21.0.3 -p

    Enter password:
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 8
    Server version: 5.5.60-MariaDB MariaDB Server

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | scm |
    | test |
    +--------------------+
    3 rows in set (0.00 sec)

    MariaDB [(none)]> use scm;
    Database changed
    MariaDB [scm]> show tables;
    Empty set (0.00 sec)

三、自建鏡像安裝地址

  官方鏡像安裝地址(https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.16.1/RPMS/x86_64/)  由於源在國外,訪問會很慢,所以就自建源能快速安裝;

       1、安裝nginx作為web服務並啟動

    yum install nginx -y

   2、創建配置文件

    [root@master conf.d]# cat /etc/nginx/conf.d/yum.conf

    server {
    listen 80;
    server_name www.zhide666.com;
    root /data/yum;   #指定gen路徑
    autoindex on;     #開啟目錄瀏覽功能

              autoindex_exact_size off;  #關閉詳細文件大小統計,讓文件大小顯示MB,GB單位,默認為b

    autoindex_localtime on;  #開啟以服務器本地時區顯示文件修改日期

    }

  3、制作本地CM源,安裝yum源制作工具

    yum install yum-utils createrepo yum-plugin-priorities -y

              

    訪問效果圖:

    

  4、下載CDH版本存放到指定的路徑下

             

四、配置自己創建的yum源

  官方yum源:https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

        配置自己的cm yum源,不單單配置在自身,而且需要將自建的cm yum源配置到其他兩台主機上

  [root@master yum.repos.d]# cat /etc/yum.repos.d/cloudera-manager.repo

  [cloudera-manager]
  baseurl=http://www.zhide666.com.cn/cm-5.16.1/
  gpgkey=http://www.zhide666.com.cn/cm-5.16.1/RPM-GPG-KEY-cloudera
  enable = 1
  gpgcheck = 1

       驗證:

             

 五、安裝Cloudera Manager Server端

   [root@master yum.repos.d]# yum install cloudera-manager-daemons cloudera-manager-server -y

            

六、各節點安裝各個節點安裝Cloudera Manager Agent端

  [root@master yum.repos.d]# yum install cloudera-manager-agent -y

  [root@node1 yum.repos.d]# yum install cloudera-manager-agent -y

  [root@node2 yum.repos.d]# yum install cloudera-manager-agent -y

 七、配置Cloudera Manager Server的默認堆內存大小

          

  堆內存至少2G,否則服務無法啟動,我這里就默認不調了,雲主機總共才2G;

 八、初始化CM Server數據庫

    

    在初始化時遇到的錯誤:提示說該路徑下找不到該jar文件,下載個jar文件並放到該路徑下即可

     

九、修改Cloudera Manager Agent各節點的配置文件

  (vir-3.5.2) [root@master ~]# grep server_port /etc/cloudera-scm-agent/config.ini

  server_port=7182  #server端服務端口

  CM服務器默認是默認是localhost;所以需要將server端和agent端都改為server端的主機名;

  (vir-3.5.2) [root@master ~]# ansible -i cdh-host all -m shell -a "sed -i 's/server_host=localhost/server_host=master/g' /etc/cloudera-scm-agent/config.ini"

  master | CHANGED | rc=0 >>

  node2 | CHANGED | rc=0 >>

  node1 | CHANGED | rc=0 >>

  (vir-3.5.2) [root@master ~]# ansible -i cdh-host all -m shell -a "grep server_host /etc/cloudera-scm-agent/config.ini"

  node2 | CHANGED | rc=0 >>

  server_host=master

  master | CHANGED | rc=0 >>

  server_host=master

  node1 | CHANGED | rc=0 >>

  server_host=master

 十、啟動CM Server端

  (vir-3.5.2) [root@master ~]# systemctl start cloudera-scm-server

  (vir-3.5.2) [root@master ~]# systemctl status cloudera-scm-server
  ● cloudera-scm-server.service - LSB: Cloudera SCM Server
  Loaded: loaded (/etc/rc.d/init.d/cloudera-scm-server; bad; vendor preset: disabled)
  Active: active (exited) since Sun 2019-06-30 00:52:45 CST; 1h 4min ago
  Docs: man:systemd-sysv-generator(8)
  Process: 933 ExecStart=/etc/rc.d/init.d/cloudera-scm-server start (code=exited, status=0/SUCCESS)
  Tasks: 0
  Memory: 0B

  Jun 30 00:52:39 master systemd[1]: Starting LSB: Cloudera SCM Server...
  Jun 30 00:52:40 master su[1071]: (to cloudera-scm) root on none
  Jun 30 00:52:45 master cloudera-scm-server[933]: Starting cloudera-scm-server: [ OK ]
  Jun 30 00:52:45 master systemd[1]: Started LSB: Cloudera SCM Server.

   查看日志:

    tailf /var/log/cloudera-scm-server/cloudera-scm-server.log   

    2019-06-30 13:56:39,149 INFO WebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4
    2019-06-30 13:56:39,165 INFO WebServerImpl:org.mortbay.log: Started SelectChannelConnector@0.0.0.0:7180  #如果能在日志種看到這個端口出現則表示成功了;
    2019-06-30 13:56:39,165 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
    2019-06-30 13:56:39,319 INFO SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: Finished constructing repo:2019-06-30T05:56:39.319Z

  遇到的問題:   

"alter table SETTINGS
add column LDAP_USER_SEARCH_BASE varchar(1024),
add column LDAP_USER_SEARCH_FILTER varchar(1024),
add column LDAP_GROUP_SEARCH_BASE varchar(1024),
add column LDAP_GROUP_SEARCH_FILTER varchar(1024)"
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
2019-06-30 13:47:46,021 FATAL main:org.hsqldb.cmdline.SqlFile: Rolling back SQL transaction.
2019-06-30 13:47:46,022 ERROR main:com.cloudera.enterprise.dbutil.SqlFileRunner: Exception while executing ddl scripts.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

解決方式:  

    (vir-3.5.2) [root@master ~]# cat /etc/my.cnf
    [mysqld]
    basedir=/usr/local/mysql-5.7.25
    datadir=/usr/local/mysql-5.7.25/data
    max_allowed_packet = 1G   #加這一行配置即可;

十一、啟動個cloudera manager  agent端

    (vir-3.5.2) [root@master ~]# ansible -i cdh-host all -m shell -a "systemctl start cloudera-scm-agent"

十二、訪問cloudera manager server 端的web UI;

    由於域名未備案,只能ip訪問了;

   

十三、安裝CDH集群

  

  ·

  這個地方選擇當前管理的主機只有2台設備,其實是有3台的,一台沒識別出來,這個時候就要用到新主機選項的搜索功能;

  由於是在雲主機上搭建的,不知為何會認到127.0.0.1;

  

 選擇更多選項,將里面的官方源刪掉,並加入自己的源;

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM