数据平台架构选型:
     一般常见大数据使用场景分别有几种:离线批处理,实时流处理,olap多维度仓储统计分析,Ad hoc即席探索分析;相应需求可以选择相应架构做处理,这里可以参考原先我们在EMR上做的不同使用场景的框架选型或优化

     对于特定场景或业务可据需选择相应架构做对应架构优化,如互联网公司业务数据少行为数据也少,但却需要快速利用数据技术提升业务或运营效率或是优化体验,则需要一些相对轻量的mpp架构做基础数仓处理和数据积累用spark等计算引擎快速的做算法模型来优化业务运营效率或驱动产品业务发展;

     而对于一些传统企业可能些数据积累,更需要的是从整个集团和上下游开精细化管理这些业务和资产,那他们更适合使用离线批处理加OLAP的架构 ;

     而经过一段时间的发展,发现各种需求基本都会慢慢都有,而一些大公司的发展也可以验证这个流程和趋势,如阿里的支付宝和淘宝业务,据车品觉的相关书籍和经验分享,他们也是从基础统计报表开始,后来从表哥表弟(阿里内部笑称)变成运营分析的取数工程师(运营分析的附属),在到数据分析和数据工程的分工协助,在到各业务线各产品各部门都需要大数据而建立了多重烟筒,在到数据部门独立使用统一一套数据平台,把公共基础数据组件和业务产品隔离开,再做统一入口出口让各端自己使用对接和获取,再在后边封装通用需求产品服务于三方企业和开发者,而这一过过程 的发展的理解可以帮我们少走很多弯路,如开始我们需要一些简单直接能解决问题架构后续虽需求扩展,维护升级标准规范成了问题,随业务 的持续发展各部门产品业务线都需要这么一套,而搭这一套平台是非常耗资源 和时间的,且搭了多套后,数据 的同步、分享、交换,技术标准对接等又是一问题,而合并统一了数据平台后,运维,监控,升级,规范,数据管理、治理,帐户安全,角色隔离等一序列问题又急需解决,因此市面开始出现一些通用数据处理DMP平台产品或通用解决方案开始诞生,而价格成本和效果往往斐然。因此我们需要权衡利弊,即吸取前辈的经验少走弯路,又相对选择一些开源成熟满足以上各种需求的平台架构,因此我们现在市面比较认可的cdh就是我们的首先。下面是我们从几个层面阐述下这个架构的内容:

一、从数据处理流程角度看数据平台:

大数据架构设计规范 大数据架构选型_大数据

二、数据平台内部基础处理引擎大都一样,hadoop、spark lambda架构,同时支持些常用mpp型轻量仓库技术如impala、presto、gp等,而cdh只是在现行流行基础架构做了些常见的周边扩展功能如集群升级维护监控多帐户安全和在线界面操作等工作:

大数据架构设计规范 大数据架构选型_大数据架构设计规范_02

数据平台优缺点简述、要求及规划部署

CDH简述:

1、Apache Hadoop 不足之处

  • 版本管理混乱
  • 部署过程繁琐
  • 扩容扩展管理升级过程复杂
  • 安全性低,多据于root权限在线连调

  • 兼容性差、操作复杂,排错难

  • 运维监控,多帐号管理,工作平台简单或均无

2、Hadoop 发行版

  • Apache Hadoop
  • Cloudera’s Distribution Including Apache Hadoop(CDH)
  • Hortonworks Data Platform (HDP)
  • MapR
  • EMR
  • …

3、CDH能解决哪些问题

  • 1000台服务器的集群,最少要花费多长时间来搭建好Hadoop集群,包括Hive、Hbase、Flume、Kafka、Spark等等
  • 只给你一天时间,完成以上工作?
  • 对于以上集群进行hadoop版本升级,你会选择什么升级方案,最少要花费多长时间?
  • 新版本的Hadoop,与Hive、Hbase、Flume、Kafka、Spark等等兼容?

4、CDH简介 

  • Cloudera's Distribution, including Apache Hadoop
  • 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建
  • 提供了Hadoop的核心
    – 可扩展存储
    – 分布式计算
  • 基于Web的用户界面

    

5、CDH的优点  

  • 版本划分清晰
  • 版本更新速度快
  • 支持Kerberos安全认证
  • 文档清晰
  • 支持多种安装方式(Cloudera Manager方式)

6、CDH安装方式

  • Cloudera Manager
  • Yum
  • Rpm
  • Tarball

具体硬件及安装库与版本兼容要求:

