大数据之CDH(web页面部署Hadoop)

article/2025/10/3 7:32:04

一、了解CDH

在众多 Hadoop 版本中, CDH 是 Hadoop 众多分支中比较出色的版本, 它由Cloudera 发行和维护。CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作。

1.1 Hadoop

  • 属于开源软件,采用Apache 2.0许可协议
  • 官方版本称为社区版Hadoop

1.2 比较流行Hadoop版本

  • Apache Hadoop
    维护人员比较多,更新频率比较快,稳定性相对比较差
  • Cloudera Hadoop(CDH)
    Cloudera公司的发行版本,基于Apache Hadoop的二次开发,优化了组件兼容和交互接口、简化安装配置、增加Cloudera兼容特

1.3 Cloudera Hadoop(CDH)概述

  • Hadoop发行版除了社区的Apache hadoop外,Cloudera、Hortonworks、MapR、EMC、IBM、INTEL、华为等都提供自己的商业版本
  • CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作
  • CDH常用安装方式
    Cloudera Manager在线安装
    Parcel安装
    YUM安装·RPM安装

二、部署CDH

环境配置
  • 资源分配

    cdhmaster节点 至少2C6G

    cdhslave01/cdhslave02节点至少2C4G

  • 修改主机名

    hostnamectl set-hostname cdhmaster
    hostnamectl set-hostname cdhslave01
    hostnamectl set-hostname cdhslave02
    
  • 所有节点添加hosts解析

    cat >> /etc/hosts << EOF
    172.16.10.10 cdhmaster
    172.16.10.11 cdhslave01
    172.16.10.12 cdhslave02
    EOF
    
  • 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭内核安全机制

    sed -i "s/.*SELINUX=.\*/SELINUX=disabled/g" /etc/selinux/config
    
  • 时间同步

    yum -y install chrony
    systemctl start chronyd
    chronyc sources -v
    

2.1 安装JDK环境

  • 所有集群节点都要执行
# 解压
tar zxvf jdk-8u171-linux-x64.tar.gz -C /opt
# 改名
mv /opt/jdk1.8.0_171 /opt/jdk
# 修改环境变量
cat >> /etc/profile << EOF
export JAVA_HOME=/opt/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
# 刷新环境变量
source /etc/profile
# 查看版本
java -version

2.2 配置免密登录

  • 仅在cdhmaster节点执行
  • cdhmaster 节点需要通过 SSH 对 cdhslave 节点进行管理,需要配置 SSH 免密码登录
ssh-keygen
ssh-copy-id cdhslave01
ssh-copy-id cdhslave02

2.3 交换分区和大页设置

  • 所有集群节点都要执行

  • 禁用交换分区和透明大页,否则会在安装配置 CDH 群集环境检测中报错

sysctl -w vm.swappiness=0
echo “vm.swappiness=0>> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hughugepage/enabled" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

2.4 部署数据库

  • 仅在cdhmaster节点执行
#卸载mariadb
for i in $(rpm -qa | grep mariadb);do rpm -e ;done
# 安装mysql
yum -y install libaio
# 创建用户
useradd -s /sbin/nologin mysql
# 解压msyql安装
tar zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# 移动安装路径
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
# 初始化数据库
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
# 复制mysql服务启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 上传mysql的配置文件my.cnf(需要手写)文件并移动到/etc/下
mv my.cnf  /etc/
# 启动mysql
/etc/init.d/mysqld start
# 创建软链接,方便使用mysql命令
ln -s /usr/local/mysql/bin/mysql /usr/sbin/ # 登录mysql
mysql -uroot -p
# 修改密码
alter user 'root'@'localhost' identified by '123456';
# 创建数据库并授权
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on *.* to 'cdh'@'localhost' identified by '123456' with grant option;
grant all privileges on *.* to 'cdh'@'%' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'127.0.0.1' identified by '123456' with grant option;
grant all privileges on *.* to 'scm'@'127.0.0.1' identified by '123456' with grant option;
# 刷新权限
flush privileges;
#退出mysql
exit

2.5 部署CDH

2.5.1 安装依赖包

  • 所有集群节点都要执行
yum -y install psmisc libxslt libxslt-python perl

2.5.2 安装cloudera-manager

  • 仅在cdhmaster节点执行
tar zxf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt/
# 改名
mv /opt/cm-5.14.0/ /opt/cm

2.5.3 安装JDBC驱动

  • 仅在cdhmaster节点执行
tar zxf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46/
chmod +x mysql-connector-java-5.1.46-bin.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cm/share/cmf/lib/mysql-connector-java.jar
mkdir /usr/share/java
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

2.5.4 创建Cloudera Manager 用户

  • 所有集群节点都要执行
useradd --system --home=/opt/cm/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

2.5.5 初始化 Cloudera Manager 数据库

  • 仅在cdhmaster节点执行
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -h localhost -uroot -p'123456' scm '123456'

2.5.6 修改 Cloudera Manager 配置文件

  • 仅在cdhmaster节点执行
# 在cdhmaster主节点上修改 Cloudera Manager 的配置文件,将 server_host 设置项的值改为主节点 cdhmaster 主机的 IP 地址,让从节点去找主节点
vim /opt/cm/etc/cloudera-scm-agent/config.ini
server_host=172.16.10.10# 将文件推送到slave节点,同步 Cloudera Manager 数据到其他节点
scp -r /opt/cm/ cdhslave01:/opt/
scp -r /opt/cm/ cdhslave02:/opt/

2.5.7 上传 Parcel 文件

  • 仅在cdhmaster节点执行
mv manifest.json CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 /opt/cloudera/parcel-repo/
# 改名
cd /opt/cloudera/parcel-repo/
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha

2.5.8 启动Cloudera Manager 服务

  • 仅在cdhmaster节点执行
#添加认证
echo "com.cloudera.cmf.db.useSSL=true" >> /opt/cm/etc/cloudera-scm-server/db.properties
# 创建cloudera-scm-server服务启动目录
mkdir /var/lib/cloudera-scm-server
# 启动
/opt/cm/etc/init.d/cloudera-scm-server start
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口(时间会比较长)
netstat -anpt | grep 7180
  • slave节点启动cloudera-scm-agent
  • 在slave节点执行
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口
netstat -anpt | grep -E '19001|9000'

2.6 安装配置CDH群集

2.6.1 使用 CDH 管理控制台

打开浏览器,并在地址栏输入“http://172.16.10.10:7180”,将登录 Cloudera Manager的 Web 管理控制台,默认的用户名和密码分别是 admin 和 admin
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 到这先不要点继续,回到虚拟机中,执行以下操作:
  • 在slave节点执行
# 解压mysql-connector
tar zxf mysql-connector-java-5.1.46.tar.gz
  • 在所有节点执行
cd mysql-connector-java-5.1.46/
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /var/lib/oozie/mysql-connector-java.jar
# 查看是否复制成功
ll /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
ll /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
ll /var/lib/oozie/mysql-connector-java.jar
  • 然后回到浏览器点击 继续
    在这里插入图片描述

2.6.2 群集设置

在这里插入图片描述

  • 选择自定义服务,选择HDFS/Hive/Oozie/YARN
    在这里插入图片描述
  • 选择之前已经创建的数据库,输入用户和密码,并测试数据库连接,hive
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装完成后需要回到master节点安装kafka

2.6.3 配置并添加 Kafka 服务

  • 上传 Kafka 介质

  • 在master节点执行

mv KAFKA-1.2.0.jar /opt/cloudera/csd
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel /opt/cloudera/parcel-repo
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha1 /opt/cloudera/parcel-repo/KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha
  • 分配、激活 Parcel
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 先添加zookeeper服务,在添加ksfka服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 添加kafka服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

