4.4 离线安装CDH及其所需的服务
在后面的数据仓库实践中会用到Sqoop、Hive、Oozie、Impala、Hue等工具,出于简单部署的原则,这里选择CDH 5.7.0,并启用相关服务。
4.4.1 CDH安装概述
CDH的全称是Cloudera's Distribution Including Apache Hadoop,是Cloudera公司的Hadoop发行版本。有三种方式安装CDH:
● Path A:通过Cloudera Manager自动安装。
● Path B:使用Cloudera Manager Parcels或Packages安装。
● Path C:使用Cloudera Manager Tarballs手工安装。
不同方式的安装步骤总结如表4-1所示。
表4-1 CDH的三种安装方式
(续表)
4.4.2 安装环境
硬件配置:每台主机CPU4核、内存8GB、硬盘100GB。IP与主机名如下:
● 172.16.1.101 cdh1
● 172.16.1.102 cdh2
● 172.16.1.103 cdh3
● 172.16.1.104 cdh4
各软件版本如表4-2所示。
表4-2 安装CDH所需软件的版本
4.4.3 安装配置
1.安装前准备(都是使用root用户在集群中的所有4台主机配置)
● 从以下地址下载所需要的安装文件
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 http://archive.cloudera.com/cdh5/parcels/5.7/manifest.json
● 使用下面的命令检查OS依赖包,xxxx换成包名
rpm -qa | grep xxxx
以下这些包必须安装:
chkconfig python (2.6 required for CDH 5) bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap (rpcbind) fuse-libs redhat-lsb
● 配置域名解析
vi /etc/hosts
添加如下4行内容:
172.16.1.101 cdh1 172.16.1.102 cdh2 172.16.1.103 cdh3 172.16.1.104 cdh4
● 安装JDK
CDH5推荐的JDK版本是1.7.0_67、1.7.0_75、1.7.0_80,这里安装1.7.0_80。注意:所有主机要安装相同版本的JDK;安装目录为/usr/java/jdk-version。
mkdir /usr/java/ mv jdk-7u80-linux-x64.tar.gz /usr/java/ cd /usr/java/ tar -zxvf jdk-7u80-linux-x64.tar.gz chown -R root:root jdk1.7.0_80/ vi /etc/profile.d/java.sh
添加如下3行内容:
export JAVA_HOME=/usr/java/jdk1.7.0_80 export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/* export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效:
source /etc/profile.d/java.sh
● 安装、配置并启动NTP服务
yum install ntp chkconfig ntpd on ntpdate -u 202.112.29.82 vi /etc/ntp.conf
添加如下8行内容:
driftfile /var/lib/ntp/drift restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 server 202.112.29.82 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
启动NTP服务:
service ntpd start
● 建立CM用户
useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server --no-create-home -- shell=/bin/false --comment "Cloudera SCM User" cloudera-scm usermod -a -G root cloudera-scm echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers
● 安装配置MySQL数据库(为了后面配置方便,这里每个主机都装了)
rpm -ivh MySQL-5.6.14-1.el6.x86_64.rpm vi /etc/profile.d/mysql.sh
添加如下2行内容:
export MYSQL_HOME=/home/mysql/mysql-5.6.14 export PATH=$PATH:$MYSQL_HOME/bin
使环境变量生效:
source /etc/profile.d/mysql.sh
修改root密码:
mysqladmin -u root password
编辑配置文件:
vi /etc/my.cnf
内容如下:
[mysqld] transaction-isolation = READ-COMMITTED log_bin=/data/mysql_binary_log binlog_format = mixed innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT 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 read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 4G innodb_thread_concurrency = 8 innodb_log_file_size = 512M [mysqld_safe] log-error=/data/mysqld.err pid-file=/data/mysqld.pid sql_mode=STRICT_ALL_ tableS
添加开机启动:
chkconfig mysql on
启动MySQL:
service mysql restart
根据需要建立元数据库:
mysql -u root -p -e "create database hive DEFAULT CHARACTER SET utf8; create database rman DEFAULT CHARACTER SET utf8; create database oozie DEFAULT CHARACTER SET utf8; grant all on *.* TO 'root'@'%' IDENTIFIED BY 'mypassword'; "
● 安装MySQL JDBC驱动
tar -zxvf mysql-connector-java-5.1.38.tar.gz cp ./mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/java/mysql- connector-java.jar
● 配置免密码ssh(这里配置了任意两台机器都免密码)
分别在四台机器上生成密钥对:
cd ~ ssh-keygen -t rsa
然后一路回车。
在cdh1上执行:
cd ~/.ssh/ ssh-copy-id cdh1 scp /root/.ssh/authorized_keys cdh2:/root/.ssh/
在cdh2上执行:
cd ~/.ssh/ ssh-copy-id cdh2 scp /root/.ssh/authorized_keys cdh3:/root/.ssh/
在cdh3上执行:
cd ~/.ssh/ ssh-copy-id cdh3 scp /root/.ssh/authorized_keys cdh4:/home/grid/.ssh/
在cdh4上执行:
cd ~/.ssh/ ssh-copy-id cdh4 scp /root/.ssh/authorized_keys cdh1:/root/.ssh/ scp /root/.ssh/authorized_keys cdh2:/root/.ssh/ scp /root/.ssh/authorized_keys cdh3:/root/.ssh/
2.在cdh1上安装Cloudera Manager
tar -xzvf cloudera-manager*.tar.gz -C /opt/
建立cm数据库:
/opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot - pmypassword --scm-host localhost scm scm scm
配置cm代理:
vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini
将cm主机名改为cdh1:
server_host=cdh1
将Parcel相关的三个文件复制到/opt/cloudera/parcel-repo:
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/ cp manifest.json /opt/cloudera/parcel-repo/
改名:
mv /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel- repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
修改属主:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/ chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/
将/opt/cm-5.7.0目录复制到其他三个主机:
scp -r -p /opt/cm-5.7.0 cdh2:/opt/ scp -r -p /opt/cm-5.7.0 cdh3:/opt/ scp -r -p /opt/cm-5.7.0 cdh4:/opt/
3.在每个主机上建立/opt/cloudera/parcels目录,并修改属主
mkdir -p /opt/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
4.在cdh1上启动cm server
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
此步骤需要运行一些时间,用下面的命令查看启动情况:
tail -f /opt/cm-5.7.0/log/cloudera-scm-server/cloudera-scm-server.log
5.在所有主机上启动cm agent
mkdir /opt/cm-5.7.0/run/cloudera-scm-agent chown cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
6.登录cloudera manager控制台,安装配置CDH5及其服务
打开控制台http://172.16.1.101:7180/,显示“登录”页面。
默认的用户名和密码都是admin,登录后进入欢迎页面。勾选许可协议,单击“继续”。
进入版本说明页面,如图4-6所示。保持不变,单击“继续”。
图4-6 版本说明页面
进入服务说明页面,单击“继续”。
进入选择主机页面,如图4-7所示。全选cdh1、cdh2、cdh3、cdh4四个主机,单击“继续”。
图4-7 选择主机页面
进入选择存储库页面,保持不变,单击“继续”。
进入集群安装页面,单击“继续”。这一步会花费一些时间,进行CDH5的安装。
进入验证页面,单击“完成”。
进入集群设置页面,根据需要选择服务,本次安装选择了HDFS、Hive、Hue、Impala、Oozie、Sqoop 2、YARN等几项服务,单击“继续”。
进入自定义角色分配页面,保持不变,单击“继续”。
进入数据库设置页面,如图4-8所示。Hive、Reports Manager、OozieServer三个数据库主机都填写cdh2,数据库类型选择MySQL,数据库名称分别填写hive、rman和oozie,这是我们在安装配置MySQL时建立的三个数据库,用户名、密码按建库时的信息填写,测试连接成功后,单击“继续”。
图4-8 数据库设置页面
进入首次运行页面,等待运行完,单击“继续”。
进入安装成功页面,单击“完成”。
进入cloudera manager主页面,如图4-9所示。
图4-9 Cloudera Manager主页面
至此,CDH 5.7.0安装完成,主机和角色对应如表4-3所示。
表4-3 CDH服务-角色-主机对应关系
4.4.4 Cloudera Manager许可证管理
上一小节安装CDH5.7.0时,在版本说明页面有三个选项:Cloudera Express、Cloudera Enterprise数据集线器60天试用版和Cloudera Enterprise。Cloudera Express版本不需要许可证,试用版使用的是60天的试用许可证;Cloudera Enterprise需要许可证。我们选择的是默认配置的60天试用版。如果到了60天期限,是不是Cloudera Manager就完全不能用了呢?本小节就来介绍一下Cloudera Manager的许可证管理。
Cloudera Enterprise,也就是所谓的企业版有如下Express版本不具有的特性:
● 支持LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)和SAML(Security Assertion Markup Language,安全声明标记语言)身份认证。Cloudera Manager可以依赖内部数据库进行身份认证,企业版还支持通过LDAP和SAML等外部服务进行身份认证。
● 浏览和还原配置历史。无论何时,当你改变并保存了一系列关于服务、角色或主机的配置信息,Cloudera Manager都会自动保存前一个版本的配置和更改配置的用户名。这样就可以浏览以前的配置,并且在需要时可以回滚到以前的配置状态。
● 支持SNMP traps报警和用户定制的报警脚本。当预制定阈值越界等情况出现时,可以在任何时候向SNMP管理器报告错误情况,而不用等待SNMP管理器的再次轮询。
● 备份与崩溃恢复。Cloudera Manager企业版提供了一套集成的、易用的、Hadoop平台上的数据保护解决方案。Cloudera Manager允许跨数据中心的数据复制,包括HDFS里的数据、Hive表中的数据、Hive元数据、Impala元数据等。即使遇到一个数据中心都当掉的情况,仍然可以保证这些关键数据是可用的。
● 能够建立操作报告。在企业版Cloudera Manager的报告页面,可以建立HDFS的使用报告,包括每个用户、组或者目录的文件数及数据大小等信息,还可以报告MapReduce的操作情况。
● 支持Cloudera导航。Cloudera导航是一个与Hadoop平台完全集成的数据管理和安全系统,包括数据的审计、可视化、加密、搜索、分析等数据管理功能。
● 只有企业版支持Rolling Restart、History and Rollback和SendDiagnostic Data操作命令。
● 提供集群使用报告。企业版Cloudera Manager的集群使用报告页面显示汇总的YARN和Impala作业使用信息。报告还显示CPU、内存的使用情况,基于YARNfair调度器的资源分配情况,Impala查询等,可以配置报告的时间范围。
登录Cloudera Manager后,选择“管理”→“许可证”菜单,就访问到许可证页面。如果已经安装了许可证,该页面将显示许可证的状态(如当前是否有效)和许可证的属主、密钥、过期时间等细节信息。
如果企业版的许可证过期,Cloudera Manager仍然可以使用,只是企业版特性将不可用。试用版许可证只能使用一次,当60天试用期满,或者手工结束试用,将不能再次开启试用。试用结束后,企业版特性立即不可用,但是被禁用功能的相关数据和配置并不删除,一旦安装了企业版许可证,这些功能会再次生效。
在60天试用期即将结束前,Cloudera Manager的登录页面会给出试用将要到期的提示。此时可以在到期前的任意时间点,手工终止Cloudera Enterprise数据集线器版的试用,具体操作步骤如下:
步骤01在“许可证”页面,单击“结束试用”并确认。
步骤02单击“集群”→“Cloudera Manager Service”,打开Cloudera Manager服务页面。
步骤03在Cloudera Manager服务页面单击“操作”→“重启”,重启服务。
步骤04重启HBase、HDFS、Hive等配置改变的相关服务。
手工终止试用后,试用版会自动变更为Cloudera Express版。除了企业版特性,其他Cloudera Manager的基本功能不受任何影响。如果购买了企业版许可证,可以从Express版直接升级到企业版。只需要在“许可证”页面单击“上载许可证”,然后按照向导的步骤顺序执行即可。