大数据平台CDH搭建笔记

0.主机参数

主机名 IP 资源(CPU/内存/硬盘/服务器厂家)
master 121.89.199.2 08 Core/32GB/100GB/阿里云
worker001 124.222.153.245 04 Core/8GB/100GB/腾讯云
worker002 106.52.58.81 04 Core/4GB/100GB/腾讯云
worker003 124.222.152.251 04 Core/4GB/100GB/腾讯云

成功版:血的教训。一定要用内网!!!!!!!!

主机名 IP 资源(CPU/内存/硬盘/服务器厂家)
master 172.19.86.200 08 Core/32GB/100GB/阿里云
worker001 172.19.86.201 02 Core/8GB/50GB/阿里云
worker002 172.19.86.202 02 Core/4GB/50GB/阿里云



1.所需软件

2.环境初始化

2.1 修改主机hostname(所有机器)

 hostnamectl set-hostname master
 hostnamectl set-hostname worker01
 hostnamectl set-hostname worker02
 hostnamectl set-hostname worker03
以下添加到 /etc/hosts:

121.89.199.2 master
124.222.153.245 worker01
106.52.58.81 worker02
124.222.152.251 worker03

私网版(最好是加上别名):

172.19.86.200   master  master
172.19.86.201 worker01 worer01
172.19.86.202 worker02 worer02

2.2 关闭集群防火墙(所有机器)

systemctl stop firewalld && systemctl disable firewalld && iptables -F && systemctl enable firewalld

2.3 关闭集群selinux(所有机器)

 vi /etc/selinux/config 

 SELINUX=disabled
 
 ## 需要重启才能生效

2.4 设置集群时钟同步(所有机器)(待完善)

timedatectl set-timezone Asia/Shanghai

停止chrony并关闭chrony自启动
chkconfig chronyd off
systemctl stop chronyd

安装
ntpdate/autogen-libopts/ntp
yum install -y ntpdate
yum install -y autogen-libopts
yum install -y ntp

上面依赖若有冲突则删除非isorepo源的依赖
yum remove ntpdate-4.2.6p5-29.el7.x86_64 -y

主节点配置
vim /etc/ntp.conf
restrict 124.222.153.245 mask 255.255.255.0 nomodify notrap

2.5 设置免密(所有机器)

1) 生成密钥
ssh localhost 
cd ~/.ssh
ssh-keygen -t rsa  ##生成 id_rsa和id_rsa.pub
cat id_rsa.pub >> authorized_keys  

---
快捷命令
ssh-copy-id user@server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
---

2)将集群密钥放入同一个authorized_keys并同步
## 然后将所有机器id_rsa.pub都复制到authorized_keys,分发到每台机器上
cp id_rsa.pub id_rsa.pub.worker02
scp id_rsa.pub.worker02 root@192.168.0.104:/home/
## master节点上
cat /home/id_rsa.pub.worker02 >> ~/.ssh/authorized_keys

3)修改ssh配置
# 如果报错can't be established
vim /etc/ssh/ssh_config
# 添加
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

2.6 部署JDK(所有机器)

mkdir /usr/java
tar -zxf /opt/cdh/jdk-8u201-linux-x64.tar.gz -C /usr/java/
chown -R root:root /usr/java/jdk1.8.0_201
echo "export JAVA_HOME=/usr/java/jdk1.8.0_201" >> /etc/profile
echo "export PATH=/usr/java/jdk1.8.0_201/bin:${PATH}" >> /etc/profile 
source /etc/profile
which java
java -version

2.7 部署MYSQL(主机)

1) 解压

tar xzvf /opt/cdh/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local
cd /usr/local
mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql
mkdir mysql/arch mysql/data mysql/tmp

2) 修改mysql配置文件

rm -rf /etc/my.cnf
vim /etc/my.cnf

# 删除后添加(注意不要被#注释掉了):

[client]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4

[mysqld]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock

skip-slave-start

skip-external-locking
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
query_cache_size= 32M
max_allowed_packet = 16M
myisam_sort_buffer_size=128M
tmp_table_size=32M

table_open_cache = 512
thread_cache_size = 8
wait_timeout = 86400
interactive_timeout = 86400
max_connections = 600