http://chatgpt.dhexx.cn/article/ItPpDice.shtml

相关文章

CDH简介及CDH部署、原理和使用介绍( 版本6.3.1 )

CDH简介及CDH部署、原理和使用介绍( 版本6.3.1 ) 第一章&#xff1a;CDH简介 CDH概念 ​ CDH是Cloudera的100&#xff05;开源平台发行版&#xff0c;包括Apache Hadoop&#xff0c;专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他…

Symmetric Eigenvalue Decomposition

求特征值求出s&#xff0c;如何求r 转载于:https://www.cnblogs.com/zzsama/p/10856126.html

Eigenvalue and singular value

1. 特征值: A为方阵&#xff0c;v是A的特征向量。 λ是特征向量v对应的特征值。 一个矩阵的特征向量是一组正交向量。 其中Q是这个矩阵A的特征向量组成的矩阵&#xff1b; 一个矩阵其实就是一个线性变换&#xff0c;因为一个矩阵乘以一个向量后得到的向量&#xff0…

Part2 正交、行列式、特征值

方阵的行列式determinant eigen values特征值 Determinants det A|A| 这三个性质定义了行列式&#xff1a; 1. det I1 2. exchange rows&#xff1a;reverse sign of det 置换矩阵 det P1 even -1 odd 3. matlab求行列式&#xff1a; pivot formula主…

【线代NumPy】第八章 - 特征值和特征向量 | Eigenvalue and Eigenvector | 简述并提供代码

💬 例1: import numpy as npA = np.array([[2, 3], [3, -6]]) w1, V1 = np.linalg.eig(A) # 计算A的特征值和特征向量print("A的特征值: = ", w1) print("A的特征向量: = ", V1)B = np.array([[5,2,0], [2,5,0], [-3,4,6]]) w2, V2 = np.linalg.eig(…

Householder transformation + QL to calculate eigenValue and eigenVectors of Hertian Matrix, cpu code

化Hertinan matrix eigen problem into a real symmetric matrix eigen problem: 原理&#xff1a; 与matlab的结果进行对比&#xff1a; A[ ... ( 3.0 0.0*j) (-2.0 -2.0*j) (-0.9 -0.9*j) (-0.5 -0.5*j); ... (-2.0 2.0*j) ( 4.0 0.0*j) ( 1.0 1.0*j) (-0.7…

Truncated Power Method for Sparse Eigenvalue Problems

目录 算法k的选择\(x\)的初始化代码 抱歉&#xff0c;真的没怎么看懂&#xff0c;当然&#xff0c;估计和我现在没法静下心来好好看也有关系。 算法 想法非常非常简单吧&#xff0c;就是在原来幂法的基础上&#xff0c;每次迭代的时候再加个截断。当然&#xff0c;论文里给出了…

R语言将向量数据按照行方式转化为矩阵数据(设置参数byrow为TRUE)、计算矩阵数据的特征值(eigenvalue)

R语言将向量数据按照行方式转化为矩阵数据&#xff08;设置参数byrow为TRUE&#xff09;、计算矩阵数据的特征值&#xff08;eigenvalue&#xff09; 目录 R语言将向量数据按照行方式转化为矩阵数据&#xff08;设置参数byrow为TRUE&#xff09;、计算矩阵数据的特征值&#x…

Nonlinear Component Analysis as a Kernel Eigenvalue Problem

目录 引kernel PCA kernel 的选择性质一些问题代码 Scholkopf B, Smola A J, Muller K, et al. Nonlinear component analysis as a kernel eigenvalue problem[J]. Neural Computation, 1998, 10(5): 1299-1319. 引 普通的PCA将下式进行特征分解&#xff08;用论文的话讲就是对…

拉格朗日乘数法和KKT条件的直观解释

