基础环境要求
OS: CENTOS 7.1及以上版本(推荐最小化安装,不然部分包版本会有冲突)
JAVA: oracle JDK 1.7(不要使用OPENJDK)
MYSQL: 5.6.12以上
需使用的安装文件:
CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel CDH离线安装文件
CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha 安装文件效验码
cloudera-manager-centos7-cm5.8.1_x86_64.tar.gz CDH引导安装文件
jdk-7u79-linux-x64.rpm java环境安装包
mysql-connector-java.jar mysql数据库java驱动程序
准备工作
以下操作如无特别说明都应在root用户下进行
创建外部数据库:
CDH依赖于关系数据库存储配置等信息,需建立的库有(只需建立空库即可,schema的初始化由cdh完成):
- hive(hivemeta数据库,必须使用latin1编码,否则初始化库时为报错,其余数据库均使用utf-8编码)
- hue(hue使用)
- oozie(oozie使用)
- cloudera-scm-db(cdh配置数据库)
HOSTS配置
为集群中所有节点设置合适的主机名(需永久设置,编辑/etc/hostname文件),编辑每个节点的
/etc/hosts文件,将集群中所有节点的hostname与ip地址映射配置进去并重启网络服务。在后续配置中任何涉及
网络位置的地方都应使用hostname进行配置而不是使用IP。可能涉及的bash命令为:
vim /etc/hostname
vim /etc/hosts
systemctl restart network
打通SSH
为了让CDH脚本可以通过SSH在每个节点执行,需要设置主从节点的SSH权限。首先在每个节点都执行:
ssh-keygen -t rsa
然后在主节点执行以下命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用scp将文件复制到所有datenode节点:
scp ~/.ssh/authorized_keys root@datanode1:~/.ssh/
关闭防火墙
防火墙会引起CDH各个组件通讯异常,最好是直接关闭:
systemctl stop firewalld(临时关闭)
systemctl disable firewalld (重启后生效)
安装NTP服务
集群中的各个节点需要保持时间同步,如果时间差异较大会导致各种问题。
NTP的配置方式较复杂,请自行参考相关文档。
其它:
如果系统是最小化安装,一些必要的组件需要手工安装,如PSTREE等
yum -y install psmisc
yum install libxslt.x86_64
CDH如果连接mysql数据库需要配置相关的数据库驱动,将驱动包(mysql-connector-java.jar,名字不能改)
放到/usr/share/java目录中(集群每个节点都需要)
安装CDH
1.在主节点上上传cloudera-manager-centos7-cm5.8.1_x86_64.tar.gz安装包,以下操作如无特别说明都是在主节点进行。
2.创建主目录,并解压安装文件:
mkdir /opt/cloudera-manager
cd /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
3.创建必要的目录:
mkdir -p /opt/cloudera/parcel-repo
mkdir -p /opt/cloudera/parcels
mkdir /var/lib/cloudera-scm-server
4.上传离线安装文件:
将CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel和CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha文件上传至
主节点的/opt/cloudera/parcel-repo目录中,如果不上传安装时默认会从cloudera的服务器上下载,网络如果
不好所需时间很长,建议使用离线文件的方式。
5.配置外部数据库(mysql)
CDH的所有配置需要依赖于外部数据库进行存储,数据源使用CDH提供的脚本进行配置,命令为:
/opt/cloudera-manager/cm-5.8.1/share/cmf/schema/scm_prepare_database.sh mysql --host {数据库IP} --scm-host {当前机器的hostname} {数据库名,需提前创建} {数据库用户名} {数据库用户密码}
6.修改agent的配置文件:
#修改server_host和server_port,server_host需要填写主节点的hostname
vim /opt/cloudera-manager/cm-5.8.1/etc/cloudera-scm-agent/config.ini
7.复制工作目录到每个datanode(在主节点执行,需要执行N次,N为datanode个数,注意替换命令的主机名):
scp -r /opt/cloudera-manager/cm-5.8.1 root@datanode1:/opt/cloudera-manager/cm-5.8.1
8.创建运行用户(在每个节点都要执行):
useradd --system --home=/opt/cloudera-manager/cm-5.8.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
启动&初始化设置
启动
启动主节点
/opt/cloudera-manager/cm-5.8.1/etc/init.d/cloudera-scm-server start
在每个datanode上启动代理程序:
mkdir /opt/cloudera-manager/cm-5.8.1/run/cloudera-scm-agent
/opt/cloudera-manager/cm-5.8.1/etc/init.d/cloudera-scm-agent start
server和agent的启动日志都存放在/opt/cloudera-manager/cm-5.8.1/log,通过查看日志判断是否都已成功启动
登录控制台
如果已成功启动服务,则可以通过http://{master_host}:7180/cmf/home访问CDH的控制台,默认用户名/密码为admin/admin
设置安装
1.首次登录成功后会选择安装版本,选择免费版即可;
2.选择集群节点,如果agent都成功启动,则此处会看到所有datanode节点,如果数目不对,则查看agent日志看是否成功连接server。
3.选择安装包(Parcel,注意版本号,此处应选择CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel),如果上面设置无误的话,此处直接下一步即可;
4.开始安装和分发,如果使用了离线安装包,此处仅进行本地分发,否则要在线下载1.4G左右的文件;
5.主机正确性检查,如果有警告,按照提示的方式处理即可;
6.选择要在集群上安装的服务,选择自定义服务,然后勾选需要的服务进行安装即可
(HDFS,HIVE,IMPALA,HUE,SPARK,YARN,ZOOKEEPER);
7.配置外部数据库,根据准备工作中建立的数据库信息,配置相关主件的外部数据库,测试连接通过即OK;
8.启动所有服务,安装成功后系统会默认启动所有的服务及其依赖服务;
常见问题
访问HDFS文件Permission deny:
- 将HDFS的属性:dfs.permissions设置为false
Hive Metastore Canary报错:
- 确保HIVE对应的关系数据库是latin1编码;
- 如果关系数据库表未被正确初始化,将属性datanucleus.autoCreateSchema设置为true,然后重启hivemeta-server
HDFS副本不足的块:
- 修改hdfs的dfs.replication参数,其值需等于datanode的数量;
- 在主节点上执行hadoop fs -setrep n / (n为dfs.replication设置的值)
执行SQL时timestamp类型的字段时区不正确:
- 登录CDH控制台,在Impala Daemon 命令行参数中加入(避免时区问题)
-use_local_tz_for_unix_timestamp_conversions=true
-convert_legacy_hive_parquet_utc_timestamps=true
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15722.html