CDH 是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得集群的安装可以从几天的时间缩短为几个小时,运维人数也会从数十人降低到几个人,极大的提高了集群管理的效率。
cloudera官网:https://www.cloudera.com/
二、安装环境准备 1、文件准备所有文件如下图所示:
hostname.txt
文件格式:IP地址=主机名=用户名=密码
192.168.78.101=cdh-master=root=123456 192.168.78.102=cdh-slave01=root=123456 192.168.78.103=cdh-slave02=root=1234561.2、ISO镜像文件 1.3、JDK安装文件 1.4、MYSQL安装文件
配置文件:my.cnf
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid character_set_server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake init_connect='SET NAMES utf8' [client] default-character-set=utf81.5、CDH安装文件
下载地址:cdh软件包下载地址
cdh安装文件
cm安装文件
cdh依赖文件
cdh-execute.sql
备注:可根据自己实际情况更改内容
create database metastore default character set utf8; CREATE USER 'hive'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%'; FLUSH PRIVILEGES; create database cm default character set utf8; CREATE USER 'cm'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON cm. * TO 'cm'@'%'; FLUSH PRIVILEGES; create database rm default character set utf8; CREATE USER 'rm'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%'; FLUSH PRIVILEGES; create database hue default character set utf8; CREATE USER 'hue'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%'; FLUSH PRIVILEGES; create database ranger default character set utf8; CREATE USER 'rangeradmin'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON ranger. * TO 'rangeradmin'@'%'; FLUSH PRIVILEGES;2、脚本准备
下载地址:cdh完整版自动化安装脚本
cdh部分安装脚本
installCDHscript.sh
#!/bin/bash
############################################################################################################
##########################################上传所有文件到/tmp/local目录#########################################
############################################################################################################
#if [ $# -ne 3 ]; then
# echo "Usage:"
# echo "$0 linuxuser linuxpasswd hostsFile"
#fi
#
#user=root
#master=192.168.78.101
#linuxuser=$1
#linuxpasswd=$2
#hostfilename=$3
master_ip=$(cat /tmp/local/hostname.txt | awk -F '=' 'NR==1 {print $1}')
master_hostname=$(cat /tmp/local/hostname.txt | awk -F '=' 'NR==1 {print $2}')
all_ip=$(cat /tmp/local/hostname.txt | awk -F '=' '{print $1}')
hosts=$(cat /tmp/local/hostname.txt)
user=$(cat /tmp/local/hostname.txt | awk -F '=' ' NR==1 {print $3}')
password=$(cat /tmp/local/hostname.txt | awk -F '=' 'NR==1 {print $4}')
mysqlPort="3306"
mysqlUsername="root"
mysqlNewPassword="123456"
mysqlDB="mysql"
echo -e "===================================开始检查脚本所需所有文件==================================="
isofile=$(ls /tmp/local/iso/*.iso 2>/dev/null | wc -l)
hostsFile=$(ls /tmp/local/hostname.txt 2>/dev/null | wc -l)
jdkfile=$(ls /tmp/local/jdk/jdk*.gz 2>/dev/null | wc -l)
mysqlfile=$(ls /tmp/local/mysql/mysql-community* 2>/dev/null | wc -l)
mysqlconnectorfile=$(ls /tmp/local/mysql/mysql-connector* 2>/dev/null | wc -l)
mycnffile=$(ls /tmp/local/mysql/my.cnf 2>/dev/null | wc -l)
if [[ $isofile != 0 ]] && [[ $hostsFile != 0 ]] && [[ $jdkfile != 0 ]] && [[ $mysqlfile != 0 ]] &&
[[ $mysqlconnectorfile != 0 ]];then
echo -e " 33[32m已检测到脚本所需所有文件 33[0m"
echo -e "$(ls /tmp/local/*)"
else
echo -e " 33[31m请上传脚本所需所有文件 33[0m"
echo -e "$(ls /tmp/local/*)"
exit
fi
#####制作iso本地yum源
CreateYum()
{
echo -e "nnn"
mount_dir=/mnt/iso
iso=$(ls /tmp/local/iso/*.iso)
echo -e "===================================开始制作iso本地yum源==================================="
read -n1 -p "是否开始制作iso本地yum源?[y/N]:" answer
case $answer in
Y | y)
echo -e "n===================================准备挂载iso镜像文件==================================="
if [ ! -d "$mount_dir" ]; then
mkdir $mount_dir
mount -o loop $iso $mount_dir
echo -e " 33[32miso镜像文件已挂载 33[0m"
else
mount -o loop $iso $mount_dir
echo -e " 33[32miso镜像文件已挂载 33[0m"
fi
echo -e "===================================开始安装和启动httpd==================================="
cd /mnt/iso/Packages && yum -y localinstall httpd-2* httpd-tools-2* apr-1* apr-util-1* mailcap-2*
systemctl enable httpd --now
echo -e " 33[32mhttpd已完成安装和启动 33[0m"
echo -e "===================================开始安装createrepo==================================="
cd /mnt/iso/Packages && yum -y localinstall createrepo* deltarpm* libxml2-python* python-deltarpm*
echo -e " 33[32mcreaterepo已完成安装 33[0m"
echo -e "===================================备份系统自带yum源==================================="
if [ ! -d "/etc/yum.repos.d/bak_repo" ]; then
mkdir /etc/yum.repos.d/bak_repo && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak_repo
echo -e " 33[32m系统自带yum源已备份 33[0m"
else
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak_repo
echo -e " 33[32m系统自带yum源已备份 33[0m"
fi
echo -e "===================================准备制作iso本地yum源==================================="
rm -rf /var/www/html/iso
mkdir /var/www/html/iso && cp -r /mnt/iso/Packages /var/www/html/iso
cd /var/www/html/iso && createrepo .
cat <

