1.1 配置host(大数据集群主机都需要操作)
vim /etc/profile
按照实际情况配置host
*域名应符合(FQDN)完全合格域名,CDH管理主机名必须为FQDN
172.1.1.1 dm2.com
172.1.1.1 dm3.com
172.1.1.1 dm4.com
……
1.2 配置各主机之间免密(大数据集群主机都需要操作)
生成ssh密钥-一直回车
ssh-keygen
查看主机密钥
cat ~/.ssh/id_rsa.pub
将输出的密钥复制到大数据集群其他主机实现免密
vim ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
然后连接测试免密
1.3 关闭iptables、firewalld、selinux(大数据集群主机都需要操作)
systemctl stop iptables systemctl disable iptbales systemctl stop firewalld systemctl disable firewalld
selinux
vim /etc/selinux/config 修改为以下内容 SELINUX=disabled
重启服务器应用修改
1.4 修改centos文件句柄数(大数据集群主机都需要操作)
无论对Spark集群,还是Hadoop集群等大数据相关的集群进行调优,对linux系统层面的调优都是必不可少的,linux在整个系统层面和单个进程两个层面对打开的文件句柄进行限制,默认值在实际线上环境中肯定是不够的,所以需要修改默认配置
vim /etc/security/limits.conf
修改为以下样式
* soft nproc unlimited * hard nproc unlimited * soft nofile 131072 * hard nofile 131072 * soft memlock unlimited * hard memlock unlimited
1.5 配置ntp时钟同步(大数据集群主机都需要操作)
ntp一定要做好,不然集群会一直报警告
我做的是一台大数据集群主机a向时钟源同步,其他大数据集群主机向a同步,这样最少能保证集群内部的时钟同步
外网可用阿里云时钟源-我用的自己内网的,在通过内网同步,保证集群内部时钟同步。
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
yum -y install ntp* //编辑ntp配置文件,配置以下内容 vim /etc/ntp.conf
将CDH主节点配置成ntp的主节点,其他大数据节点向主节点同步时钟
主节点配置:
restrict 127.0.0.1 restrict 172.18.103.0 mask 255.255.255.224 restrict ::1 server 172.18.251.158 server 127.127.1.0
其他大数据节点配置
这里配置主机名
server dm2.com iburst Fudge dm2.com stratum 10
配置好后重启服务器依次执行一下命令使ntp启动,并正常向主节点同步即可
systemctl restart ntpd ntpd -gq systemctl restart ntpd timedatectl
执行timedatectl看到以下结果即为正确
NTP enabled: yes NTP synchronized: yes
1.6 准备cm需要的包(主节点操作)
存储在/home/cm/
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
1.7 安装jdk(大数据集群主机都需要操作)
yum -y install oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
配置环境变量
vim /etc/profile //添加以下内容 export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
环境变量后续安装后还需要手动添加,暂时先添加这些
//执行以下命令检查环境变量是否ok source /etc/profile java -version
1.8 安装数据库(主节点操作)
我是用的mysql-5.7.24,mariadb也可
准备数据库rpm包
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
##检查服务器是否默认安装了mariadb,如果有,则卸载
rpm -qa | grep mariadb rpm -e mariadb* --nodeps
#解包 tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz #换名 mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql #创建应用目录及存储目录 mkdir /data/app /data/data #挪包 mv mysql /data/app/ #授权普通用户 chown -R appmanager.appmanager /data #切换目录 cd /data/app/mysql/bin/ #初始化mysql,指定用户,及目录,编码 nohup ./mysqld --initialize --user=appmanager --basedir=/znIVR/app/mysql --datadir=/znIVR/data --lc_messages_dir=/znIVR/app/mysql/share --lc_messages=en_US #创建目录 mkdir /data/app/mysql/etc #编入配置文件内容 cat > /data/app/mysql/etc/my.cnf << EOF [mysqld] user=appmanager basedir=/data/app/mysql datadir=/data/data port=3306 log-error=/data/app/mysql/var/log/mysqld_error.log pid-file=/data/app/mysql/var/run/mysqld.pid socket=/data/app/mysql/mysql.sock sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' server-id = 1 skip-external-locking key_buffer_size = 16M max_allowed_packet = 100M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M thread_cache_size = 8 query_cache_size = 8M tmp_table_size = 16M performance_schema_max_table_instances = 500 explicit_defaults_for_timestamp = true max_connections = 10000 max_connect_errors = 100 open_files_limit = 65535 log-bin=mysql-bin binlog_format=mixed expire_logs_days = 10 binlog_checksum=crc32 sync_binlog = 500 lower_case_table_names=0 default_storage_engine = InnoDB innodb_file_per_table = 1 innodb_data_home_dir = /data/data innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /data/data innodb_buffer_pool_size = 8G innodb_log_file_size = 1000M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 50 plugin-load=rpl_semi_sync_master=semisync_master.so rpl_semi_sync_master_enabled=1 innodb_flush_method = O_DSYNC innodb_change_buffer_max_size = 50 [client] #default-character-set=utf8 socket=/data/app/mysql/mysql.sock port=3306 [mysql] #default-character-set=utf8 socket=/data/app/mysql/mysql.sock port=3306 no-auto-rehash [mysqldump] quick max_allowed_packet = 128M EOF #清理无效配置文件 rm -rf /etc/my.cnf #软连接配置文件到/etc/下 ln -s /data/app/mysql/etc/my.cnf /etc/my.cnf #创建所需目录 mkdir -p /data/app/mysql/var/log/ mkdir -p /data/app/mysql/var/run/ #更改mysql启动文件内容 cd /data/app/mysql/support-files/ cp mysql.server /etc/init.d/mysql sed -i '46c basedir=/data/app/mysql' /etc/init.d/mysql sed -i '47c datadir=/data/data' /etc/init.d/mysql #添加执行权限 chmod +x /etc/init.d/mysql #添加为系统服务 chkconfig --add mysql #创建所需日志文件 touch /data/app/mysql/var/log/mysqld_error.log #软连接mysql命令 ln -s /data/app/mysql/bin/mysql /usr/bin/mysql ln -s /data/app/mysql/bin/mysqldump /usr/bin/mysqldump #授权 chown -R appmanager.appmanager /data #启动数据库 service mysql restart
#第一次登录需要更改mysql root的密码
set password =password('kT4Hz!%pxfjC!Hqi');
至此mysql安装完毕,根据自己服务器内存大小更改配置文件中的innodb_buffer_pool_size,来指定mysql的初始化内存,默认密码存在执行mysql初始化命令目录下的nohup.out 中。
创建集群所需数据库及授权用户(根据安装的软件进行创建,没有用到可以不创建)
GRANT ALL ON *.* TO 'root'@'%' identified by 'jesse@123'; create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; GRANT ALL ON *.* TO 'scm'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'amon'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'rman'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'hue'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'hive'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'sentry'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'nav'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'navms'@'%' identified by 'jesse@123'; GRANT ALL ON *.* TO 'oozie'@'%' identified by 'jesse@123'; flush privileges;
配置mysql-jdbc 注意包明需要修改
mv mysql-connector-java-8.0.15.jar mysql-connector-java.jar cp ~/mysql-connector-java.jar /usr/share/java/
1.9 安装http(主节点操作)
大数据环境需要http服务器做分发器,其他节点只需要配置yum即可
yum -y install httpd* //修改配置文件为一下内容 vim /etc/httpd/conf/httpd.conf #添加以下内容 AddType application/x-gzip .gz .tgz .parcel
//启动httpd systemctl httpd start
访问本机地址查看是否安装成功
制作本地分发器/yum源
将1.6步骤准备的cm包放到http目录下
#将本地cm包放到 /var/www/html/下 cp /home/cm/* /var/www/html/cm6/ #进入目录制作成镜像 cd /var/www/html/cm6/ createrepo * #如果没有createrepo 命令则yum一个,再执行 yum -y install createrepo* #授权目录为apache用户权限,并赋权 chown -R apache.apache /var/www/html/* chmod 755 /var/www/html/cm6 #重启httpd服务 systemctl restart httpd
访问本机地址测试httpd搭建情况
浏览器输入 http://本机ip:80/cm6
见到这个页面即制作成功
1.9 配置yum(大数据集群主机都需要操作,因为主节点需要安装cloudera-manager-server,其他节点需要安装cloudera-manager-agent)
所有大数据集群yum配置成以下内容(大数据集群主机都需要操作)
vim /etc/yum.repos.d/cloudera-manager.repo #写入以下内容 name=Cloudera Manager baseurl=http://1.1.1.1/cm6 gpgcheck=0 enabled=1 #保存退出 #1.1.1.1为刚才搭建的httpd服务地址 #清理yum环境,重新加载 yum clean all yum makecache yum repolist
1.10 安装依赖(大数据集群主机都需要操作)
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb postgresql* portmap mod_ssl openssl-devel python-psycopg2 MySQL-python准备工作完成,开始安装cm
主节点安装cloudera-manager
yum -y install cloudera-manager*
执行cm初始化脚本
#切到cm目录下 cd /opt/cloudera/cm/schema #执行sh scm_prepare_database.sh mysql scm root 123456 #初始化脚本 mysql 库名 用户 密码
手动安装cloudera-manager-agent(所有从节点)
yum -y install cloudera-manager-agent*
配置agent配置文件
vim /etc/cloudera-scm-agent/config.ini #修改 server_host=主节点ip/主节点主机名(FQDN)
重启agent
至此cm安装完成,进入页面安装http://1.1.1.1:7180
账号密码默认 admin/admin



