首页 文章 精选 留言 我的

精选列表

搜索[独立开发者],共10000篇文章
优秀的个人博客,低调大师

3台阿里云ECS安装CDH大数据集群过程(CentOS7.4+独立数据盘)

0x、环境说明 直接购买3台阿里云的ECS(配置4C/32G/30G系统盘+1T数据盘) 购买时先在阿里云生成一个密钥对,把.pem私钥保存到本地,然后购买时选择使用密钥进行无密码SSH登陆,注意统一使用该密钥对进行镜像部署。 服务开通后,进行如下操作。 一、配置hostname和hosts 1. 三台机器分别设置hostname为(需要重启ECS): master.bd.cn slave1.bd.cn slave2.bd.cn 2. 然后三台的/etc/hosts统一配置如下映射: <master.bd.cn的内网IP> master.bd.cn <slave1.bd.cn的内网IP> slave1.bd.cn <slave2.bd.cn的内网IP> slave2.bd.cn 二、配置三台ECS之间无密码SSH登陆 1. 将之前下载的.pem私钥上传到三台机器的/root/.ssh/目录下。 # 重命名密钥 mv xxx.pem id_rsa # 修改文件权限 chmod 600 id_rsa 2. 然后分别通过ssh访问进行验证,例如: ssh root@slave1.bd.cn 如果登陆不成功,请自行排查问题。 三、挂载数据盘到/opt目录(后面CDH会部署到这里) 1. 创建物理分区 我们只有一个数据盘,默认的位置是在/dev/vdb 可以有以下几种方法查看当前系统中的磁盘: fdisk -l lsblk parted -l 对/dev/vdb进行分区: fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x4710ccf3. Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 11943039 Partition 1 of type Linux and of size 5.7 GiB is set Command (m for help): wq The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 2. 基于物理分区创建逻辑卷 逻辑卷(LVM) 当我们创建了了一个分区之后,它的大小便固定了,这个不利于之后的扩展,为此有了LVM,它可以动态地改变分区的大小。 LVM中主要有以下三个概念: PV(Physical Volume):即物理分区或者磁盘。 VG(Volume Group):卷组,多个PV组成一个VG,VG就像一个池子一样。 LV(Logic Volume):逻辑卷,在VG上创建出来的对机器可见的分区,有自己的文件系统。 虽然LVM可以使用裸盘作为PV,但是并不推荐这么做,推荐先对磁盘进行分区,在用于LVM。 LVM使用步骤 使用LVM主要分为以下几步: 通过物理分区创建PV 通过PV创建VG 在VG上创建LV 格式化LV 挂载LV ECS Centos7.4默认没有lvm管理包,先安装lvm yum install lvm* 通过命令创建PV pvcreate /dev/vdb1 # 创建名为LVMVG的组 vgcreate LVMVG /dev/vdb1 # 创建并将所有空间分配给lv1 lvcreate -l 100%FREE -n lv1 LVMVG # 格式化lv1 mkfs.ext4 /dev/LVMVG/lv1 3. 将逻辑卷挂载到/opt目录 mount /dev/LVMVG/lv1 /opt # 配置自动挂载 echo /dev/LVMVG/lv1 /opt ext4 defaults 0 0 >> /etc/fstab 其他一些命令: # umount umount /opt # 删除LV/VG/PV lvremove /dev/LVMVG/lv1 vgremove LVMVG pvremove /dev/vdb1 四、安装JDK和Mysql 1. 3台ECS都要安装JDK(注意,请直接安装oracle jdk,不要使用openjdk,不然CDH不支持,后续还需要重新安装jdk) yum install java-1.8.0-openjdk 2. master.bd.cn主节点单独安装mysql wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm yum localinstall mysql57-community-release-el7-8.noarch.rpm yum install mysql-community-server systemctl start mysqld systemctl enable mysqld systemctl daemon-reload # 查看root初始密码 grep 'temporary password' /var/log/mysqld.log # 登陆mysql mysql -p # 修改root密码 mysql> ALTER USER 'root'@'localhost' identified by '密码<数字+大小写字母+特殊字符+最少8位>'; mysql> flush privileges; # 开启远程登陆 mysql> grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option; mysql> flush privileges; mysql> exit; 五、安装依赖包 yum -y install chkconfig yum -y install bind-utils yum -y install psmisc yum -y install libxslt yum -y install zlib yum -y install sqlite yum -y install cyrus-sasl-plain yum -y install cyrus-sasl-gssapi yum -y install fuse yum -y install portmap yum -y install fuse-libs yum -y install redhat-lsb 六、准备CDH离线安装 Cloudera Manager 下载目录 http://archive.cloudera.com/cm5/cm/5/ CDH 下载目录 http://archive.cloudera.com/cdh5/parcels/5.15.0/ manifest.json 下载 http://archive.cloudera.com/cdh5/parcels/5.15.0/manifest.json CHD5 相关的 Parcel 包放到主节点的/opt/cloudera/parcel-repo/目录中 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1重命名为CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha 这点必须注意,否则,系统会重新下载CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel文件 在3台ECS上均创建文件夹/opt/cloudera-manager mkdir /opt/cloudera-manager 把下载好的cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz安装包上传至 master.bd.cn节点/opt/目录 在 master.bd.cn 节点拷贝cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz到所有节点: scp cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz root@slave1.bd.dp:/opt/ scp cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz root@slave2.bd.dp:/opt/ 所有ECS节点解压安装 Cloudera Manager Server & Agent cd /opt tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager 七、开始部署SCM 1. 创建用户 cloudera-scm(所有节点) cloudera-scm 用户说明,摘自官网: Cloudera Manager Server and managed services are configured to use the user account cloudera-scm by default, creating a user with this name is the simplest approach. This created user, is used automatically after installation is complete. Cloudera管理器服务器和托管服务被配置为在默认情况下使用用户帐户Cloudera-scm,创建具有这个名称的用户是最简单的方法。创建用户,在安装完成后自动使用。 执行:在所有节点创建cloudera-scm用户 useradd --system --home=/opt/cloudera-manager/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm 2. 配置 CM Agent 修改 master.bd.cn节点/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。 在 master.bd.cn 操作将 master.bd.cn节点修改后的 (复制到所有节点) scp /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini root@slave1.bd.cn:/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini scp /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini root@slave2.bd.cn:/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini 3.配置 CM Server 的数据库 在主节点 master.bd.cn初始化CM5的数据库: 下载 mysql 驱动包: cd /opt/cloudera-manager/cm-5.15.0/share/cmf/lib wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar 初始化数据库: cd /opt/cloudera-manager/cm-5.15.0/share/cmf/schema/ ./scm_prepare_database.sh mysql -hmaster.bd.dp -uroot -p密码 --scm-host master.bd.dp cm scm 密码 参数说明: 参数 说明 mysql 数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle -hhadoop1 数据库建立在hadoop1主机上面,也就是主节点上面. -uroot 以root用户运行mysql -p123456 mysql用户 --scm-host CMS的主机,一般是和mysql安装的主机是在同一个主机上 最后三个参数 分别为数据库名称、数据库用户名、数据库密码 4. 配置CDH本地安装源 创建 Parcel 目录 master.bd.cn节点创建目录/opt/cloudera/parcel-repo 然后将下载好的文件 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 manifest.json 拷贝到该目录下。 mkdir -p /opt/cloudera/parcel-repo chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo cd /opt/cloudera/parcel-repo 重命名,CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1否则,系统会重新下载CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha slave1.bd.cn和slave2.bd.cn节点创建目录/opt/cloudera/parcels,执行: mkdir -p /opt/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/cloudera/parcels 5. 启动 CM Manager&Agent 服务 注意,mysql 服务启动,防火墙关闭 master.bd.cn节点执行: /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start slave1和slave2节点执行: /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start 访问 http://master.bd.cn:7180 若可以访问(用户名、密码:admin),则安装成功。 Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。 八、开始安装CDH CM Manager && Agent 成功启动后,登录前端页面进行 CDH 安装配置。 admin / admin登录后 免费版本的 CM5 已经去除 50 个节点数量的限制。 各个 Agent 节点正常启动后,可以在当前管理的主机列表中看到对应的节点。 选择要安装的节点,点继续。如果配置本地 Parcel 包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约 10 多分钟吧,取决于内网网速。 点击继续,开始安装。 可看到检查有两个问题。 1)已启用透明大页面压缩,可能会导致重大性能问题。请运行 echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled 以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。 2)不支持openjdk,手工安装oracle jdk 下载oracle jdk 1.8rpm安装包下载地址 上传到3台ECS上,执行安装 yum install jdk-8u181-linux-x64.rpm 解决后,重新检测。如果出现问题,请重新安装CDH,见本文最后章节《CDH安装失败了,如何重新安装》 这一步需要我们手工创建对应的数据库,暂时都用一个mysql服务,修改数据库主机均为master.bd.cn。 创建数据库,推荐使用utf8mb4字符集,并分配scm用户权限给hive库(当然也可以新建个hive用户) CREATE DATABASE `hive` CHARACTER SET 'utf8mb4'; GRANT Select, Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Show View, Trigger, Update ON `hive`.* TO `scm`@`master.bd.dp`; CREATE DATABASE `hue` CHARACTER SET 'utf8mb4'; GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `hue`.* TO `scm`@`master.bd.dp`; CREATE DATABASE `am` CHARACTER SET 'utf8mb4'; GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `am`.* TO `scm`@`master.bd.dp`; CREATE DATABASE `oozie` CHARACTER SET 'utf8mb4'; GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `oozie`.* TO `scm`@`master.bd.dp`; 点击测试,如果报错: JDBC driver cannot be found. Unable to find the JDBC database jar on host : slave2.bd.dp. 需要下载jdbc到lib目录下: cd /opt/cloudera-manager/cm-5.15.0/share/cmf/lib/ wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar 重新测试链接,通过后,继续 自行修改,继续 通过Cloudera Manager添加Hive服务,在启动Hive的时候遇到错误: .org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver 这种情况是缺少jdbc驱动,于是添加jdbc驱动到相应的包下面。报的错中提示了lib路径,添加一下即可。(注意,最好所有节点都这样执行一次) cd /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/ wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar 然后点击“Resume”重试。 很可能oozie也没有,注意看日志信息,是从/usr/share/java/mysql-connector-java.jar自动复制,所以执行: cp mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar 然后重试,完成 可能遇到的一些问题: 1.hue的load balancer无法启动 解决:安装httpd和mod_ssl yum -y install httpd yum -y install mod_ssl 2. HDFS NFS Gateway 无法启动、挂载失败问题 解决:HDFS NFS Gateway工作需要依附 rpcbind 服务,所以启动前需要确定rpcbind服务正常开启。 service rpcbind start 但是HDFS NFS 服务会与系统自带的NFS服务冲突,所以在启动前需要关闭系统自带的NFS服务。service nfs stop service nfs stop service rpcbind start 3.HDFS-副本不足的块 原因是设置的副本备份数与DataNode的个数不匹配。 我们在之前理论篇中已经说明了dfs. replication属性默认是3,也就是说副本数---块的备份数默认为3份。 但是我们这里集群只有两个DataNode。所以导致了达不到目标---副本备份不足。 解决方法 这种情况下的修复有2个步骤,1是设置目标备份数为2,2是通过命令更改当前备份数。 副本不足和副本过多都可以用这2个步骤解决,主要是跟DataNode的个数对应。 设置目标备份数为2 点击集群-HDFS-配置 搜索dfs. replication,设置为2后保存更改。 dfs.replication这个参数其实只在文件被写入dfs时起作用,虽然更改了配置文件,但是不会改变之前写入的文件的备份数。 所以我们还需要步骤2 在cm0中通过命令更改备份数: su hdfs hadoop fs -setrep -R 2 / 这里的-R 2的数字2就对应我们的DataNode个数。 如果遇到safe mode无法执行,则先执行解除safemode命令: hadoop dfsadmin -safemode leave 九、安装 Kafka 组件 1. 配置并分配 Kafka parcel 包 在 Web 页面中,主机 -> Parcel 里面会列出当前集群以配置和分配的 parcel 包,目前只配置了 CDH5,Kafka 单独存在于其他 parcel 包中,所以需要单独加载 parcel ,然后分配到集群内各节点。 Cloudera官方Kafka组件的parcel包下载地址为:http://archive.cloudera.com/kafka/parcels/latest/ 照旧下载 percel 文件,以及该文件的 sha1 串,然后重命名 ***.sha1 为 ***.sha 方可。 下载好以上两个文件后,放到master.bd.cn 节点的 /opt/cloudera/parcel-repo/ 目录下 无需重启 server 守护进程,在页面即可在线刷新、分配、激活。 2.集群内安装 Kafka 服务 这里需要确认和修改 2 个默认配置 复制进程,默认为1,修改为 3(视业务量而定) 分区数,默认分区数为 50,这里暂且保留。 删除旧topic,默认打开,不做更改。 业务端口为 9092 。 启动可能会遇到OOM的错误,导致无法启动 Fatal error during KafkaServerStartable startup. Prepare to shutdown java.lang.OutOfMemoryError: Java heap space 解决: 登录到kafka运行的节点,修改kafa启动脚本: vi /opt/cloudera/parcels/KAFKA-3.1.0-1.3.1.0.p0.35/lib/kafka/bin/kafka-server-start.sh 添加最后一行启动命令前一行添加export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 然后在CM中重试即可。 附1:CDH安装失败了,如何重新安装 1> 删除Agent节点的UUID # rm -rf /opt/cloudera-manager/cm-5.15.0/lib/cloudera-scm-agent/* 2> 清空主节点CM数据库 进入主节点的Mysql数据库,然后drop database cm; 3> 删除Agent节点namenode和datanode节点信息 # rm -rf /opt/dfs/nn/* # rm -rf /opt/dfs/dn/* 4> 在主节点上重新初始化CM数据库 5> 执行启动脚本 主节点:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start Agent节点:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start 过一会儿,即可通过主节点的7180端口重新进行CDH的安装http://主节点IP:7180/cmf/login。 附2:HUE执行Oozie-Sqoop1命令式找不到msyql driver问题 cd /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/sqoop/ wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar 然后重启Oozie和Hue服务。