拉格朗日乘数法和KKT条件的直观解释 标签&#xff08;空格分隔&#xff09;&#xff1a; 机器学习 linbin 2018-05-10 Abstract 在SVM的推导中&#xff0c;最优化问题是其中的核心&#xff0c;这里我们简单介绍下最优化问题&#xff0c;特别是带有约束的最优化问题&#xff…

[Math Algorithm] 拉格朗日乘数法

https://www.cnblogs.com/maybe2030/p/4946256.html 阅读目录 1. 拉格朗日乘数法的基本思想2. 数学实例3. 拉格朗日乘数法的基本形态4. 拉格朗日乘数法与KKT条件 拉格朗日乘数法&#xff08;Lagrange Multiplier Method&#xff09;之前听数学老师授课的时候就是一知半解&…

每天五分钟机器学习算法:拉格朗日乘数法和KKT条件

KKT条件 当我们要求一个函数的极值,同时还有两种类型的约束条件,一种约束条件是等式约束,另外一种约束是不等式约束: x是一个变量(n维,n个样本),我们想要找到使得f(x)最大的x,还要满足上面的约束。此时KKT条件就出来说话了,如果要想让x满足这个条件下的f(x)的最大…

拉格朗日乘数法及python实现拉格朗日乘数法

拉格朗日乘数法&#xff08;Lagrange Multiplier Method&#xff09;基本思想 作为一种优化算法&#xff0c;拉格朗日乘子法主要用于解决约束优化问题&#xff0c;它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有&#xff08;nk&am…

SVM(一):拉格朗日乘数法详解

目录 what直观理解法高数书上的解法 学习SVM的过程中遇到了这个拉格朗日乘数法&#xff0c;之前学高数的时候也学过&#xff0c;不过看到视频里的直观理解法和高数书上的解法有些不同&#xff0c;于是在这里把这两种方法记录下来&#xff0c;也当做是一次理解的过程。 what 先…

拉格朗日乘数法什么时候考虑端点?解得的点是什么?

问题提出 2013年的真题有一道题是用拉格朗日乘数法只能求出来一个点&#xff0c;当时很费解&#xff0c;因此查阅相关资料后&#xff0c;对这部分的知识做一个小总结。 无条件极值和条件极值 首先&#xff0c;在求无条件极值的时候&#xff0c;我们求的是曲面上的极值点。 例…

拉格朗日乘数法的原理,我用10幅图把它讲清楚

机器学习是一个目标函数优化问题&#xff0c;给定目标函数f&#xff0c;约束条件会有一般包括以下三类&#xff1a; 仅含等式约束仅含不等式约束等式和不等式约束混合型 当然还有一类没有任何约束条件的最优化问题 关于最优化问题&#xff0c;大都令人比较头疼&#xff0c;首先…

java 获取随机数方法,java生成随机数的三种方法

随机数有三种生成方式&#xff1a; 1、通过Math.random()方法 2、通过System.currentTimeMillis()方法获取毫秒数 3、通过Random类 第一种&#xff1a;常用方法Math.random()方法&#xff0c;是获取0-1之间的double类型的小数&#xff0c;在通过int类型墙砖即可 示例&#xff1…

Java生成随机数的方式

目录 Random基础使用优缺点分析 SecureRandom基础使用 总结&#xff1a;持续更新 Random Random 类诞生于 JDK 1.0&#xff0c;它产生的随机数是伪随机数&#xff0c;也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC)…

Java 生成随机数的 5 种方式,你知道几种?

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;专职跑龙套链接&#xff1a;https://www.jianshu.com/p/2f6acd169202 1. Math.random(…

java 生成随机数 (Random函数)

目录 一、Random是什么&#xff1f; 二、使用步骤 1.引入库 2.创建对象 3.生成随机数 4.完整代码 总结 一、Random是什么&#xff1f; 生成随机数函数 二、使用步骤 1.引入库 代码如下&#xff1a; import java.util.Random; 2.创建对象 代码如下&#xff1a; R…