ubuntu18 搭建cdh6.3.2离线安装

1 前期规划选型

如果是生产环境,建议从以下几方面考虑集群的规划

1.1 硬件确定

可以选用服务器、普通PC、还是云服务。
一是项目实际需求,二还要结合预算情况、现有的条件来选择。

1.2 集群规模确定

从数据量、计算性能要求、可靠稳定性、容错性等方面考虑。

数据量现有数据量(如现有历史数据)和增量数据(日增、月增数据,一般需要考虑满足1-2年的容量,后续再扩容);数据的副本数(Hadoop默认3副本,乘3倍);数据清洗、融合加工处理、共享等过程产生的,中间表、指标表、主题/专题库等表(乘3-5倍)。注意:HDFS上不同格式的表压缩比也不一样,如文本txt表不压缩,orc有一定的压缩比(1:3),HBase(看是否采用压缩),ES看索引是否有膨胀;储存的冗余量 + 20-30%;
如:现有各种形式的数据量总共30TB,月增数据1TB(算未来24个月),全部都要放到HDFS中存储,默认3副本,ETL数据处理全部用txt表(共享服务HBase、ES等混用)就按照1:1的压缩比储存,算上ODS、清洗融合加工中间表、指标表、主题库/专题课等取4倍。如下计算:
(30 + 1* 24) * 3 * 4 * 1.25 = 810 TB
需要总的磁盘空间810TB,如果是10个数据储存节点,那么每个节点至少要大于81TB的空间,可以挂 9块* 10TB。计算
根据使用到的大数据组件服务来预估
如基于内存的服务对内存的要求,对磁盘IO使用比较频繁的是否考虑多块盘,清洗融合加工频繁的对cpu的要求等等可靠稳定性
集群规模大的,需要区分管理节点、数据储存和计算节点(或者叫工作节点)。容错性
如果考虑对各个服务或者某些服务做HA的,需要再考虑加节点资源。
如果考虑做灾备集群的,需要再加1倍的资源。
此外,还要考虑网络,是否是双网口?千兆还是万兆网络?

从上面几方面确定集群规模,节点数、每个节点的物理配置(CPU、Memery、磁盘空间)、集群网络等

1.3 软件版本确定

操作系统JDK版本CM/CDH版本(包含hadoop、spark等版本是否满足实际需求)元数据库(如MySQL)

2 安装前准备

2.1 修改hosts

CDH 需要 IPv4。不支持 IPv6。
sudo hostnamectl set-hostname douluo01
sudo hostnamectl set-hostname douluo02
sudo hostnamectl set-hostname douluo03

2.2 配置节点的IP-主机名映射信息

douluo01:~$ cat /etc/hosts
192.168.88.150 douluo01 douluo01.devopstack.com
192.168.88.151 douluo02 douluo02.devopstack.com
192.168.88.152 douluo03 douluo03.devopstack.com

2.3 禁用防火墙

sudo service ufw stop

2.4 配置免密登录(所有节点)

生成ssh key:
ssh-keygen -t rsa (每个节点执行)
douluo01上操作互信配置:
ssh-copy-id -i ~/.ssh/id_rsa.pub douluo02
ssh-copy-id -i ~/.ssh/id_rsa.pub douluo03
douluo02、douluo03上同上面操作类似,完成互信配置。

2.5 设置swap空间、关闭大页面压缩(所有节点)——性能考虑


1.swap空间设置 swappiness=0:表示最大限度使用物理內存,之后才是swap空间; swappiness=100:表示积极使用swap分区,並且把內存上的数据及时转移到swap空间; 如果是混合服务器,不建议完全禁用swap,可以尝试降低swappiness。 Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10(也有说改为0的,Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。)。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。 echo 10 > /proc/sys/vm/swappiness 这样操作重启机器还是还原,要永久改变: echo "vm.swappiness = 10" >> /etc/sysctl.conf 2.已启用透明大页面压缩,可能会导致重大性能问题,建议禁用此設置。 调整: echo never |sudo tee /sys/kernel/mm/transparent_hugepage/defrag echo never |sudo tee /sys/kernel/mm/transparent_hugepage/enabled

2.6 修改最大打开文件数

echo "ulimit -SHn 65535" >> /etc/rc.local
echo "*           soft  nofile       65535" >>/etc/security/limits.conf
echo "*           hard  nofile       65535" >>/etc/security/limits.conf
echo "*           soft  nproc       65535" >>/etc/security/limits.conf
echo "*           hard  nproc       65535" >>/etc/security/limits.conf

2.7 NTP服务安装和设置

安装NTP(所有节点)
yum -y install ntp

    Manager节点:
    设置指向NTP服务器,如果局域网内有时间服务器,可以指向时间服务器(manager节点-cdh01)
    vi /etc/ntp.conf
    注释掉之前的server,然后添加以下NTP服务器
    server http://ntp.aliyun.com
        其他节点:
    vi /etc/ntp.conf
    集群的其他节点指向第一个(cdh02、cdh03)
    server cdh01

重新启动 ntp 服务和设置开机自启(所有节点):
service ntpd restart
systemctl enable ntpd.service

查看和测试:
ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
ntpq -p #查看当前同步的时间服务器
ntpstat #查看状态定时同步crontab
crontab -e #可以不用设置
10 * * * * /usr/sbin/ntpdate 192.168.88.150

2.8 配置sudo免密

sudo visudo 

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
devopstack ALL=(ALL:ALL) NOPASSWD:ALL

3 安装配置cm

CDH安装包下载 CDH官方的网站已经无法直接下载安装包了(需要账号密码),需要相关软件包的可以联系我

3.1 创建 Ubuntu 的 repository

sudo apt-get install dpkg-dev
sudo apt-get install apache2
service apache2 start
sudo  systemctl enable apache2
cd /var/www/html/
sudo cp -r p /var/www/html/ 
sudo chmod -R 777 html/

将 CM 的源加入到 source 文件
cat /etc/apt/sources.list.d/cloudera-manager.list 
# Cloudera Manager 6.3.1
deb [arch=amd64] http://192.168.88.150/p/cm6/6.3.1/ubuntu1804/apt bionic-cm6.3.1 contrib

sudo apt-key add /var/www/html/p/cm6/6.3.1/ubuntu1804/apt/archive.key
sudo apt-get update

3.2 安装oracle-j2sdk1.8(cdh01)

sudo apt-get install oracle-j2sdk1.8

3.3 安装cloudera-manager和agent(cdh01)

sudo apt-get install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

3.4 安装 MYSQL 数据库以及 jdbc

3.5 创建cm相关数据库


\#创建数据库并授权 sudo mysql -h27.0.0.1 -uroot -p create database amon default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on amon.* to 'amon'@'localhost' identified by 'amon'; grant all privileges on amon.* to 'amon'@'%' identified by 'amon'; create database rman default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on rman.* to 'rman'@'localhost' identified by 'rman'; grant all privileges on rman.* to 'rman'@'%' identified by 'rman'; create database metastore default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on metastore.* to 'hive'@'localhost' identified by 'hive'; grant all privileges on metastore.* to 'hive'@'%' identified by 'hive'; create database sentry default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on sentry.* to 'sentry'@'localhost' identified by 'sentry'; grant all privileges on sentry.* to 'sentry'@'%' identified by 'sentry'; create database nav default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on nav.* to 'nav'@'localhost' identified by 'nav'; grant all privileges on nav.* to 'nav'@'%' identified by 'nav'; create database navms default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on navms.* to 'navms'@'localhost' identified by 'navms'; grant all privileges on navms.* to 'navms'@'%' identified by 'navms'; create database scm default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on scm.* to 'scm'@'localhost' identified by 'scm'; grant all privileges on scm.* to 'scm'@'%' identified by 'scm'; create database hue default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on hue.* to 'hue'@'localhost' identified by 'hue'; grant all privileges on hue.* to 'hue'@'%' identified by 'hue'; create database oozie default character set utf8 DEFAULT COLLATE utf8_general_ci; grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie'; grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';

3.6 设置Cloudera Manager数据库


sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql amon amon amon sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql rman rman rman sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql hue hue hue sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql metastore hive hive sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql sentry sentry sentry sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql nav nav nav sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql navms navms navms sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql oozie oozie oozie

3.7 启动cm

#启动cloudera-scm-server
sudo systemctl start cloudera-scm-server
sudo systemctl enable cloudera-scm-server

#查看启动日志,等待Jetty启动完成
sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

3.8 浏览器访问安装

浏览器输入http://192.168.88.150:7180/ 用户/密码:admin/admin 按照向导搭建集群。 如果搭建集群遇到Could not find a HOST_MONITORING nozzle from SCM错误,则/etc/hosts添加127.0.0.1 localhost
ubuntu18 搭建cdh6.3.2离线安装

添加主机

ubuntu18 搭建cdh6.3.2离线安装

使用 Parcels(建议)

这个远程Parcel储存库URL就保留一个,用本地的那个parcel,修改成http://192.168.88.150/p/cdh6/6.3.2/parcels/就可以了,不要连CDH官网的了地址。
ubuntu18 搭建cdh6.3.2离线安装

选择安装jdk

ubuntu18 搭建cdh6.3.2离线安装

提供 SSH 登录凭据

ubuntu18 搭建cdh6.3.2离线安装

安装agent,安装完点击继续

Parcel 包安装,安装完后点击“继续”

进入cm界面安装服务

安装hdfs

ubuntu18 搭建cdh6.3.2离线安装

安装zookeeper

安装yarn

ubuntu18 搭建cdh6.3.2离线安装

安装hbase

ubuntu18 搭建cdh6.3.2离线安装

安装Cloudera Management Service 服务

ubuntu18 搭建cdh6.3.2离线安装ubuntu18 搭建cdh6.3.2离线安装

4 最终的cm界面

ubuntu18 搭建cdh6.3.2离线安装
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: