2.4、CDH 搭建Hadoop在安裝(Cloudera Software安裝和配置MySQL)


為Cloudera Software安裝和配置MySQL

要使用MySQL數據庫,請按照以下過程操作。有關MySQL數據庫兼容版本的信息,請參閱CDH和Cloudera Manager支持的數據庫

 

安裝MySQL服務器

注意:
  • 如果您已經設置了MySQL數據庫,則可以跳到配置和啟動MySQL服務器部分,以驗證您的MySQL配置是否滿足Cloudera Manager的要求。
  • 對於MySQL 5.6和5.7,您必須安裝MySQL-shared-compatMySQL-shared軟件包。這是Cloudera Manager Agent軟件包安裝所必需的。
  • 重要的是 datadir 目錄,默認情況下是 /var/lib/mysql,位於具有足夠可用空間的分區上。
  • 如果在MySQL中啟用了基於GTID的復制,則Cloudera Manager安裝將失敗。
安裝MySQL數據庫。
OS
命令
RHEL

RHEL不再包含MySQL。您必須從MySQL站點下載存儲庫並直接安裝它。您可以使用以下命令安裝MySQL。有關更多信息,請訪問MySQL網站

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum update
sudo yum install mysql-server
sudo systemctl啟動mysqld
SLES
sudo zypper install mysql libmysqlclient_r17
注意:使用前面的內容時,某些SLES系統會遇到錯誤zypper安裝命令。有關解決此問題的詳細信息,請參閱Novell知識庫主題,運行chkconfig時出錯
Ubuntu的
sudo apt-get install mysql-server

配置和啟動MySQL服務器

注意: 如果要對現有數據庫進行更改,請確保在繼續之前停止使用該數據庫的任何服務。
  1. 如果MySQL服務器正在運行,請將其停止。
    OS 命令
    RHEL 7兼容
    sudo systemctl stop mysqld
    RHEL 6兼容
    sudoservice mysqld stop
    SLES,Ubuntu
    sudo service mysql stop
  2. 移動舊的InnoDB日志文件 /var/lib/mysql/lib_logfile0 和 /var/lib/mysql/ib_logfile1在......之外 /var/lib/mysql/ 到備份位置。
  3. 確定選項文件的位置my.cnf中 (/etc/my.cnf默認)。
  4. 更新 my.cnf中 這樣它符合以下要求:
    • 要防止死鎖,請將隔離級別設置為 READ-COMMITTED
    • 配置 InnoDB的發動機。如果Cloudera Manager的表配置了MyISAM引擎,它將無法啟動。(通常,如果InnoDB引擎配置錯誤,表將恢復為MyISAM。)要檢查表所使用的引擎,請從MySQL shell運行以下命令:
      mysql> show table status;
    • 大多數發行版中MySQL安裝中的默認設置使用保守的緩沖區大小和內存使用情況。Cloudera Management Service角色需要高寫入吞吐量,因為它們可能會在數據庫中插入許多記錄。Cloudera建議你設置innodb_flush_method 財產 O_DIRECT
    • 設置 MAX_CONNECTIONS 根據群集大小的屬性:
      • 少於50台主機 - 您可以在同一主機上存儲多個數據庫(例如,活動監視器和服務監視器)。如果你這樣做,你應該:
        • 將每個數據庫放在自己的存儲卷上。
        • 為每個數據庫允許100個最大連接,然后添加50個額外連接。例如,對於兩個數據庫,將最大連接數設置為250.如果在一個主機(Cloudera Manager Server,活動監視器,報告管理器,Cloudera Navigator和Hive Metastore的數據庫)上存儲五個數據庫,請將最大連接數設置為550 。
      • 超過50台主機 - 不要在同一主機上存儲多個數據庫。為每個數據庫/主機對使用單獨的主機。主機不需要專門為數據庫保留,但每個數據庫應位於單獨的主機上。
    • Cloudera Manager安裝不需要二進制日志記錄。二進制日志記錄提供了諸如MySQL復制或數據庫恢復后的時間點增量恢復等優勢。以下是此配置的示例。有關更多信息,請參閱二進制日志
  5. [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    transaction-isolation = READ-COMMITTED
    # Disabling symbolic-links is recommended to prevent assorted security risks;
    # to do so, uncomment this line:
    symbolic-links = 0

    key_buffer_size = 32M
    max_allowed_packet = 32M
    thread_stack = 256K
    thread_cache_size = 64
    query_cache_limit = 8M
    query_cache_size = 64M
    query_cache_type = 1

    max_connections = 550
    #expire_logs_days = 10
    #max_binlog_size = 100M

    #log_bin should be on a disk with enough free space.
    #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
    #system and chown the specified folder to the mysql user.
    log_bin=/var/lib/mysql/mysql_binary_log

    #In later versions of MySQL, if you enable the binary log and do not set
    #a server_id, MySQL will not start. The server_id must be unique within
    #the replicating group.
    server_id=1

    binlog_format = mixed

    read_buffer_size = 2M
    read_rnd_buffer_size = 16M
    sort_buffer_size = 8M
    join_buffer_size = 8M

    # InnoDB settings
    innodb_file_per_table = 1
    innodb_flush_log_at_trx_commit  = 2
    innodb_log_buffer_size = 64M
    innodb_buffer_pool_size = 4G
    innodb_thread_concurrency = 8
    innodb_flush_method = O_DIRECT
    innodb_log_file_size = 512M

    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    sql_mode=STRICT_ALL_TABLES
    這是一個帶有Cloudera推薦設置的選項文件:
  6. 如果AppArmor在安裝了MySQL的主機上運行,​​則可能需要配置AppArmor以允許MySQL寫入二進制文件。
  7. 確保MySQL服務器在啟動時啟動:
    OS 命令
    RHEL 7兼容
    sudo systemctl start mysqld
    RHEL 6兼容
    sudo chkconfig mysqld on
    SLES
    sudo chkconfig --add mysql
    Ubuntu的
    sudo chkconfig mysql on
    注意: chkconfig的最近的Ubuntu版本可能無法使用。您可能需要使用Upstart將MySQL配置為在系統引導時自動啟動。有關更多信息,請參閱Ubuntu文檔或Upstart Cookbook
  8. 啟動MySQL服務器:
    OS 命令
    RHEL 7兼容
    sudo systemctl start mysqld
    RHEL 6兼容
    sudo service mysqld start
    SLES,Ubuntu
    sudo service mysql start
  9. 跑 在/ usr / bin中/ mysql_secure_installation設置MySQL root密碼和其他與安全相關的設置。在新的安裝中,密碼為空。當系統提示您輸入root密碼時,請Enter鍵。對於其余提示,請以粗體輸入下面列出的響應
    sudo / usr / bin / mysql_secure_installation
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n]  Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n]  Y
[...]
Disallow root login remotely? [Y/n]  N
[...]
Remove test database and access to it [Y/n]  Y
[...]
Reload privilege tables now? [Y/n]  Y
All done!