# Try number of CPU's*2 for thread_concurrency
#thread_concurrency = 32 

#isolation level and default engine 
default-storage-engine = INNODB
transaction-isolation = READ-COMMITTED

server-id  = 1739
basedir     = /usr/local/mysql
datadir     = /usr/local/mysql/data
pid-file     = /usr/local/mysql/data/hostname.pid

#open performance schema
log-warnings
sysdate-is-now

binlog_format = ROW
log_bin_trust_function_creators=1
log-error  = /usr/local/mysql/data/hostname.err
log-bin = /usr/local/mysql/arch/mysql-bin
expire_logs_days = 7

innodb_write_io_threads=16

relay-log  = /usr/local/mysql/relay_log/relay-log
relay-log-index = /usr/local/mysql/relay_log/relay-log.index
relay_log_info_file= /usr/local/mysql/relay_log/relay-log.info

log_slave_updates=1
gtid_mode=OFF
enforce_gtid_consistency=OFF

# slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

#other logs
#general_log =1
#general_log_file  = /usr/local/mysql/data/general_log.err
#slow_query_log=1
#slow_query_log_file=/usr/local/mysql/data/slow_log.err

#for replication slave
sync_binlog = 500


#for innodb options 
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend

innodb_log_group_home_dir = /usr/local/mysql/arch
innodb_log_files_in_group = 4
innodb_log_file_size = 1G
innodb_log_buffer_size = 200M

#根据生产需要,调整pool size 
innodb_buffer_pool_size = 2G
#innodb_additional_mem_pool_size = 50M #deprecated in 5.6
tmpdir = /usr/local/mysql/tmp

innodb_lock_wait_timeout = 1000
#innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 2

innodb_locks_unsafe_for_binlog=1

#innodb io features: add for mysql5.5.8
performance_schema
innodb_read_io_threads=4
innodb-write-io-threads=4
innodb-io-capacity=200
#purge threads change default(0) to 1 for purge
innodb_purge_threads=1
innodb_use_native_aio=on

#case-sensitive file names and separate tablespace
innodb_file_per_table = 1
lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 128M

[mysql]
no-auto-rehash
default-character-set=utf8mb4

[mysqlhotcopy]
interactive-timeout

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

3) 创建用户组及用户

groupadd -g 101 dba
useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
cp /etc/skel/.* /usr/local/mysql

cd /usr/local/mysql/
#添加
vim .bashrc
    export MYSQL_BASE=/usr/local/mysql
    export PATH=${MYSQL_BASE}/bin:$PATH
    
chown  mysqladmin:dba /etc/my.cnf
chmod  640 /etc/my.cnf  
chown -R mysqladmin:dba /usr/local/mysql
chmod -R 755 /usr/local/mysql 
cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
chkconfig --add mysql

#数据库初始化
## 如果报错:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No ## such file or directory
## 就yum install -y libaio 

#数据库初始化
bin/mysqld \
--defaults-file=/etc/my.cnf \
--user=mysqladmin \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data/ \
--initialize

cd data
cat hostname.err |grep password
su mysqladmin
service mysql start

mysql -uroot -p'初始密码'
alter user root@localhost identified by '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' ;
flush privileges;
exit;

service mysql restart
mysql -uroot -p123456
create database cmf default character set utf8;
create database amon default character set utf8;
create database hive default character set utf8;
create database rman default character set utf8;
create database nav default character set utf8;
create database navms default character set utf8;
create database hue default character set utf8;
create database scm default character set utf8;
create database sentry default character set utf8;
create database dolphinschedule default character set utf8;

grant all privileges on cmf.*  to 'cmf'@'%' identified by '123456';
grant all privileges on amon.*  to 'amon'@'%' identified by '123456';
grant all privileges on hive.*  to 'hive'@'%' identified by '123456';
grant all privileges on rman.*  to 'rman'@'%' identified by '123456';
grant all privileges on nav.*  to 'nav'@'%' identified by '123456';
grant all privileges on navms.*  to 'navms'@'%' identified by '123456';
grant all privileges on hue.*  to 'hue'@'%' identified by '123456';
grant all privileges on scm.*  to 'scm'@'%' identified by '123456';
grant all privileges on sentry.*  to 'sentry'@'%' identified by '123456';
grant all privileges on dolphinschedule.*  to 'dolphinschedule'@'%' identified by '123456';
flush privileges;
exit;
exit;

