CentOS7搭建离线部署Cloudera CDH 6.2.0大数据平台

如上述博客有任何错误或者疑问,请加VX:1755337994,及时告知!万分感激! 

1.概述

  CDH,全称Cloudera's Distribution, including Apache Hadoop。是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储、分布式计算),最为重要的是提供基于web的用户界面。

  CDH的优点:版本划分清晰,更新速度快,支持Kerberos安全认证,支持多种安装方式(如Yum、rpm等)。

  CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包)。这里采用CDH6.2.0。

  Cloudera Manger下载地址为https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/,如图:

  

   CDH6.2.0安装包地址为:https://archive.cloudera.com/cdh6/6.2.0/parcels/

   由于操作系统为CentOS7,需要下载以下文件:

  

  上述文件整理资料百度云下载地址为:

  链接: https://pan.baidu.com/s/1Dm5Elf9uQqn14BUbgU3AFQ 提取码: mws3 

2. 安装步骤

说明:以下操作都是在root用户下进行的

2.1 环境准备

2.1.1. 准备虚拟机(根据自己的系统资源分配虚拟机资源)

2.1.2. 静态IP设置(每个节点)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

service network restart 重启网络生效

yum install -y net-tools ifconfig查看设置

2.1.3. 编辑/etc/hosts文件(每个节点)

cat > /etc/hosts << EOF

::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6

127.0.0.1       localhost       localhost.localdomain   localhost4      localhost4.localdomain4

172.18.26.219 manager1

172.18.26.222 node2

172.18.26.220 node3

172.18.26.218 node4

172.18.26.221 node5

EOF

各个虚拟机设置自己对应的主机名

hostnamectl set-hostname manager1

hostnamectl set-hostname node2

hostnamectl set-hostname node3

hostnamectl set-hostname node4

hostnamectl set-hostname node5

2.1.4. 关闭防火墙、禁止防火墙开机自启(每个节点)

  • systemctl stop firewalld 关闭防火墙
  • systemctl disable firewalld 禁止防火墙开机自启
  • vim /etc/selinux/config —> SELINUX=disabled (修改)

2.1.5. ssh无密码登录

  • manager节点执行ssh-keygen -t rsa 一路回车到结束,在/root/.ssh/下面会生成一个公钥文件id_rsa.pub
  • chmod 600 ~/.ssh/authorized_keys

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@manager1

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@node3

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@node4

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@node5

2.1.6. 配置NTP服务(所有节点)

  • 修改时区(改为中国标准时区)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 安装ntp yum -y install ntp
  • ntp主机配置 vim /etc/ntp.conf
  • manager节点

其余节点

  • 重新启动 ntp 服务:service ntpd restart
  • 设置开机自启:systemctl enable ntpd.service
  • ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
  • ntpq -p #查看当前同步的时间服务器
  • ntpstat #查看状态
  • 配置成功状态(服务开启后前面出现*说明成功):

2.1.7. 修改Linux swappiness参数(所有节点)

为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)

  • 上述方法rhel6有效,rhel7.2中:tuned服务会动态调整系统参数
  • 查找tuned中配置,直接修改配置
  • cd /usr/lib/tuned/
  • grep “vm.swappiness” * -R 查询出后依次修改

修改完确认:

参考:sysctl修改内核参数 重启不生效 https://blog.csdn.net/ygtlovezf/article/details/79014299

2.1.8. 禁用透明页(所有节点)

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.local 添加上面命令

给与可执行权限:chmod +x /etc/rc.d/rc.local

2.1.9. JDK安装(所有节点)

  • rpm -qa | grep java # 查询已安装的java
  • yum remove java* # 卸载
  • rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
  • vi /etc/profile 末尾添加

  • source /etc/profile
  • java -version验证

2.1.10. 创建/usr/share/java目录,将mysql-jdbc包放过去(所有节点)

  • mkdir -p /usr/share/java
  • mv /opt/mysql-j/mysql-connector-java-5.1.34.jar /usr/share/java/
  • mysql-connector-java-5.1.34.jar 一定要命名为mysql-connector-java.jar

2.1.11. 为保证防火墙、虚拟机参数修改后生效,各节点机器需要重启 reboot

2.1.12. Mysql安装

卸载原生的mariadb,安装mysql:

  • rpm -qa|grep mariadb
  • rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
  • cd /opt/mysql/
  • tar -xvf ./mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
  • rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
  • rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
  • rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
  • rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
  • rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm

MYSQL配置如下:

  • mysqld --initialize --user=mysql # 初始化mysql使mysql目录的拥有者为mysql用户
  • cat /var/log/mysqld.log # 最后一行将会有随机生成的密码
  • systemctl start mysqld.service # 设置mysql服务自启
  • mysql -uroot –p 如果不能登陆
  • systemctl restart mysqld
  • #登录并修改mysql的管理者密码

    $>mysql -u root
    mysql>use mysql;
    mysql>set password = PASSWORD('root');
    mysql>exit;

  • 创建库(后续安装服务等使用)
    # Cloudera Manager的数据库
    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
    # Activity Monitor的数据库
    CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon@123';
    # Reports Manager的数据库
    CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
    # Hue的数据库
    CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
    # Metastore的数据库
    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
    # Sentry的数据库
    CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
    # Cloudera Navigator Audit Server的数据库
    CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
    # Cloudera Navigator Metadata Server的数据库
    CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
    # Oozie的数据库
    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
    # Hive的数据库
    CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive@123';
    flush privileges;

2.1.13. 安装Httpd服务(manager)

  • yum install httpd
  • systemctl start httpd
  • systemctl enable httpd.service 设置httpd服务开机自启

2.1.14. 配置Cloudera Manager包yum源(manager节点)

  • mkdir -p /var/www/html/cloudera-repos/
  • 将下载的cm包文件移到此目录下:
  • mv cm6 /var/www/html/cloudera-repos/
  • cd /var/www/html/cloudera-repos/cm6/
  • 创建repodata: createrepo .

  • vim /etc/yum.repos.d/cloudera-manager.repo

  注意路径:http://manager/cloudera-repos/cm6/

  • yum clean all
  • yum makecache

2.1.15.导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)manager节点

  • rpm --import http://manager/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

