Cloudera yum 方式安装
安装流程
1 首先配置系统环境
2 安装
Cloudera Manager Server- 2.1 配置 yum 源, 执行安装流程
- 2.2 配置 SCM 数据库
- 2.3 启动 Cloudera Manager Server 服务(监控报错日志)
- 2.4 打开 http://hostname:7180 端口, 跳过所有安装步骤, 直接添加 Cloudera Management Service 服务
2 Cloudera Manager Agent ->
Cloudera Manager Server 注册节点- 4.1 配置 yum 源, 执行安装流程
- 4.2 修改配置 Cloudera Manager Agent 服务指向 Cloudera Manager Server 服务所在的 host, 配置文件 /etc/cloudera-scm-agent/config.ini 的 server_host -> Cloudera Manager Server
- 4.3 手动启动 Cloudera Manager Agent 服务(监控报错日志)
- 4.4 注意第一次 Agent 注册到 Server 节点是没有 CDH 版本的, 需要在 Server 管理界面添加已经注册的主机(分发 CDH 版本的)
- 4.5 Cloudera Manager Server 7180 -> 主机管理界面, 点击添加主机到集群中(选中已注册的节点), 这个时候才会有 CDH 版本信息
4 CDH 组件 -> Cloudera Manager Server 和 Cloudera Manager Agent 安装完成后再配置 Hadoop 组件
* 系统环境配置
1. 环境属性
1. 创建用户 cloudera-scm, 给与免密码 sudo 权限vim /etc/sudoers# 以下注释取消%wheel ALL=(ALL) NOPASSWD: ALL1) 方法 1userdel cloudera-scm# 创建cm部署用户groupadd -r cloudera-scm# 分配到 组useradd -m -s /bin/bash -g cloudera-scm cloudera-scm# 追加用户到 sudo 组usermod -G wheel cloudera-scm# 创建hadoop用户userdel hadoopgroupadd -r hadoopuseradd -m -s /bin/bash -g hadoop hadoop# 追加用户到 sudo 组usermod -G wheel hadoop2) 方法 2%cloudera-scm ALL=(ALL) NOPASSWD: ALL 账号其他配置*) sudo 权限附属配置vim /etc/sudoers# 确认包含如下Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binvim /etc/pam.d/su# 确保包含如下行session required pam_limits.so2. 同步系统时区(每台服务器的时区必须一样)yum install ntpntpdate -d time.nist.gov 或者 ntpdate -d pool.ntp.orgntpdate -d node-hostcrontab -e , 添加如下命令*/5 * * * * /usr/sbin/ntpdate monitor.50bang.org && /sbin/hwclock -w3. 关闭防火墙// Centos 6service iptables stopchkconfig iptables offservice ip6tables stopchkconfig ip6tables off// Centos 7systemctl stop firewalldsystemctl disable firewalld3.1 设置 HOSTNAME 与 域名统一vim /etc/sysconfig/networkHOSTNAME=dw[N] 根据实际情况填写4. 关闭 selinux# 临时生效setenforce 0# 永久失效vi /etc/selinux/configSELINUX=disabled5. 安装 scpyum -y install openssh-clients6. ssh key# 生成 keyssh-keygen# 分配ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname
2. 系统属性
1. 禁用大透明页1.1 Centos 6:cat /sys/kernel/mm/redhat_transparent_hugepage/defrag[always] never 表示已启用透明大页面压缩。always [never] 表示已禁用透明大页面压缩。如果启用, 请关闭echo 'never' > /sys/kernel/mm/redhat_transparent_hugepage/defragecho 'never' > /sys/kernel/mm/transparent_hugepage/enabled加入开机启动中vim /etc/rc.local (给执行权限 chmod +x /etc/rc.d/rc.local )# 禁用大透明页echo 'never' > /sys/kernel/mm/redhat_transparent_hugepage/defragecho 'never' > /sys/kernel/mm/transparent_hugepage/enabled1.2 Centos 7:cat /sys/kernel/mm/transparent_hugepage/defrag如果启用, 请关闭echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag加入开机启动中vim /etc/rc.local (给执行权限 chmod +x /etc/rc.d/rc.local )# 禁用大透明页echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag2. vm.swappiness Linux 内核参数# 默认为 60 , 用于控制将内存页交换到磁盘的幅度, 介于 0-100 之间的值;值越高,内核寻找不活动的内存页并将其交换到磁盘的幅度就越大。cat /proc/sys/vm/swappiness# 设置为 0sysctl -w vm.swappiness=03. 集群挂载的文件系统,不使用 RAID 和 LVM 文件系统4. 最大打开的文件数sysctl -a | grep fs.file如果比 65535 小, 则设置如下参数sudo vim /etc/security/limits.conf* hard nofile 102400* soft nofile 102400
一、安装 Cloudera Manager Server
- Cloudera Management Service 可作为一组角色实施各种管理功能
- Activity Monitor
- 收集有关 MapReduce 服务运行的活动的信息。默认情况下未添加此角色。
- Host Monitor
- 收集有关主机的运行状况和指标信息
- Service Monitor
- 收集有关服务的运行状况和指标信息以及 YARN 和 Impala 服务中的活动信息
- Event Server
- 聚合 relevant Hadoop 事件并将其用于警报和搜索
- Alert Publisher
- 为特定类型的事件生成和提供警报
- Reports Manager
- 生成报告,它提供用户、用户组和目录的磁盘使用率的历史视图,用户和 YARN 池的处理活动,以及 HBase 表和命名空间。此角色未在 Cloudera Express 中添加。
- Cloudera Manager 将单独管理每个角色,而不是作为 Cloudera Manager Server 的一部分进行管理,可实现可扩展性(例如,在大型部署中,它可用于将监控器角色置于自身的主机上)和隔离。
* 登录 cloudera-scm 账号1. 添加 cloudera-manager.repo 源(所有节点)Centos 6: sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/cloudera-manager.repo --directory-prefi=/etc/yum.repos.dCentos 7: sudo wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo --directory-prefi=/etc/yum.repos.dPS: 若要安装指定的版本, 修改如下参数sudo vim /etc/yum.repos.d/cloudera-manager.repo# Centos 6: 修改 baseurl 属性中的 url (url 可以指定版本)baseurl=http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.9.0/# Centos 7: 修改 baseurl 属性中的 url (url 可以指定版本)baseurl=http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.9.0/更新 yum:yum update2. 下载安装组件a) 安装 JAVA# PS 这个包在 CM 的源中sudo yum install oracle-j2sdk1.7# 加入环境变量vim ~/.bashrc# CDH JAVA HOMEexport JAVA_HOME=/usr/java/jdk1.7.0_67-clouderaexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHsource ~/.bashrcPS) 这里可以配置 JAVA 1.8 的版本, 安装好 CM 后, 启动 Web /cmf/hardware/hosts/config, 其中可以配置 JAVA Home 的目录# 下载、安装、权限下载软件 jdk-8u131-linux-x64.tar.gz (oracle 版本)安装目录 /opt/app/jdk-1.8.0_131给与 /opt/app/jdk-1.8.0_131 目录 hadoop 权限(774 -R)# 配置 Cloudera Java 软链sudo mkdir -p /usr/java/sudo ln -s /opt/app/jdk-1.8.0_131 /usr/java/jdk1.8# 配置环境变量vim ~/.bashrc# CDH JAVA HOMEexport JAVA_HOME=/opt/app/jdk-1.8.0_131export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHsource ~/.bashrcb) 安装服务 Cloudera 组件sudo yum install cloudera-manager-daemonssudo yum install cloudera-manager-serverd) 下载 mysql-connector-java-5.1.40.jar 依赖包# 下载 MySQL 驱动sudo wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar --directory-prefix=/usr/share/java/# 放到 cmf 公用库中sudo cp /usr/share/java/mysql-connector-java-5.1.40.jar /usr/share/cmf/lib/mysql-connector-java-5.1.40.jar3. 安装 scm 数据库1)方法 1 使用脚本配置/usr/share/cmf/schema/scm_prepare_database.sh mysql -hmysql-host -P3306 -uroot -pxxx.com scm hadoop xxx.com具体参数看配置 : /usr/share/cmf/schema/scm_prepare_database.sh --help2)方法 2 编写配置文件 /etc/cloudera-scm-server/db.propertiescom.cloudera.cmf.db.type=mysqlcom.cloudera.cmf.db.host=manager1:3306com.cloudera.cmf.db.name=scmcom.cloudera.cmf.db.user=hadoopcom.cloudera.cmf.db.password=xxx.comcom.cloudera.cmf.db.setupType=EXTERNAL4. root 权限登录 mysql 查看账户是否生效SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;5. 监控启动服务tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log# 给与目录权限sudo chmod 775 -R /opt/cloudera/parcel-repo/sudo chmod 775 -R /var/lib/cloudera-scm-server# 启动 cm 服务sudo service cloudera-scm-server restart# 查看 服务状态service cloudera-scm-server status# 监控端口netstat -tunlp7180 : Http Web 服务7182 : 监控通讯服务6. 启动完成后(最后步骤)# 创建 /opt/cloudera/parcels 目录sudo mkdir -p /opt/clouderasudo mkdir -p /opt/cloudera/parcel-repo/sudo chown cloudera-scm:cloudera-scm -R /opt/clouderasudo chown cloudera-scm:cloudera-scm -R /opt/cloudera# 下载 3 个文件wget http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel --directory-prefix=/opt/cloudera/parcel-repo/wget http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1 --directory-prefix=/opt/cloudera/parcel-repo/wget http://archive.cloudera.com/cdh5/parcels/5.13.1/manifest.json --directory-prefix=/opt/cloudera/parcel-repo/# 修改数据 *.sha1 mv *.sha, 不然会出现如下错误 (对于此 Cloudera Manager 版本 (version) 太新的 CDH 版本不会显示)mv /opt/cloudera/parcel-repo/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha* 启动遇到的问题对于此 Cloudera Manager 版本 (5.4.7) 太新的 CDH 版本不会显示问题描述:Versions of CDH that are too new for this version of Cloudera Manager (5.4.7) will not be shown.问题定位:PARCELS 表 fileName=CDH-5.4.7-1.cdh5.4.7.p0.3-el6.parcel 的 hash 值为 null,判断为parcel文件问题或scm数据库生成干扰问题解决思路:判断为/ opt/cloudera/parcel-repo/ 目录内的本地parcel应该在scm数据库初始化结束后再放入问题解决:停止server > 重置scm数据库 > 启动server > 复制 parcel 到 /opt/cloudera/parcel-repo/ 目录
二、安装 Cloudera Agent
- 请参照 安装流程 4
1. 登录 cloudera-scm 账号# 配置源 Cloudera yum 源2. 下载安装组件a) 安装 JAVA# 同如上步骤b) 安装服务sudo yum install cloudera-manager-daemonssudo yum install cloudera-manager-agent2. 修改配置文件sudo vim /etc/cloudera-scm-agent/config.ini# 改成这里 server 的主机地址server_host=manager13. 监控启动服务# 监控日志tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log# 给与目录权限sudo chown cloudera-scm:cloudera-scm -R /var/lib/cloudera-scm-agentsudo chown cloudera-scm:cloudera-scm -R /var/run/cloudera-scm-agent# 创建 /opt/cloudera/parcels 目录mkdir -p /opt/clouderasudo chown cloudera-scm:cloudera-scm -R /opt/cloudera# 启动 agent 服务, 开启端口sudo service cloudera-scm-agent restart# 查看运行状态service cloudera-scm-agent status# 查看监控端口netstat -tunlp9000 : HTTP (调试)端口19001 : supervisord 状态和控制端口;用于 Agent 和 supervisord 之间的通信;仅内部打开(本地主机上)*. 注册可能遇到的问题1. 时间与 cm 相差太多导致无法 agent 无法向 cm 注册2. host 与 ip 设置错误查看主机与 host 与 ippython -c 'import socket; print socket.getfqdn(), socket.gethostbyname(socket.getfqdn())'hostname 环境变量主机名不同(会导致 agent 注册到 manager, hostname 不对)3. Failed to connect to previous supervisor.一般这种情况不用处理, 只要能 agent 能注册到 server, 并且 agent 在 server 是绿颜色的心态即可参照安装步骤 44. cdh No extant cgroups 错误/var/run/cloudera-scm-agent 和 /var/lib/cloudera-scm-agent 目录权限sudo chown cloudera-scm:cloudera-scm -R /var/lib/cloudera-scm-agentsudo chown cloudera-scm:cloudera-scm -R /var/run/cloudera-scm-agent5. Error, CM server guid updated, expected 错误描述, CM 重新安装后 ID 错误rm /var/lib/cloudera-scm-agent/cm_guid , 主要原因是因为 .parcel.sha1 没有重名为 .parcel.sha6. ERROR Failed to connect to newly launched supervisor. Agent will exitpgrep -f supervisord , 然后 Kill 掉 , 主要是更换版本的时候有服务没有杀干净*. 排查思路1) 检查 hostname、/etc/hosts、 主机 IP 是否正确2) 是否关闭防火墙和 Selinux, 当前服务器和目标服务器3) Agent 本身配置问题/etc/cloudera-scm-agent/config.ini4) 检查各个节点的系统日期
三、安装 CDH 组件
- 配置源 CDH 源
*. 登录 hadoop 用户sudo wget http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo --directory-prefi=/etc/yum.repos.dPS: 若要安装指定的版本, 修改如下参数sudo vim /etc/yum.repos.d/cloudera-cdh5.repo# 修改 baseurl 属性中的 url (url 可以指定版本)baseurl=https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.9.0/yum update
1. 安装 Flume
- 具体说明转 flume 文档
sudo yum install flume-ng-agent
四、授权数据库服务
-- hiveCREATE DATABASE `hive` /*!40100 DEFAULT CHARACTER SET utf8 */;GRANT ALL PRIVILEGES ON hive.* TO 'hadoop'@'%' WITH GRANT OPTION;flush privileges;-- Hive 的元数据库是# 找到对应版本的, 复制 Hive 版本的 Sql 文件, 放在 MySQL 客户端执行即可, 出现问题解决问题, 直到全部创建完成即可$HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-1.1.0.mysql.sql (与 Hive 版本相同)$HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-1.1.0-to-1.1.0-cdh5.12.0.mysql.sql (与 Hive 版本相同)# CDHdatanucleus.autoCreateSchema=falsedatanucleus.metadata.validate=falsehive.metastore.schema.verification=false# 启用直接 SQLhive.metastore.try.direct.sql=true-- hueCREATE DATABASE `hue` /*!40100 DEFAULT CHARACTER SET utf8 */;GRANT ALL PRIVILEGES ON hue.* TO 'hadoop'@'%' WITH GRANT OPTION;flush privileges;-- oozieCREATE DATABASE `oozie` /*!40100 DEFAULT CHARACTER SET utf8 */;GRANT ALL PRIVILEGES ON oozie.* TO 'hadoop'@'%' WITH GRANT OPTION;flush privileges;
五、重新安装,删除所有组件
# 删除组件sudo yum remove cloudera-manager-daemonssudo yum remove cloudera-manager-serversudo yum remove cloudera-manager-server-db-2sudo yum remove cloudera-manager-agent# serversudo service cloudera-scm-server stopsudo rm -rf /var/lib/cloudera-manager-serversudo rm -rf /var/run/cloudera-manager-server# agentsudo service cloudera-scm-agent stopsudo rm -rf /var/lib/cloudera-scm-agentsudo rm -rf /var/run/cloudera-scm-agentsudo rm -rf /run/cloudera-scm-agent
* 常见问题
1. oozie 找不到 mysql-connector.jar
把 mysql-connector.jar 复制到 /var/lib/oozie 中.cp /path/mysql-connector-java-5.1.40.jar /var/lib/oozie 中# 添加 Jar 到 hivesudo cp /usr/share/java/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.40.jar# 添加 Jar 到 Ooziesudo cp /usr/share/java/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/oozie/lib/mysql-connector-java-5.1.40.jarsudo cp /usr/share/java/mysql-connector-java-5.1.40.jar /var/lib/oozie/