安裝MySQL JDBC驅動程序

在Cloudera Manager Server主機上以及運行需要數據庫訪問的服務的任何其他主機上安裝JDBC驅動程序。有關使用數據庫的Cloudera軟件的詳細信息,請參閱必需的數據庫

注意: 如果已在需要它的主機上安裝了JDBC驅動程序,則可以跳過本節。但是,MySQL 5.6需要驅動程序版本5.1.26或更高版本。
Cloudera建議您在有限數量的主機上合並所有需要數據庫的角色,並在這些主機上安裝驅動程序。建議在同一主機上定位所有此類角色,但不是必需的。確保在運行訪問數據庫的角色的每個主機上安裝JDBC驅動程序。 注意:  Cloudera建議僅使用JDBC驅動程序的5.1版。
OS
命令
RHEL 重要提示:請勿使用yum install 命令安裝MySQL驅動程序包,因為它安裝了OpenJDK,然后使用Linux alternatives 命令將系統JDK設置為OpenJDK。
  1. http://www.mysql.com/downloads/connector/j/5.1.html下載MySQL JDBC驅動程序 (in.tar.gz 格式)。
  2. 從下載的文件中提取JDBC驅動程序JAR文件。例如:
    tar zxvf mysql-connector-java-5.1.46.tar.gz
  3. 將重命名的JDBC驅動程序復制到 /usr/share/java/如果目標目錄尚不存在,請創建它。例如:
    sudo mkdir -p / usr / share / java / cd mysql-connector-java-5.1.46 sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
SLES
sudo zypper install mysql-connector-java
Ubuntu或Debian
sudo apt-get install libmysql-java
 
為Cloudera軟件創建數據庫
Create databases and service accounts for components that require databases:
  • Cloudera Manager Server
  • Cloudera Management Service roles:
    • Activity Monitor (if using the MapReduce service in a CDH 5 cluster)
    • Reports Manager
  • Each Hive metastore
  • Sentry Server
  • Cloudera Navigator Audit Server
  • Cloudera Navigator Metadata Server

The databases must be configured to support the MySQL utf8 character set encoding.

Record the values you enter for database names, usernames, and passwords. The Cloudera Manager installation wizard requires this information to correctly connect to these databases.

  1. Log in as the root user, or another user with privileges to create database and grant privileges:
    mysql -u root -p
    Enter password: 123
    
  2. Create databases for each service you are using from the below table:
    CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    Query OK, 1 row affected (0.00 sec)
    
    GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
    Query OK, 0 rows affected (0.00 sec)
    You can use any value you want for <database><user>, and <password>. The following examples are the default names provided in the Cloudera Manager configuration settings, but you are not required to use them:
    Databases for Cloudera Software
    Service Database User
    Cloudera Manager Server scm scm
    Activity Monitor amon amon
    Reports Manager rman rman
    Hue hue hue
    Hive Metastore Server metastore hive
    Sentry Server sentry sentry
    Cloudera Navigator Audit Server nav nav
    Cloudera Navigator Metadata Server navms navms
    Oozie oozie oozie
     CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO'scm'@'%'IDENTIFIED BY 'scm';
 
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO'amon'@'%'IDENTIFIED BY 'amon';
 
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO'rman'@'%'IDENTIFIED BY 'rman';
 
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO'hue'@'%'IDENTIFIED BY 'hue';
 
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO'hive'@'%'IDENTIFIED BY 'hive';
 
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO'sentry'@'%'IDENTIFIED BY 'sentry';
 
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO'nav'@'%'IDENTIFIED BY 'nav';
 
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO'navms'@'%'IDENTIFIED BY 'navms';
 
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
 
3. Confirm that you have created all of the databases:
SHOW DATABASES;
You can also confirm the privilege grants for a given user by running:
SHOW GRANTS FOR ' <user>'@'%';

設置Cloudera Manager數據庫

完成上述為Cloudera軟件安裝和配置MySQL數據庫的說明后,請繼續執行 步驟5:設置Cloudera Manager數據庫 以配置Cloudera Manager的數據庫


免責聲明!

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



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