基本最新稳定版本参考建议和注意事项

1.centos7.3/7.4/7.5+ext4(kudu需要)+默认PostgreSQL或mysql5.5(utf8编码MySQL 5.6和5.7,您必须安装MySQL-shared-compat或MySQL共享软件包,Cloudera Manager Agent软件包安装所必需)+jdk1.8u162/1.8u144/1.8u131/1.8u121/1.8u111/1.8u102

2.CDH 5.15.0+CM5.15.X+Kudu、hive、hbase、sqoop1、zk、oozie、hue等其它hadoop组件cdh会做自动集成稳定兼容版匹配安装

3.spark2.2+kfaka+flume ng(可后期增加)

4.cdh安装前区准备:
 关闭防火墙和SELinux、ntp时间同步、host ip或dns配置、ssh免密码登录、删除openjdk、安装jdk与mysql、下载相关cm,cdh包、上传mysql驱动、pscp和scala2.11包、创建cloudera-scm用户、规划各节点组件部署及资源配置:

master做standby,work节点不管是存储空间cpu内存等硬件配置还是软件部署目录及相关配置尽量保持一致,注意:Journalnode和ZooKeeper(启动)保持奇数个,最少不少于 3 个节点,参考组件规划如下(后期持续更新到wiki):

ip      hostname    namenode    datanode    resourcemanager joumalnode    zookeeper sqoop    hive/hbase    mysql    spark    flume    kafka    hue/zeppelin/mpp...
192.168.53.230 master            T                    F                    T                        T                    T            T            T        T            T        T            T            T
192.168.53.231 work01           T                    T                    T                        T                    T            F            F        F             T        F            T            F
192.168.53.232 work02           F                    T                    F                        T                    T             F            F        F            T         F            T            F
192.168.53.233 work03           F                    T                    F                        F                    F              F            F        F            T         F            T            F
有必要的话对相应节点做raid:
由于hadoop有数据副本机制,默认为3个副本,因此datanode节点,系统盘做raid 1,数据盘做raid 0;namenode做raid 5,不管系统盘还是数据盘,都可以直接更换,保证数据不丢失
系统参数和内核优(下面配置可能是必须的,否则cdh安装报错):
 echo 0 > /proc/sys/vm/swappiness # 将该环境变量临时设置为0编辑 vim/etc/sysctl.conf 加:vm.swappiness=0
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
编辑 vim /etc/rc.local:
文件添加内容:
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
 
修改默认语言为英文:
vi /etc/sysconfig/i18n 
LANG=”en_US.UTF-8”
 
修改用户句柄限制:
ssh $i ‘cat >> /etc/security/limits.conf << EOF 
hadoop soft nofile 65000 
hadoop hard nofile 65000 
hadoop soft nproc 401408 
hadoop hard nproc 401408 
* soft nofile 65000 
* hard nofile 65000 
* soft nproc 401408 
* hard nproc 401408 
EOF’
 
格式化硬盘(需批量执行,此处脚本有待升级):
ssh $i 
‘parted /dev/sdb mklabel gpt 
yes 
parted /dev/sdb mkpart primary 0% 100% 
mkfs.ext4 -T largefile /dev/sdb1
修改/etc/fstab文件:
ssh $i ‘cat >> /etc/fstab << EOF 
/dev/sdb1 /data01 ext4 defaults,noatime 0 0
关闭swap交换分区:
ssh $i ‘swapoff -a’ 
ssh $i ‘sysctl -w vm.swappiness=0’ 
ssh $i ‘echo ‘vm.swappiness=0’ >> /etc/sysctl.conf’
关闭大内存页面:
ssh $i ‘cat >> /sys/kernel/mm/transparent_hugepage/defrag << EOF 
never 
EOF
ssh $i ‘cat >> /etc/rc.local << EOF 
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag 
EOF

5.其它参照官方建议配置安装:

硬件需求指南

CDH 5和Cloudera Manager 5要求和支持的版本 Cloudera Manager 5.15.0

Cloudera Manager 5发行说明

Cloudera安装

Cloudera升级

类型

位置

回购文件

Tarball文件

yum RHEL / CentOS / Oracle 7

https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.0/

https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

 

 

离线CM界面安装CM5和CDH-5.14.2集群安装:

离线CM界面安装CM5和CDH5.13完全教程:

CDH5 Hadoop集群完全离线安装步骤总结:

CDH集群安装&测试总结:

CDH大数据平台实施经验总结:

离线脚本安装过程参考博文: