从数据量、计算性能要求、可靠稳定性、容错性等方面考虑。
数据量现有数据量(如现有历史数据)和增量数据(日增、月增数据,一般需要考虑满足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倍的资源。
此外,还要考虑网络,是否是双网口?千兆还是万兆网络?
Cloudera Manager架构从上面几方面确定集群规模,节点数、每个节点的物理配置(CPU、Memery、磁盘空间)、集群网络等
所需文件列表 cmhttps://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_63_packaging.html#cdh_630_packaging
- cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
- cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
- cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
- cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
- enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
- oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
- CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
- manifest.json
- mysql-connector-java-5.1.46.jar
hostnamectl set-hostname hdc1 su -关闭防火墙(所有节点)
systemctl stop firewalld systemctl status firewalld Systemctl disable firewalld //禁止开机自启关闭selinux(所有节点)
vim /etc/sysconfig/selinux SELINUX=disabled setenforce 0修改hosts(所有节点)
vim /etc/hosts 172.16.8.2 hdc1 172.16.8.3 hdc2 172.16.8.4 hdc3免密登录(所有节点)
#生成秘钥(三次直接回车) ssh-keygen -t rsa #发送公钥:(第一次发送,要输入密码,发送前/后可以看看.ssh目录有没有公钥) ssh-copy-id hdc1(目标机子) ssh-copy-id hdc2 ssh-copy-id hdc3ntpd服务(master节点)
hdc1安装ntp服务器
yum -y install ntp检查ntp服务器
rpm -q ntp ntp-4.2.6p5-29.el7.centos.2.x86_64修改配置文件
vim /etc/ntp.conf driftfile /var/lib/ntp/drift restrict 127.0.0.1 restrict ::1 #允许更新的IP地址段能同步时间 restrict 172.16.8.2 mask 255.255.255.0 nomodify notrap #如果网络时间同步服务器不可以用,就以本地时间为标准向客户端提供服务 server 127.127.1.0 fudge 127.127.1.0 stratum 8 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor重启ntp服务
systemctl restart ntpd 启动 systemctl enable ntpd 开机自启 systemctl status ntpd 查看服务状态ntp查验
ntpstat synchronised to local net (127.127.1.0) at stratum 9 time correct to within 3948 ms polling server every 64 s查看是否同步
ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *LOCAL(0) .LOCL. 8 l 18 64 377 0.000 0.000 0.000子节点连接主节点服务
下载ntp服务 (node节点)
yum -y install ntp同步master时间服务
vim /etc/ntp.conf driftfile /var/lib/ntp/drift restrict 127.0.0.1 restrict ::1 #允许更新的IP地址段能同步时间 restrict hdc1 mask 255.255.255.0 nomodify notrap #如果网络时间同步服务器不可以用,就以本地时间为标准向客户端提供服务 server hdc1 fudge hdc1 stratum 8 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor测试时间同步是否生效
date -s '2020-10-12 12:12:12' Mon Oct 12 12:12:12 CST 2020 ntpdate -u 172.16.8.2 3 Jul 14:27:18 ntpdate[25877]: step time server 172.16.8.2 offset 22817697.067844 sec关闭swap(所有节点)
sysctl vm.swappiness=1 echo 1 > /proc/sys/vm/swappiness vim /etc/sysctl.conf vm.swappiness=1更改文件句柄数(所有节点)
vim /etc/security/limits.conf --- * soft nofile 65535 * hard nofile 1029345 * soft nproc unlimited * hard nproc unlimited * soft memlock unlimited * hard memlock unlimited配置yum源(内网需求)(未梳理)
上传本地yum源文件到服务器主节点 vi /etc/yum.repos.d/centos7.3.repo [cehtos7] name=centos7 baseurl=file:///home/cdrom gpgkey=file:///home/cdrom/RPM-GPG-KEY-CentOS-7 enabled=1 gpgcheck=0 安装http服务 yum -y install httpd systemctl start httpd chkconfig httpd on 将本地yum源发布到http服务 mv /home/cdrom/* /var/www/html/centos7 将之前的本地yum源修改为网络版 vi /etc/yum.repos.d/centos7.3.repo [cehtos7] name=centos7 baseurl=http://yum源ip/centos7 gpgkey=http://yum源ip/centos7/RPM-GPG-KEY-CentOS-7 enabled=1 gpgcheck=0 将/etc/yum.repos.d/centos7.3.repo文件分发到其余的节点 scp /etc/yum.repos.d/centos7.3.repo 节点ip:/etc/yum.repos.d/ 所有节点运行 yum clean all yum makecache关闭透明大界面(所有节点)
启用透明大页面压缩,可能会导致重大性能问题,建议禁用此设置
echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled安装jdk(所有节点)
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm vim /etc/profile #添加一下内容 export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar PATH=$PATH:$HOME/bin:$JAVA_HOME/bin #配置生效 source /etc/profile java -version java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.8.0_11-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)上传JDBC依赖包(所有节点)
mkdir -p /usr/share/java cp mysql-connector-java-8.0.18.jar /usr/share/java/mysql-connector-java.jar安装httpd服务(master节点)
yum install httpd -y systemctl start httpd systemctl enable httpd配置Cloudera Manager安装包yum源
mkdir -p /var/www/html/cloudera-repos/cm6 cp /data/cdh/cloudera-manager/* /var/www/html/cloudera-repos/cm6/ - cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm - cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm - cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm - cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm - enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm yum install -y createrepo createrepo . #执行后在浏览器访问 http://172.16.8.2/cloudera-repos/cm6/创建repo文件(所有节点)
vim /etc/yum.repos.d/cloudera-manager.repo [cloudera-manager] name=Cloudera Manager 6.3.1 baseurl=http://hdc1/cloudera-repos/cm6 gpgcheck=0 enabled=1 #清理并缓存(所有节点):更新yum源 yum clean all yum makecache yum repolist安装cm
#master执行 yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server 执行后会在/opt下生成cloudera目录 [root@hdc1 cloudera]# ls cm cm-agent csd parcel-repo [root@hdc1 cloudera]# pwd /opt/cloudera上传cdh文件至cm的parcel-repo文件下
cp /data/cdh/cdh/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/ cp /data/cdh/cdh/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/ cp /data/cdh/cdh/manifest.json /opt/cloudera/parcel-repo/创建mysql库(mysql使用的外部mysql,此处不做过多介绍)
CREATE DATAbase scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATAbase oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; flush privileges;环境问题
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse子节点只安装agent
yum install cloudera-manager-daemons cloudera-manager-agent -y修改master数据库配置
vim /etc/cloudera-scm-server/db.properties # 指定数据库类型为mysql com.cloudera.cmf.db.type=mysql # 指定数据库的地址以及端口号 com.cloudera.cmf.db.host=172.16.8.201:31234 # 指定CM数据库的名称 com.cloudera.cmf.db.name=scm # 指定CM用户的用户名 com.cloudera.cmf.db.user=root # 指定CM用户的密码 com.cloudera.cmf.db.password=1qaz@WSX修改agent配置(所有节点)
vim /etc/cloudera-scm-agent/config.ini #修改第15行为master节点地址 server_host=hdc1修改以上配置后启动server(启动时间比较慢大概五六分钟)
systemctl start cloudera-scm-server systemctl status cloudera-scm-server systemctl restart cloudera-scm-server systemctl enable cloudera-scm-server systemctl stop cloudera-scm-server #查看日志 tail -F /var/log/cloudera-scm-server/cloudera-scm-server.log
查看7182端口是否被占用
netstat -anp | grep 7180
所有节点启动agent
systemctl restart cloudera-scm-agent systemctl status cloudera-scm-agent systemctl enable cloudera-scm-agent systemctl stop cloudera-scm-agent tail -F /var/log/cloudera-scm-agent/cloudera-scm-agent.log校验parcel文件
sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
启动后 访问地址 masterip:7180 admin/admin
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)