文章目录
安装说明
- Centos7.5
- MariaDB10.1
- CDH6.3.0
- JDK1.8
步骤说明
说明:以下操作都是在root用户下进行的
下载CDH和CM
CDH软件安装软件在CDH6文件夹内
环境准备
初始化环境
yum install -y kde-l10n-Chinese telnet reinstall glibc-common vim wget ntp net-tools unzip \
&& yum clean all
网络名称修改
修改机器名为 cdh101
sudo hostnamectl set-hostname cdh101
# 不良 : 当从 Java 进程查看时该主机的主机名称和规范名称不一致。
sudo hostnamectl set-hostname cdh101.gla.net.cn
修改机器配置
vim /etc/hosts
192.168.26.130 cdh101.gla.net.cn cdh101
修改主机名设置为相应名称
vim /etc/sysconfig/network
HOSTNAME=cdh101
使用uname -a && hostname命令查看主机名
关闭防火墙、禁止防火墙开机自启
systemctl stop firewalld \
&& systemctl disable firewalld \
&& systemctl status firewalld
需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全
关闭 SELinux mode
setenforce 0 #临时关闭
vim /etc/sysconfig/selinux #永久关闭
# SELINUX=enforcing 改成 SELINUX=permissive
禁用透明页
vim /etc/rc.local #永久生效
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
修改最大文件数
永久修改
vim /etc/security/limits.conf
* soft nofile 10240
* hard nofile 10240
安装jdk
查询已安装的 java
rpm -qa | grep java
卸载
yum remove java*
上传jdk-8u191-linux-x64.tar.gz 版本到~/soft 目录下
mkdir /root/soft && mkdir /usr/java && cd /root/soft
tar -zxf jdk-8u191-linux-x64.tar.gz \
&& mv jdk1.8.0_191 jdk1.8 \
&& mv jdk1.8 /usr/java
vim ~/.bash_profile 文件
JAVA_HOME=/usr/java/jdk1.8
PATH=$PATH:$JAVA_HOME/bin
source ~/.bash_profile
查看是否能执行,显示以下内容配置正确
[root@cdh101 soft]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
安装JDK配置环境变量(这步骤需要在每台服务器执行,否则在安装服务时会找不到JDK环境!)
安装数据库
全部删除MySQL/MariaDB(新机器直接跳过此步)
MySQL 已经不再包含在 CentOS 7 的源中,而改用了 MariaDB;
查看rpm已经安装的
[root@localhost logs]# rpm -qa | grep Maria*
MariaDB-common-10.1.38-1.el7.centos.x86_64
MariaDB-server-10.1.38-1.el7.centos.x86_64
MariaDB-shared-10.1.38-1.el7.centos.x86_64
MariaDB-client-10.1.38-1.el7.centos.x86_64
删除所有
rpm -e MariaDB-common-10.1.38-1.el7.centos.x86_64
[root@cdh-1 mysql]# rpm -e MariaDB-shared-10.1.38-1.el7.centos.x86_64
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by (installed) MySQL-python-1.2.5-1.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) MySQL-python-1.2.5-1.el7.x86_64
#强制卸载,因为没有--nodeps
rpm -e --nodeps MariaDB-client-5.5.49-1.el7.centos.x86_64
#卸载数据库:
[root@localhost logs]# yum -y remove mari*
#删除数据库文件:
[root@localhost logs]# rm -rf /var/lib/mysql/*
增加mariaDB的yum源
cd /etc/yum.repos.d/ \
&& cp CentOS-Base.repo CentOS-Base.repo.bak \
&& vim CentOS-Base.repo
# 添加以下内容
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
# 执行
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
运行安装命令安装MariaDB(安装过程可能会比较漫长,使用中科大的就快了)
yum -y install MariaDB-server MariaDB-client
移除原有InnoDB log文件,如果有
cd /var/lib/mysql/ \
&& rm -rf /var/lib/mysql/ib_logfile0 \
&& rm -rf /var/lib/mysql/ib_logfile1
配置mariadb服务
# v10+
vim /etc/my.cnf.d/server.cnf
新增[mysqld]配置
[mysqld] 部分新增
lower_case_table_names=1
collation-server = utf8_general_ci
character-set-server = utf8
transaction-isolation = READ-COMMITTED
key_buffer = 16M
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
log_bin=/var/lib/mysql/mysql_binary_log
server_id=1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
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
配置项说明
- 防止死锁,设置隔离级别为READ-COMMITTED
transaction_isolation = READ-COMMITTED - 由于大量写,推荐硬盘直写,不经过系统缓存
innodb_flush_method = O_DIRECT - 设置最大连接数max_connections,原则上小于50主机,每个数据库100连接,并最后结果+50连接
例如Cloudera Manager Server, Activity Monitor, Reports Manager, Cloudera Navigator, and Hive metastore
5个数据库,设置最大连接550
如果大于50主机,那么数据库应该拆分到多个主机上
max_connections = 550 - 二进制日志部分不是必须的,依据数据库管理策略进行设置
systemctl enable mysql &&\
systemctl restart mysql
设置密码
/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 <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Remove anonymous users? [Y/n] Y <– 是否删除匿名用户,生产环境建议删除,所以直接回车
[...]
Disallow root login remotely? [Y/n] N <–是否禁止root远程登录,根据自己的需求选择Y/n并回车
[...]
Remove test database and access to it [Y/n] Y <– 是否删除test数据库,直接回车
[...]
Reload privilege tables now? [Y/n] Y <– 是否重新加载权限表,直接回车
All done!
创建CDH数据库
这里面我直接进行创建
mysql -u root -p
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 *.* TO 'root'@'%' IDENTIFIED BY '123123';
flush privileges;
# 这是创建语句样例
CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
数据库列表描述
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 |
配置CM Server数据库
注意jar包名称要重命名,切记要将版本号去除,否则你在做下一步的时候会给你带来一些不必要的烦恼哟!
初始化脚本/usr/share/cmf/schema/scm_prepare_database.sh
需要/usr/share/java/mysql-connector-java.jar
这个文件来执行数据库初始化
mkdir -p /usr/share/java/ && cd /usr/share/java/
上传 mysql-connector-java.jar 到/usr/share/java/ 目录下
或者wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
mkdir -p /usr/share/java/ \
&& wget -O /usr/share/java/mysql-connector-java-5.1.48.tar.gz \
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz \
&& cd /usr/share/java/;tar -zxvf mysql-connector-java-5.1.48.tar.gz \
&& cp /usr/share/java/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar \
&& rm -rf mysql-connector-java-5.1.48 mysql-connector-java-5.1.48.tar.gz \
&& ls /usr/share/java/
CDH安装
安装依赖包
yum install -y 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 lrzsz libxml2-python mod_ssl
配置本地yum仓库 (manager节点)
- 安装Httpd服务
yum -y install httpd createrepo \
&& systemctl start httpd \
&& systemctl enable httpd
- 配置本地yum仓库
mkdir -p /var/www/html/cm6/
- 将下载的cloudera-repos-6.3.0包文件移到此目录下:
cd /var/www/html/cm6/
[root@cdh104 cm6]# ll
总用量 1378004
-rw-r--r--. 1 root root 14041 1月 10 15:08 allkeys.asc
-rw-r--r--. 1 root root 10479136 1月 10 15:08 cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm
-rw-r--r--. 1 root root 1201341068 1月 10 15:09 cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm
-rw-r--r--. 1 root root 11464 1月 10 15:08 cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm
-rw-r--r--. 1 root root 10996 1月 10 15:08 cloudera-manager-server-db-2-6.3.0-1281944.el7.x86_64.rpm
-rw-r--r--. 1 root root 14209884 1月 10 15:08 enterprise-debuginfo-6.3.0-1281944.el7.x86_64.rpm
-rw-r--r--. 1 root root 184988341 1月 10 15:08 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
- 创建repodata:
createrepo .
chmod -R ugo+rX /var/www/html/cm6/
- 验证
http://<ip>/cm6/
访问不了检查防火墙、hostname、ip
安装Cloudera Manager
IP修改为存放cloudera-repos-6.3.0包的机器IP
(
cat <<EOF
[cloudera-manager]
name = Cloudera Manager, Version
#地址为公司yum仓库,如果没有需要搭建本地yum仓库
baseurl = http://192.168.26.134/cm6/
gpgcheck=0
enabled=1
EOF
) >> /etc/yum.repos.d/cloudera-manager.repo \
&& yum clean all \
&& yum makecache \
&& yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server \
&& yum clean all \
&& rpm -qa | grep cloudera-manager
安装完CM后/opt/ 下会出现cloudera目录
配置parcel库
将parcel-6.3.0文件放入/opt/cloudera/parcel-repo目录下
[root@cdh101 parcel-repo]# cd /opt/cloudera/parcel-repo
[root@cdh101 parcel-repo]# ll
总用量 2038864
-rw-r--r-- 1 root root 2087665645 12月 31 12:51 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
-rw-r--r-- 1 root root 41 12月 31 12:52 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
-rw-r--r-- 1 root root 40 12月 31 12:51 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
-rw-r--r-- 1 root root 64 12月 31 12:51 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha256
-rw-r----- 1 root root 79809 12月 31 13:41 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.torrent
-rw-r--r-- 1 root root 34635 12月 31 12:51 manifest.json
然后执行命令生成 sha 文件:
sha1sum CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel | awk '{ print $1 }' > CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha
在/opt/cloudera/parcel-repo执行以下命令(授予权限给cloudera-scm用户):
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
初始化cm本机数据库
cd /opt/cloudera/cm/schema/ \
&& ./scm_prepare_database.sh mysql scm root
输入数据库密码
显示以下内容成功!!
JAVA_HOME=/usr/java/jdk1.8.0_191
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_191/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
启动服务
systemctl start cloudera-scm-server.service
看日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
这里要稍微等一下,别心急,看日志
浏览器访问端口http://<server_host>:7180 ,如果启用了auto-tls 就用7183端口
用户密码admin /admin
初始化Cloudera Manager
- 同意协议
- 点选Express版本
- 填写集群名称:hadoop
- 输入主机名称或者IP 搜索选中
- 集群安装:选择存储库
- 自定义存储库:http://192.168.26.133/cm6/
- CDH and other software选择parcel安装
- 远程 Parcel 存储库 URL:http:///cloudera-repos
- CDH 版本 对应版本挑勾
- JDK不安装
- 输入SSH密码
- 系统建立临时yum源,等待Install Parcels…
- 选择:I understand the risks, let me continue with cluster creation.
如果8显示无法检测到cloudera-manager-server
安装节点执行 mv /usr/bin/host /usr/bin/host.bak
显示service cloudera-scm-agent找不到
检查cm6路径是否访问不了
系统检查主机后会给出些建议,可以按照修改
群集设置
- 选择服务:Essentials
- 自定义角色分配修改以下内容并执行下一步
- HDFS:httpFS选择当前主机挑勾
- HDFS:NFS Gateway选择当前主机挑勾
- HIVE:WebHCat Server选择当前主机挑勾
- Cloudera Management Service:Activity Monitor选择当前主机挑勾
- 选择数据库,依次填写数据库名、用户名、密码
- 点击测试连接显示Successful执行下一步
- 审核更改,继续
- 等待自动部署完成
完成以上内容CDH6.3安装完成