2.8 部署JDBC(主机)

mkdir -p /usr/share/java
cp /opt/cdh/mysql-connector-java-5.1.47.jar  /usr/share/java/mysql-connector-java.jar

2.9 部署httpd(主机)

yum install -y httpd 
mkdir -p /var/www/html/cdh6_parcel
cd /opt/cdh/parcels
cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
cp CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha /var/www/html/cdh6_parcel/
cp manifest.json /var/www/html/cdh6_parcel/
systemctl start httpd


# 访问http://121.89.199.2/cdh6_parcel/
# 访问http://124.222.153.245/cdh6_parcel/

2.10 部署yum源(主机)

# 将/opt/cdh/cloudera-repos Cloudera Manager文件拷贝到安装主机中的httpd访问目录中,即/var/www/html中
cp -r /opt/cdh/cloudera-repos/ /var/www/html/
# 将RPMS下的x64_84复制到/var/www/html/cloudera-repos/
cd /opt/cdh
tar -xzvf cm6.3.1-redhat7.tar.gz
cp -r /opt/cdh/cm6.3.1/RPMS/x86_64/ /var/www/html/cloudera-repos/cm6/6.3.1/redhat7/yum/RPMS

sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6

(
cat <<EOF
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://121.89.199.2/cloudera-repos/cm6/6.3.1/redhat7/yum
gpgcheck=0
enabled=1
EOF
) >> /etc/yum.repos.d/cloudera-manager.repo

2.11 部署CDH(所有机器)

cd /opt/cdh/cm6.3.1/RPMS/x86_64

# 仅主节点
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
vim /etc/cloudera-scm-server/db.properties

#修改为:
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=master
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL

#所有节点(不用手动安装,到页面自动安装)
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
sed -i "s/server_host=localhost/server_host=master/g" /etc/cloudera-scm-agent/config.ini


2.12 初始化cmf库(仅主节点)

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmf cmf 123456
# /opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql cmf cmf 123456

2.13 启动CDH(所有机器)

# 仅主节点
systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
tail -F /var/log/cloudera-scm-server/cloudera-scm-server.log
netstat -at | grep 7180

# 所有节点
systemctl start cloudera-scm-agent 
systemctl status cloudera-scm-agent
netstat -at | grep 7182

2.14 网页初始化


















3. TIPS

3.1 can't be established.

https://www.cnblogs.com/peng-lan/p/10528435.html

3.2 无法安装agent

不要自己手动安装
https://blog.csdn.net/jiayawei90/article/details/104432180

如果已经安装,rpm -aq先查询,再rpm -e再删除

3.3 hash验证失败

https://blog.csdn.net/weixin_40762393/article/details/106761939

3.4 主机受管

http://121.89.199.2:7180/cmf/hardware/hosts

3.5 主机运行不良

https://www.freesion.com/article/9082551477/

3.6 配置时测试数据库连接失败

配置root启动mysql
https://jingyan.baidu.com/article/7c6fb428f5d58f80642c90b7.html

3.7 主机运行状态不良

https://www.cnblogs.com/cxc1357/p/13624362.html

3.8 找不到host-monitor

1)先安装一台host,再安装后两台agent
2)agent可以到页面安装,手动安装可能无法检测到anget信号
3)etc/hosts 最好加上别名。不然也可能可能无法检测到anget信号
4) 公网弄了很久,sever和agent始终失联,私网可以解决

3.9 服务器重启过后

1)启动mysql
su - mysqladmin
service mysql start
2)启动httpd
systemctl start httpd
3)启动CDH server
systemctl start cloudera-scm-server

4.0配置IP时尽量是用内网

搜索主机时,使用内网IP,外网如果不配置别名,会无法检测agent信号
配置parcels,使用内网IP,下载会快很多
posted @ 2022-03-02 18:05  付十一。  阅读(240)  评论(0)    收藏  举报