优秀的个人博客,低调大师

酷瓜云课堂(开源版)v1.6.7 发布,独立部署在线教育系统

更新内容 增加文章分类功能 增加问题分类功能 增加审核等批量功能 增加若干业务插件埋点 精简重构大量业务逻辑 移除秒杀营销功能 已发现的问题修复 系统介绍 酷瓜云课堂,依托腾讯云基础服务架构,采用C扩展框架Phalcon开发,GPL-2.0开源协议,致力开源网课系统,开源网校系统,开源知识付费系统,开源在线教育系统。 系统功能 实现了点播、直播、专栏、面授、问答、会员、积分等。 友情提示: 演示系统配置低(1Core,1G,1M 跑多个容器)切莫压测 课程数据来源于网络(无实质内容)切莫购买 管理后台已禁止数据提交,私密配置已过滤 桌面端演示: 前台演示 后台演示 演示账号:100015@163.com / 123456 (前后台通用) H5手机端演示: 演示账号:13507083515 / 123456 支付流程演示: MySQL提升课程全面讲解MySQL架构设计(0.01元) Nginx入门到实践Nginx中间件(0.01元) 数据库与中间件的基础必修课(0.02元) Tips: 测试支付请用手机号注册一个新账户,以便接收订单通知,以及避免课程无法购买 微信推送演示: Tips: 请用手机注册一个新账号,用户中心 -> 关注订阅,扫码关注公众号。之后的登录、购买、退款、直播、咨询等会有消息推送。 项目组件 后台框架:phalcon 3.4.5 前端框架:layui 2.8.8 全文检索:xunsearch 1.4.9 即时通讯:workerman 3.5.22 基础依赖:php7.3, mysql5.7, redis5.0 项目文档 运行环境搭建 系统服务配置 客户终端配置 意见反馈 码云平台 官方社区

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册