2.1.16. 安装 Cloudera Manager(manager节点)

  • sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • 安装完CM后/opt/ 下会出现cloudera目录
  • mv /opt/parcels/* /opt/cloudera/parcel-repo # 将parcel包移动到指定位置
  • 在/opt/cloudera/parcel-repo执行以下命令:
  • sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk ‘{ print $1 }’ > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha

  • 执行初始化脚本:
  • /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser password
  • 打开server服务:
  • service cloudera-scm-server start
  • 静候几分钟,打开http://manager:7180

2.2 其他服务安装

2.2.1 登录cm WEB界面

http://主机ip:7180/cmf/login 访问CM
用户名admin
密码admin
遇到问题:7180服务没有启动
解决方法:

查看端口服务,未启动

cm服务启动显示正常。
我在刚启动服务后7180没有启动,没找到什么原因,后来 晾了它一晚上,第二天一查端口,居然启动了,可能是cm服务要启动的东西太多,主机一时没启动。

启动成功!

备注:
linux查看端口:Linux如何查看端口状态 - Archmagel - 博客园

2.2.2 具体安装步骤

WELCOME

 Accept License

Select Edition

版本选择免费版,已经够用。

Welcome (Add Cluster - Installation)

Specify Hosts

主机是自己规划安装agent的主机

Select Repository

自定义存储库: http://172.18.26.219/cloudera-repos/cm6/

Parcel 目录  /opt/cloudera/parcels

本地 Parcel 存储库路径 /opt/cloudera/parcels

JDK 安装选项

任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX : 18565453898

img

Enter Login Credentials

Install Agents

最到考验网速的时候了,该页面使用js进行刷新,千万别手动刷新,手动刷新的话安装列表中之前已经功成的会消失,未成功的显示,未成功即使安装成功了,cm会管理不到之前已经成功但刷新后未显示的主机,在安装集群时只能选择本次显示的(原因未知)。网速过慢的话安装会失败,一定要耐心等待,别做无关操作。

修改cat  /etc/cloudera-scm-agent/config.ini | grep -Ev "^$|#"rm -rf /var/lib/cloudera-scm-agent/cm_guidservice cloudera-scm-agent restart重启服务
service cloudera-scm-server restartservice cloudera-scm-agent restart###### agent安装前注意事项安装失败。 无法接收 Agent 发出的检测信号。请确保主机的名称已正确配置。请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。请确保正在添加的主机上的端口 9000 和 9001 空闲。检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。######

失败重试直到成功,再次说明,耐心等待。

n次失败之后终于安装成功!

Install Parcels

安装成功!等了有将近半天的时候。。。

Inspect Hosts

注意事项!!!:

1,Parcel安装包要确保每一台机器都有,在目录: /opt/cloudera/parcel-repo/

2,搜索 “Parcel服务”,然后激活

3,搜索 “CDH managger service 服务” 安装监控

4,监控生效之后,搜索 “集群服务”

5,微调未生效的组件

问题处理:
时钟同步是由于我恢复过一次镜像,在手动同步一下即可。
服务端启动(恢复镜像居然没启动)

各台同步

虚拟内存设置:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为0-10。当前设置为 30。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。以下主机将受到影响:
临时解决
通过echo 10 > /proc/sys/vm/swappiness即可解决。
永久解决
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf

透明大页问题:
已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响:

大内存页禁用
echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled

升级软件依赖版本
Starting with CDH 6, PostgreSQL-backed Hue requires the Psycopg2 version to be at least 2.5.4, see the documentation for more information. This warning can be ignored if hosts will not run CDH 6, or will not run Hue with PostgreSQL. The following hosts have an incompatible Psycopg2 version of ‘2.5.1’:
 

2.3 大数据组件安装

正式安装前拍个快照

Select Services

自定义角色分配

数据库设置

这里测试了一晚上。。。

审核更改(可以自己更改目录,我使用的是默认)

cdh管理界面,大功告成:

第一次进入后,许多服务标红,查看后是agent与cm失去连接。
#ntpstat(所有节点)
只有cm启动,其余莫名停止。
#systemctl start ntpd(停止节点)
#ntpdate -u cdh1(ntp服务端)
在失去的节点 执行
service cloudera-scm-agent restart(停止节点)
重启 正常启动不报错

service cloudera-scm-agent status(查看 agent 状态)

任何程序错误,以及技术疑问或需要解答的,请添加

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

负载均衡实现的几种方式

负载均衡&#xff0c;英文名Load Balance&#xff0c;作用是将操作分摊到多个执行单元上执行。随着如今网络流量的不断增大&#xff0c;服务的负载均衡是必须的&#xff0c;这里就来讲一讲负载均衡的结构。 说到负载均衡&#xff0c;同学最容易想到的可能就是nginx了&…

CheckBox as Image use button

为什么80%的码农都做不了架构师&#xff1f;>>> <CheckBox android:id"id/notificationPhoneIcon" android:layout_width"wrap_content" android:layout_height"wrap_content" android:layout_centerVertical"true" an…

1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一

首先&#xff0c;安装python3.8和pycharm参考其他教程。 一、安装django 使用下面命令默认安装最新版的django pip install django也可以从django官网查看安装一个LTS长期稳定支持版本&#xff0c;从下图看到3.2是LTS版本&#xff0c;能够长期支持2021年&#xff5e;2024年&…

python装饰器函数传参

python装饰器函数传参 装饰器 装饰器是一个返回函数的高阶函数。 装饰器常见用法&#xff1a; 打印日志 def logger(func):def wrapper(*args, **kw):print do {}.format(func.__name__)func(*args, **kw)print finishreturn wrapperlogger def add(x,y):print {} {} {}.…

Tomcat工作原理及简单模拟实现

Tomcat应该都不陌生&#xff0c;我们经常会把写好的代码打包放在Tomcat里并启动&#xff0c;然后在浏览器里就能愉快的调用我们写的代码来实现相应的功能了&#xff0c;那么Tomcat是如何工作的&#xff1f;一、Tomcat工作原理我们启动Tomcat时双击的startup.bat文件的主要作用是…

苹果怎么调字体大小?详细教程在这,赶快get起来!

在我们使用苹果手机时&#xff0c;可能会遇到需要调整字体大小的情况。合适的字体大小能够提高阅读体验和舒适度&#xff0c;使得手机使用更加便捷。然而&#xff0c;还有很多用户并不知道苹果怎么调字体大小。别着急&#xff01;本文将为您详细介绍操作方法&#xff0c;帮助您…

PyQt5树形结构控件QTreeWidget操作

QTreeWidget 类根据预设的模型提供树形显示控件。 QTreeWidget 使用类似于 QListView 类的方式提供一种典型的基于 item 的树形交互方法类&#xff0c;该类基于QT的“模型/视图”结构&#xff0c;提供了默认的模型来支撑 item 的显示&#xff0c;这些 item 类为 QTreeWidgetIt…

Python3之logging输出写入日志

Python3之logging模块浅析 目录 Python3之logging模块浅析 简单用法日志与控制台同时输出 一个同时输出到屏幕、文件的完成例子日志文件截取日志重复打印问题解决 问题分析解决方案 1.使用不同的日志对象2.及时清理&#xff08;logger.handlers.clear&#xff09;3.使用前先判…

HashMap线程安全问题

HashMap是线程不安全的&#xff0c;在多线程环境下对某个对象中HashMap类型的实例变量进行操作时&#xff0c;可能会产生各种不符合预期的问题。本文详细说明一下HashMap存在的几个线程安全问题。注&#xff1a;以下基于JDK1.8HashMap原理请走传送门通过简单例子来探索HashMap原…

四、PyCharm PyQt5创建主窗口详细教程

1.打开PyCharm,新建工程MyMainTest 2.按照Tools-External Tools-QtDesigner,打开QT设计界面,保存窗体文件。

java8 lambda表达式实现自定义用户组件,Don't Repeat Yourself

2019独角兽企业重金招聘Python工程师标准>>> 一、用户组件的功能 使用java8 lambda表达式实现实现世界的一个例子&#xff1a;用户组件。此用户组件有以下几个操作&#xff1a;获取用户列表&#xff0c;获取单个用户&#xff0c;增加用户&#xff0c;删除用户&am…

如何在CDH5上部署Dolphin Scheduler 1.3.1

本文记录了在CDH5.16.2集群上集成Dolphin Scheduler 1.3.1的详细流程&#xff0c;特别注意一下MySQL数据库的连接串&#xff01; 1 文档编写目的 详细记录CDH5上Dolphin Scheduler 1.3.1的部署流程分布式部署Dolphin Scheduler 2 部署环境和依赖组件 为了适配CDH5上的Hive…

Kafka面试题全套整理 | 划重点要考!

做积极的人&#xff0c;而不是积极废人&#xff01;有很多人问过我要过Kafka相关的面试题&#xff0c;我一直懒得整理&#xff0c;这几天花了点时间&#xff0c;结合之前面试被问过的、别人咨询过的、我会问别人的进行了相关的整理&#xff0c;也就几十题&#xff0c;大家花个几…

关于Java基础你不得不会的34个问题

目录1. 面向对象和面向过程的区别2. Java 语言有哪些特点3. 关于 JVM JDK 和 JRE 最详细通俗的解答4. Oracle JDK 和 OpenJDK 的对比5. Java和C的区别6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同7. Java 应用程序与小程序之间有那些差别8. 字符型常量和字符串常…

Android--快速接入微信支付

前言 最近实习的时候要求我做支付模块&#xff0c;主要是介入支付宝支付和微信支付的。支付宝支付接入相对来说比较好做&#xff0c;官网文档也比较容易懂。但是做微信支付的时候&#xff0c;官网文档就有点懵逼了&#xff0c;不过慢慢读还是能够开通的。与是抽时间记录一下微…

PyQt5 QTreeWidget更改item项前的展开折叠三角图标

把下面代码放到对话框初始化函数中即可 # 设置树控件样式self.treeWidget.setStyleSheet("QTreeView::branch:open:has-children:!has-siblings,""QTreeView::branch:open:has-children:has-siblings {image: url(:/pic/images/minus.png);}""QTreeVi…

聊一聊开发常用小工具

作者&#xff1a;肥朝 来自&#xff1a;肥朝&#xff08;ID&#xff1a;feichao_java&#xff09;之前不少朋友问到平时怎么学习的.今天就简单介绍一下平时用到的一些小工具.首先我平时是用IDEA开发的,所以下面的介绍都是和IDEA相关的.本文主要介绍我平时在哪些场景使用,使用了…

YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集

YOLOv5的详细使用教程&#xff0c;以及使用yolov5训练自己的数据集 文章目录&#xff1a; 1 安装环境依赖 1.1 克隆项目1.2 安装必要的环境依赖2 下载预训练模型和标注的数据集 2.1 下载预训练模型 2.1.1 执行脚本下载预训练模型2.1.2 直接下载预训练模型&#xff0c;然后保存…

六、PyQt5 QTreeWidget操作,获取树控件所有2级目录内容

新建pyqt5工程目录,添加树控件QTreeWidget,添加4个按钮,分别是添加 、删除、修改、打印树内容按钮,并添加按钮单击消息响应函数。 适用于QTreeWidget树控件只有2级目录内容情况 将树控件一级目录作为键,二级目录作为其对应键值存储到字典中。 # 树控件的字典,例如:dict…

多线程小抄集

Java中线程的状态 NEW、RUNNABLE&#xff08;RUNNING or READY&#xff09;、BLOCKED、WAITING、TIME_WAITING、TERMINATEDJava将操作系统中的运行和就绪两个状态合并称为运行状态。阻塞状态是线程阻塞在进入synchronized关键字修饰的方法或代码块&#xff08;获取锁&#xff0…