在線部署CDH
本文主要記錄了 在線安裝CDH的步驟,其中 JDK 和 數(shù)據(jù)庫 按需安裝。
服務(wù)器系統(tǒng)為CentOS,不同系統(tǒng)命令可能會有所不同。
在線安裝的優(yōu)勢在于 方便,操作簡單,基本跟著步驟走下來問題不大。缺點也很明顯,下載慢,在內(nèi)網(wǎng)環(huán)境或者網(wǎng)絡(luò)環(huán)境不好的時候,在線安裝的弊端就顯現(xiàn)出來了,所以內(nèi)網(wǎng)或者網(wǎng)絡(luò)不好更推薦離線部署的方式。
1. 準(zhǔn)備工作
1.1 虛擬機(jī)
我這邊準(zhǔn)備了3臺虛擬機(jī) , Linux版本為:CentOS
- 192.168.44.128 - 部署 scm-serser 和 scm-agent
- 192.168.44.129 - 部署 scm-agent
- 192.168.44.130 - 部署 scm-agent
1.2 設(shè)置所有節(jié)點的hosts?件
vim /etc/hosts
# add
192.168.44.128 vmware128
192.168.44.129 vmware129
192.168.44.130 vmware130
1.3 關(guān)閉防火墻
sudo iptables-save > ~/firewall.rules
sudo systemctl disable firewalld
sudo systemctl stop firewalld
1.4 禁用SELinux
vim /etc/selinux/config
# 將 SELINUX=enforcing 改為 SELINUX=disabled
SELINUX=disabled
修改之后重啟機(jī)器
1.5 安裝ntp
yum install ntp
vim /etc/ntp.conf
# add
server vmware128
server vmware129
server vmware130
sudo systemctl start ntpd
sudo systemctl enable ntpd
ntpdate -u vmware128
hwclock --systohc
1.6 更多準(zhǔn)備工作
更多準(zhǔn)備工作參考:https://docs.cloudera.com/documentation/enterprise/6/6.0/topics/installation_reqts.html
2. 安裝CM-server
2.1 配置Cloudera Manager倉庫
sudo rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera
2.2 安裝JDK
JDK版本要求在1.8及以上,如果已經(jīng)安裝過JDK(需要配置對應(yīng)環(huán)境變量),可以跳過此步。JDK要求詳見: https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_java_requirements.html#java_requirements
sudo yum install oracle-j2sdk1.8
2.3 安裝CM server
這一步在線下載時間會比較長,在規(guī)劃的主機(jī)上執(zhí)行:
這一步安裝了
daemonsserveragent三部分
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
2.4 安裝配置CM agent
2.4.1 安裝CM agent
在其他主機(jī)上執(zhí)行,這一步是安裝 agent,也可以在server起來后再裝
這一步是在其他主機(jī)上安裝了
daemonsagent
sudo yum install cloudera-manager-daemons cloudera-manager-agent
2.4.2 配置agent
vim /etc/cloudera-scm-agent/config.ini
## 修改下面配置
## Name of the host where Cloudera Manager Server is running.
server_host vmware128
## Port on the host where Cloudera Manager Server is running.
server_port 7180
2.4.3 啟動agent
sudo systemctl start cloudera-scm-agent
2.5 安裝數(shù)據(jù)庫(MySQL)
如果已有 MySQL(MariaDB) 或 其他數(shù)據(jù)庫(PostgreSQL ,oracle),此步驟可以跳過。
更多數(shù)據(jù)庫及版本兼容性詳見: https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_database_requirements.html#cdh_cm_supported_db
2.5.1 安裝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 start mysqld
2.5.2 配置MySQL
-
停掉MySQL
sudo systemctl stop mysqld -
編輯
/etc/my.cnf:官方推薦配置
[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
2.5.3 啟動MySQL
sudo systemctl enable mysqld
sudo systemctl start mysqld
設(shè)置MySQL root用戶密碼
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!
2.5.4 安裝 MySQL JDBC driver
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar zxvf mysql-connector-java-5.1.46.tar.gz
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
2.5.5 創(chuàng)建數(shù)據(jù)庫
mysql -u root -p
mysql> CREATE DATABASE <database> DEFAULT CHARACTER SET <character set> DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
根據(jù)需要創(chuàng)建對應(yīng)的數(shù)據(jù)庫
| 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 |
這里創(chuàng)建了 scm 用于存放 CM的元數(shù)據(jù),amon 用于存放CM的監(jiān)控數(shù)據(jù)。
create database scm DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
grant all on scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
flush privileges;
2.6 配置CM數(shù)據(jù)庫
-
如果數(shù)據(jù)庫裝在本機(jī)上:
#sudo /opt/cloudera/cm/schema/scm_prepare_database.sh <databaseType> <databaseName> <databaseUser> sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm -
如果裝在其他機(jī)器上:
#sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h db01.example.com --scm-host cm01.example.com scm scm # -P 指定數(shù)據(jù)庫端口,默認(rèn)3306 sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h vmware128 -P 3306 --scm-host vmware128 scm scm
2.7 啟動CM server
sudo systemctl start cloudera-scm-server
## 查看日志
sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
## 如果啟動成功會有:
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
web管理地址:http://vmware128:7180,初始帳號密碼 :admin 。
后續(xù)配置服務(wù)都可以在 web上操作了。
3. 相關(guān)命令
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
sudo yum install cloudera-manager-daemons cloudera-manager-agent
sudo systemctl start cloudera-scm-server
sudo systemctl start cloudera-scm-agent
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
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;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '123456';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';