Cloudera Enterprise 6.2.x 或者参考https://blog.csdn.net/shawnhu007/article/details/52579204
第零步:优化相关
echo 'vm.swappiness = 10' >> /etc/sysctl.conf
sysctl -p
## 禁用透明大页面压缩
echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled
第一步:配置网络名称
CDH 支持 IPv4,不支持 IPv6
1.设置唯一的主机名
hostnamectl set-hostname foo-1.example.com
2.编辑 /etc/hosts
每个主机名的规范名称必须是 FQDN(例如:myhost-1.example.com),而不应该是不合格的主机名(例如:myhost-1)
不要在 /etc/hosts 或 DNS 服务器中使用别名
非限定主机名(短名称)在 Cloudera Manager 实例中必须是唯一的。例如,您不能同时拥有 test.baidu.com 和 test.163.com
vim /etc/hosts
1.1.1.1 foo-1.example.com foo-1 2.2.2.2 foo-2.example.com foo-2 3.3.3.3 foo-3.example.com foo-3 4.4.4.4 foo-4.example.com foo-4
3.编辑 /etc/sysconfig/network 为此主机的 FQDN
sed -i '/HOSTNAME/d' /etc/sysconfig/network
echo "HOSTNAME=`hostname`" >> /etc/sysconfig/network cat /etc/sysconfig/network
4.验证设置
## a.使用 uname -a 命令查看是否有输出匹配的主机名
## b.运行 /sbin/ifconfig 命令,请注意 inet addr 在 eth0 or bond0 中的地址 ## c.运行 host -v -t A $(hostname) 命令输出内容是否匹配主机名,IP地址部分应该跟 ifconfig 所报告的相匹配
第二步:禁用防火墙和 SELinux
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_cdh_disable_iptables.html
setenforce 0
sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config
which systemctl && systemctl stop firewalld
which systemctl && systemctl disable firewalld
which systemctl && systemctl stop iptables || service iptables stop
which systemctl && systemctl disable iptables || chkconfig iptables off
第三步:启用 NTP 服务
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_cdh_enable_ntp.html
CDH 要求集群中的每台计算机都配置 NTP 服务,REHL7兼容操作系统默认使用 chronyd 而不是 NTPD
如果你系统上有同时安装 NTPD 和 chronyd,Cloudera Manager依赖 chronyd验证时间同步,即使它没有正确同步
1.安装chrony并配置(时间同步客户端)
yum install -y chrony
# 修改前备份chrony.conf
/bin/grep 666666 /etc/chrony.conf && /bin/cp /etc/chrony.conf.666666 /etc/chrony.conf || /bin/cp /etc/chrony.conf /etc/chrony.conf.666666 # 删除默认Server sed -i "/server/d" /etc/chrony.conf sed -i "/makestep/d" /etc/chrony.conf # 新增阿里云服务器 echo "server ntp.aliyun.com iburst" >>/etc/chrony.conf echo "makestep 1.0 -1" >>/etc/chrony.conf
2.重启服务并查看状态是否正常并设置开机自动启动
systemctl enable chronyd
systemctl restart chronyd
systemctl status chronyd chronyc tracking
3.常用命令:
# 查看时间同步源:
chronyc sources -v
# 查看时间同步源状态:
chronyc sourcestats -v
# 启用NTP时间同步:
timedatectl set-ntp yes
# 校准时间服务器: chronyc tracking # 强制同步下系统时钟 chronyc -a makestep
第四步:安装 Python2.7
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_python_27.html
CDH6中的 Hue 需要 Python2.7,默认情况下他已经包含在 REHL7
兼容 REHL6的操作系统默认包含 Python2.6,在安装或升级到 Cloudera Enterprise 6 之前,必须在所有 Hue 主机上安装 Python2.7
第五步:配置本地 YUM 库
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_create_local_package_repo.html
1.设置 Web 服务器
yum install -y httpd
systemctl enable httpd
systemctl stop httpd systemctl start httpd systemctl status httpd
2.下载并发布包存储库
## Cloudera Manager 6
mkdir -p /var/www/html/cloudera-repos
wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cm6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos wget https://archive.cloudera.com/cm6/6.2.0/allkeys.asc -P /var/www/html/cloudera-repos/cm6/6.2.0/ ## CDH 6 mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6 chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6
3.配置主机以使用内部存储库
cat <<\EOF >/etc/yum.repos.d/cloudera-repo.repo
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.100.66/cloudera-repos/cm6/6.2.0/redhat7/yum
enabled=1
gpgcheck=0
EOF
第六步:配置本地 Parel 存储库
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_create_local_parcel_repo.html
1.设置 Web 服务器
1.安装 httpd
yum install -y httpd
2.编辑 Apache HTTP Server配置文件
当尝试从本地存储库下载包时,跳过此步骤可能会导致哈希验证失败的错误,尤其在 Cloudera Manager 6 及更高的版本中
## 在 IfModule mime_module 部分添加以下行
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak vim /etc/httpd/conf/httpd.conf AddType application/x-gzip .gz .tgz .parcel
2.启动 Start Apache HTTP Server
systemctl enable httpd
systemctl stop httpd
systemctl start httpd systemctl status httpd
3.下载和发布 Parcel 仓库
1.下载 CDH6
## Apache Impala, Apache Kudu, Apache Spark 2, and Cloudera Search 包含在 CDH parcel
mkdir -p /var/www/html/cloudera-repos
wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.0/parcels/ -P /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.0/parcels/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6 chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6
2.下载 Apache Accumulo for CDH
mkdir -p /var/www/html/cloudera-repos
wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/accumulo-c5/parcels/1.7.2/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/accumulo-c5
3.下载 CDS Powered By Apache Spark 2 for CDH
mkdir -p /var/www/html/cloudera-repos
wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/spark2/parcels/2.3.0.cloudera3/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/spark2
4.下载 Cloudera Navigator Key Trustee Server
5.下载 Cloudera Navigator Key Trustee KMS and HSM KMS
6.Sqoop Connectors
mkdir -p /var/www/html/cloudera-repos
wget --recursive --no-parent --no-host-directories http://archive.cloudera.com/sqoop-connectors/parcels/latest/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/sqoop-connectors
7.验证已下载文件是否存在
访问以下地址,验证您下载的文件是否存在
http://192.168.100.66/cloudera-repos
4.使用本地 Parcel 仓库
1.打开 Cloudera Manager Admin Console 并导航到 Parcels 页面
2.选在“”
Cloudera Enterprise 6.2.x
第一步:配置存储库
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/configure_cm_repo.html#cm_repo
方法1:使用官方 YUM 库
## 下载 repo 文件
wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/ ## 导入 GPG 密钥 rpm --import https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPM-GPG-KEY-cloudera
方法2:使用上一步建议的本地 YUM 仓库
cat <<\EOF >/etc/yum.repos.d/cloudera-repo.repo
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.100.66/cloudera-repos/cm6/6.2.0/redhat7/yum
enabled=1
gpgcheck=0
EOF
第二步:安装 JDK 环境
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cdh_ig_jdk_installation.html
- 要求:
JDK 必须是64位,不要使用32位 JDK
必须将 JDK 安装在 /usr/java/jdk-version
集群的所有主机必须安装相同版本的 JDK
- 经过测试和推荐的 Oracle JDK8 版本
1.8u181 Recommended / Latest version tested(推荐/最后测试版本)
1.8u162 Recommended(推荐)
1.8u141 Recommended(推荐)
1.8u131 Recommended(推荐)
1.8u121 Recommended(推荐) 1.8u111 Recommended(推荐) 1.8u102 Recommended(推荐) 1.8u91 Recommended(推荐) 1.8u74 Recommended(推荐) 1.8u31 Minimum required(最低要求)
- 使用 Cloudera Manager 安装 Oracle JDK
yum install -y oracle-j2sdk1.8
第三步:安装 Cloudera Manager Server
在Cloudera Manager Server主机上,键入以下命令以安装Cloudera Manager软件包
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
第四步:安装和配置数据库
Cloudera Manager使用各种数据库和数据存储来存储有关Cloudera Manager配置的信息,以及诸如系统运行状况或任务进度等信息。
虽然您可以在单个环境中部署不同类型的数据库,但这样做可能会产生意外的复杂情况。Cloudera建议为所有Cloudera数据库选择一个受支持的数据库提供程序。
- 需要数据库的组件
Cloudera Manager Server:
包含有关配置的服务及角色分配、所有配置历史记录、命令、用户和正在运行的进程的所有信息
这个数据库相对较小(<100MB),但是非常重要
重启进程时,将使用 Cloudera Manager Server 数据库中保存的信息重新部署每个服务的配置
如果此信息不可用,则集群会无法启动或正常运行,所以务必安排并维护 Cloudera Manager Server 数据库的定期备份
Oozie Server:
包含 Oozie workflow, coordinator, and bundle data。可以增长到很大
Sqoop Server:
包含 entities such as the connector, driver, links and jobs。相对较小
Activity Monitor:活动监控
包含过去活动的信息,在大型集群中,此数据库可能会变的很大。只有部署了 MapReduce 服务,才需要配置活动监视数据库
Reports Manager:
跟踪磁盘利用率和处理活动的历史记录。中型
Hive Metastore Server:
包含 Hive metadata。相对较小
Hue Server:
包含 用户账户信息、作业提交和 Hive 查询。相对较小
Sentry Server:
包含授权元数据。相对较小
Cloudera Navigator Audit Server:审计服务
包含审计信息。在大型集群中,此数据库可能会变的很大
Cloudera Navigator Metadata Server:元数据服务
包含授权、策略和审计报告元数据。相对较小
Host Monitor and Service Monitor services 使用本地磁盘存储数据。
1.安装 MySQL 数据库
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
安装MySQL 5.7或更高版本后,请 不要运行mysql_secure_installation,因为Yum存储库安装已经执行了该程序的功能
## 1.设置存储库
cat <<\EOF >/etc/yum.repos.d/mysql-community.repo
[mysql57-community]
name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql EOF ## 2.安装 MySQL ## 这将安装MySQL server(mysql-community-server)的包以及运行服务器所需组件的包,包括client(mysql-community-client)的包,客户端和服务器的常见错误消息和字符集(mysql-community-common)以及共享客户端库(mysql-community-libs) yum install -y mysql-community-server ## 3.启动并设置开机自动启动 systemctl enable mysqld.service systemctl stop mysqld.service systemctl start mysqld.service systemctl status mysqld.service ## 4.更改初始密码 grep 'temporary password' /var/log/mysqld.log mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xiaoliu123!';
2.修改配置以使其适用于Cloudera Manage
少于50台主机,你可以在同一主机上存储多个数据库(例如活动监视器和服务器监视器)。如果这样做,需要将每个数据库放在自己的存储卷上,为每个数据库 允许100最大连接,然后添加50个额外连接。 例如对于两个数据库,将最大连接数设置为250,如果一个主机上存储5个数据库(the databases for Cloudera Manager Server, Activity Monitor, Reports Manager, Cloudera Navigator, and Hive metastore),请将最大连接数设置为550
如果超过50台主机,不要再同一个主机上存储多个数据库,为每个数据库使用单独的主机
## 以下为 Cloudera 推荐的配置文件示例
cat <<\EOF > /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:
## 是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,0不开启 symbolic-links = 0 #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 server_id=1 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 ## 定义日志 bin log 日志路径 #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 ## 日志格式为混合模式 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 ## Management Service 需要写入高吞吐量,建议设置此项 ## innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log 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 EOF
3.安装 MySQL JDBC Driver
在 Cloudera Manager Server 主机上和所有需要数据库访问的主机上安装 JDBC 驱动
Cloudera建议仅使用JDBC驱动程序的5.1版
## 1.下载 MySQL JDBC driver
## https://dev.mysql.com/downloads/connector/j/5.1.html
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
## 2.解压
tar zxvf mysql-connector-java-5.1.47.tar.gz ## 3.将重命名的 JDBC 驱动文件 COPY 到 /usr/share/java/ 目录 mkdir -p /usr/share/java/ cd mysql-connector-java-5.1.47 cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar
4.为 Cloudera Manager 创建数据库和用户
Databases for Cloudera Software
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
创建数据库和用户,并对用户权限做授权
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 nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms 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 oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Xiaoliu123!'; exit;
你可以使用以下命令查看创建的数据库
SHOW DATABASES;
查看用户授权
SHOW GRANTS FOR '<user>'@'%';
第五步:设置 Cloudera Manager 数据库
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/prepare_cm_database.html
Cloudera Manager Server包含一个可以为自己创建和配置数据库的脚本。该脚本可以:
创建Cloudera Manager Server数据库配置文件
(MariaDB,MySQL和PostgreSQL)为Cloudera Manager Server创建和配置数据库以供使用
(MariaDB,MySQL和PostgreSQL)为Cloudera Manager Server创建和配置用户帐户
/opt/cloudera/cm/schema/scm_prepare_database.sh <databaseType> <databaseName> <databaseUser> 示例:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm <databaseType> 输入后端数据库类型 <databaseName> 上边为Cloudera Manager Server建立的数据库名 <databaseUser> 此数据库账号 回车后根据提示输入 scm 账号的密码 此脚本将创建数据库配置文件: /etc/cloudera-scm-server/db.properties
第六步:安装 CDH 和 其他软件
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_software_cm_wizard.html
1.启动 Cloudera Manager Server
设置Cloudera Manager数据库后,启动Cloudera Manager Server,然后登录Cloudera Manager Admin Console:
systemctl enable cloudera-scm-server
systemctl stop cloudera-scm-server
systemctl start cloudera-scm-server systemctl status cloudera-scm-server
2.观察启动过程
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
## 当出现以下信息说明启动完毕
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
## 如果启动失败,请参考以下网页进行排错
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_troubleshooting.html#cmig_topic_19
3.登录 Cloudera Manager Admin Console
Cloudera Manager 不支持已安装的 admin 用户,但是你可以添加新用户并添加管理权限后删除 admin 账户。
http://<server_host>:7180
Username: admin
Password: admin
1.欢迎界面,点【继续】
2.许可协议,选【接受】
3.显示许可证信息,点【继续】后进入添加集群向导
4.集群向导
1.欢迎页面
Adding a cluster in Cloudera Manager consists of two steps.
在Cloudera Manager中添加群集包含两个步骤。
Add a set of hosts to form a cluster and install Cloudera Manager Agent software and CDH. 添加一组主机以形成群集并安装Cloudera Manager Agent软件和CDH。 Select and configure CDH services to run on this cluster. 选择并配置CDH服务以在此群集上运行。
2.Cluster Basics - 群集基础知识
群集名称:为集群起个名字
A Regular Cluster contains storage nodes, compute nodes, and other services such as metadata and security collocated in a single cluster. 常规群集包含存储节点,计算节点和其他服务,例如在单个群集中并置的元数据和安全性。
3.Specify Hosts - 指定主机
在这里输入需要安装服务的主机名称或IP地址
可以使用“,”或不同的行来指定多个地址或地址范围
建议同时将 Cloudera Manager Server 一同加入,这将启用对该主机的状况监控
Cloudera Manager Server 主机需要提前跟需要被安装主机做好 SSH 互信或者在下一步提供远程主机的 root 密码 这里可以使用通配符: 10.1.1.[1-4] 10.1.1.1, 10.1.1.2, 10.1.1.3, 10.1.1.4 host[1-3].example.com host1.example.com, host2.example.com, host3.example.com host[07-10].example.com host07.example.com, host08.example.com, host09.example.com, host10.example.com
4.选择存储库
要点:您无法在同一群集中使用parcel和包安装软件。
此步骤需要在目标主机安装 Cloudera Manager Agent
存储库选择
已经自动将前边我们在 Cloudera Manager Server 自定义的本地 YUM 仓库信息填入了
CDH and other software:
这里可以选择需在目标主机安装的角色
5.JDK 安装选项
选择:
安装 Oracle Java SE 开发工具包 (JDK)
安装 Java 无限制强度加密政策文件
6.提供 SSH 登录凭据
这里可以选择为所有主机接受相同密码和所有主机接受相同私钥,根据自己情况选择
7.Install Agents
等待安装完成
8.Install Parcels
选定的 Parcel 正在下载并安装在群集的所有主机上。等待下载完成