CDH安装与配置及相关大数据组件实践

CDH安装与配置及相关大数据组件实践

一、CDH 介绍

CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoop 等。其优点是大大简化了大数据平台的安装过程,使用起来也较为简单。

二、Cloudera Manager 的功能

  1. 管理
    可以对集群进行管理操作,例如添加、删除节点等。
  2. 监控
    全面监控集群的健康情况,包括各种设置的指标和系统运行状况。
  3. 诊断
    当集群出现问题时,能够对问题进行诊断,并给出相应的建议解决方案。
  4. 集成
    将多个组件进行整合。

三、国内大数据开发环境平台方案对比

  1. 手动安装各个软件(如学习时的方式,hadoop 开源免费)
    • 问题:安装过程繁琐,存在版本差异问题,并且缺少集群软、硬件监控功能。
  2. 使用 CDH、HDP、星环等大数据平台
    • 优势:能够快速搭建软件环境。
    • 劣势:收费。
  3. 使用阿里云(dataworks / e - mapreduce)、华为云、腾讯云、亚马逊云等云平台

四、CDH 安装步骤

(一)安装依赖包

yum install -y cyrus - sasl - plain cyrus - sasl - gssapi portmap fuse - libs bind - utils libxslt fuse
yum install -y /lib/lsb/init - functions createrepo deltarpm python - deltarpm
yum install -y mod_ssl openssl - devel python - psycopg2 MySQL - python

(二)安装 httpd(仅在部署本地 yum 源的机器上安装)

yum install httpd
yum install createrepo

(三)修改主机名,配置 hosts

  1. 修改主机名
hostnamectl set - hostname hadoop01
  1. 配置 hosts 文件
vi /etc/hosts
172.16.35.101 hadoop01

(四)关闭防火墙和配置免密登录

  1. 关闭防火墙
    • 查看防火墙状态
systemctl status firewalld.service
- 执行关闭命令
systemctl stop firewalld.service
- 再次查看防火墙状态
systemctl status firewalld.service
- 执行开机禁用防火墙自启命令
systemctl disable firewalld.service
  1. 配置免密登录
ssh - keygen
ssh - copy - id hadoop01

(五)关闭 selinux(在配置文件中第一次设置时需重启服务器)

setenforce 0
vim /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled

(六)安装 httpd 服务、启动 httpd 服务

systemctl start httpd.service
cd /var/www/html/
mkdir - p cm6/6.2.1/redhat7/yum/RPMS/x86_64/
#上传 cm6 中的文件到/var/www/html/cm6/6.2.1/redhat7/yum/RPMS/x86_64 目录
#上传 allkeys.asc 文件到/var/www/html/cm6/6.2.1/目录下cd /var/www/html/
mkdir - p cdh6/6.2.1/parcels/
#上传 cdh6 中的文件到此目录 /var/www/html/cdh6/6.2.1/parcels/#在 windows 系统访问测试:http://hadoop01/cm6/6.2.1/redhat7/yum/RPMS/x86_64/#配置 windows 系统的本地 hosts
C:\Windows\System32\drivers\etc#CDH 伪分布式
172.16.35.101  hadoop01

(七)生成 repodata 目录

cd /var/www/html/cm6/6.2.1/redhat7/yum
createrepo.

(八)配置本地 yum 源

cd /etc/yum.repos.d/
vi cloudera - manager.repo
[cloudera - manager]
name=Cloudera Manager
baseurl=http://hadoop01/cm6/6.2.1/redhat7/yum/
gpgcheck=0
enabled=1yum clean all
yum list | grep cloudera

(九)创建 cloudera - scm 用户

#创建一个用户名,用户名是 cloudera - scm
useradd cloudera - scm
#给 cloudera - scm 用户添加一个密码
passwd cloudera - scm
#输入的密码
test123456#免密钥登录
echo "cloudera - scm ALL=(root)NOPASSWD:ALL" >> /etc/sudoers
su - cloudera - scm
exit

(十)安装 mysql 服务(略)

(十一)创建数据库,作为 CDH 的元数据库

登录 mysql 数据库,执行以下命令

create database scm DEFAULT CHARACTER SET utf8;
grant all PRIVILEGES on *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
grant all PRIVILEGES on *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
grant all PRIVILEGES on *.* TO 'root'@'hadoop01' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

(十二)安装 Server 服务

yum install -y oracle - j2sdk1.8 - 1.8.0+update181 - 1.x86_64
yum install -y enterprise - debuginfo - 6.2.1 - 1426065.el7.x86_64
yum install -y cloudera - manager - server - 6.2.1 - 1426065.el7.x86_64
yum install -y cloudera - manager - server - db - 2 - 6.2.1 - 1426065.el7.x86_64

注意事项:如果在 yum 源中添加了新的包:

  1. 需要删除之前的 repodata 文件后,重新生成。
  2. 重启 httpd 服务。
  3. 清除 yum 缓存 yum clean all
    如果是集群,3 个节点都要执行:yum install -y oracle - j2sdk1.8 - 1.8.0+update181 - 1.x86_64
    配置 JDK 的环境变量:
# yum install -y oracle - j2sdk1.8 - 1.8.0+update181 - 1.x86_64 
# 上述命令可以安装 JDK
修改/etc/profile 增加下面的内容
JAVA_HOME=/usr/java/jdk1.8.0_181 - cloudera/
PATH=$PATH:$JAVA_HOME/bin

(十三)设置元数据库为 mysql

需要上传 mysql 驱动包(mysql - connector - java - 8.0.26.jar)jar 到/opt/cloudera/cm/lib 目录下。
设置元数据库为 mysql(前提是安装 ClouderaManager Server 服务)

/opt/cloudera/cm/schema/scm_prepare_database.sh - h localhost mysql scm root 123456
查看:cat /etc/cloudera - scm - server/db.properties

(十四)启动 server 服务进程(查看 7180 端口)

systemctl start cloudera - scm - server
查看启动日志:
tail - f /var/log/cloudera - scm - server/cloudera - scm - server.log
查看启动状态:
systemctl status cloudera - scm - server
查看端口
yum install net - tools
netstat - an | grep 7180

(十五)配置本地 parcel 包

注意:必须要在数据库初始化后,将 parcel 文件放置到/opt/cloudera/parcel - repo 目录中。

上传 cdh6 的 parcel 等文件到/opt/cloudera/parcel - repo
mv /var/www/html/cdh6/6.2.1/parcels/* /opt/cloudera/parcel - repo 
重命名密钥文件名
cd /opt/cloudera/parcel - repo/
mv CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774 - el7.parcel.sha1 CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774 - el7.parcel.sha

(十六)开始安装

访问 Server:http://hadoop01:7180/cmf/login,账号密码均为 admin

(十七)swappiness 和透明化

  1. 临时生效
sysctl - w vm.swappiness=10
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
  1. 永久生效
echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local

五、CM 的图形化安装

(一)登录后首先要做的工作

设置 Parcel 更新频率为 1 分钟。登录后,在新的页面中点击小包裹,再点击配置,将更新频率设置为一分钟。

(二)进行新建集群的操作

在跳转的欢迎界面,点击继续,接收协议,选择免费社区版。指定软件包的位置:http://hadoop01/cm6/6.2.1http://hadoop01/cdh6/6.2.1/parcels/。如果中途出现问题(如安装一半内存不足报错)再次安装时,需要删除安装锁:

rm - rf /tmp/scm_prepare_node.*
rm - rf /tmp/.scm_prepare_node.lock

等待安装后,选择要安装的套餐。

(三)新服务的安装

  1. zookeeper 的安装
    在服务的选择页面中选择 zookeeper,然后在安装页面中直接点击【继续】按钮。安装好之后,如果要在服务器中测试 zookeeper 的运行情况,可以通过以下方式访问 zk 的客户端:
[root@hadoop01 ~]# find / - name zkCli.sh
find: ‘/proc/87190’: 没有那个文件或目录
/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/lib/zookeeper/bin/zkCli.sh
[root@hadoop01 ~]# /opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/lib/zookeeper/bin/zkCli.sh
  1. HDFS
    • 将 HDFS 配置项 dfs.permissions 改为 false,否则会因权限问题不能在 hdfs 中创建目录和文件。将 dfs.replication 设置为 1(因为安装的伪分布式,所以副本个数设置为 1)。
    • 关闭 safemode 模型:
[root@hadoop01 ~]# hdfs dfsadmin - safemode get
Safe mode is OFF
[root@hadoop01 ~]# hdfs dfsadmin - safemode leave
Safe mode is OFF
- 测试 HDFS:
hdfs dfs - mkdir /test
  1. yarn 的安装
    与 zk 一样,选择 yarn 安装,然后点击【继续】。yarn 安装之后需要设置参数:
yarn.nodemanager.resource.memory - mb = 4G
yarn.scheduler.maximum - allocation - mb = 2G

测验 yarn 的安装情况:
- 通过官方例子来处理,先查找 hdfs - site.xml 文件位置:

find / - name hdfs - site.xml
#大致的位置:
/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/etc/hadoop/conf.pseudo/hdfs - site.xml
/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/etc/hadoop/conf.impala/hdfs - site.xml
/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/etc/hadoop/conf.empty/hdfs - site.xml
- 取上述目录中的主目录:
cd /opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/
- 官方例子在以下目录:
/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774/jars  hadoop - mapreduce - examples - 3.0.0 - cdh6.2.1.jar
- 测试步骤:

创建测试文件:

vim testinput.txt
I love BeiJing
I love China
Beijing is the capital of China

创建 HDFS 目录并上传文件:

hadoop fs - ls /
hadoop fs - mkdir  /input
hadoop fs - put testinput.txt /input

运行 wordcount:

yarn jar /opt/cloudera/parcels/CDH/jars/hadoop - mapreduce - examples - 3.0.0 - cdh6.2.1.jar wordcount /input /output
hadoop fs - ls /output  //完成后查看输出目录
hadoop fs - cat /output/part - r - 00000   //查看输出结果
  1. hive 的安装
    • 创建数据库
mysql - uroot - p
create database hive;
- 需要上传 mysql 驱动包 jar 到/opt/cloudera/cm/lib 目录下(之前已传过则不用传),并复制到 hive 相关目录:
cp /opt/cloudera/cm/lib/mysql - connector - java - 8.0.26.jar /opt/cloudera/parcels/CDH/lib/hive/lib/

如果忘记导入,导入驱动包之后,点击 Resume 重新安装。如果出现错误:Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set,则需要变更 hive 的配置:

cd /etc/hive/conf
vim hadoop - env.sh
# 添加以下内容:
export HADOOP_HOME=/opt/cloudera/parcels/CDH - 6.2.1 - 1.cdh6.2.1.p0.1425774
source hadoop - env.sh

可以使用 Datagrip 或者 Dbeaver 连接 hive。
5. sqoop
- 创建数据库和表

mysql - uroot - p
create database test1;
create table t_user
(id bigint auto_increment,name varchar(127) not null,age bigint null,class varchar(255) null,primary key (id)
);

创建测试文件:

vim text.txt
leo|12|class1
leo1|13|class2
leo2|14|class3
leo3|15|class4
leo4|16|class5
leo5|17|class6

复制 mysql 驱动包到 sqoop 相关目录:

cp /opt/cloudera/cm/lib/mysql - connector - java - 5.1.40.jar /opt/cloudera/parcels/CDH/lib/sqoop/lib/

执行数据导出操作:

sqoop export \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 123456 \
--table t_user \
--columns 'name,age,class' \
--export - dir /data \
--input - fields - terminated - by '|' \
--num - mappers 1

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

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

相关文章

Tessy学习笔记—requirement(需求)的管理

1:什么是需求 Tessy中的requirement(需求)是,我们还是跟着Tessy官方的文档,继续学习,打开官方自带的工程Is Value In Range Requirement.project。 按照官方自带的操作手册,导入txt类型的需求…

web——sqliabs靶场——第六关——报错注入和布尔盲注

这一关还是使用报错注入和布尔盲注 一. 判断是否有sql注入 二. 判断注入的类型 是双引号的注入类型。 3.报错注入的检测 可以使用sql报错注入 4.查看库名 5. 查看表名 6.查看字段名 7. 查具体字段的内容 结束 布尔盲注 结束

Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV买卖股票的最佳时机III

Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV&&买卖股票的最佳时机III&&309.买卖股票的最佳时机含冷冻期 动态规划应该如何学习?-CSDN博客 本次题解参考自灵神的做法,大家也多多支持灵神的题解 买卖股票的最佳时机【…

FlinkSql读取kafka数据流的方法(scala)

我的scala版本为2.12 <scala.binary.version>2.12</scala.binary.version> 我的Flink版本为1.13.6 <flink.version>1.13.6</flink.version> FlinkSql读取kafka数据流需要如下依赖&#xff1a; <dependency><groupId>org.apache.flink&…

RabbitMQ实战启程:从原理到部署的全方位探索(上)

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1 简单模式3.2 工作模式3.3 发布订阅3.4 路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1 单机部署5.1.1 安装erlang5.1.2 安装rabbitmq 5.2 集群部署&#xff08;镜…

动态内存管理(c语言)

我们通常开辟空间的方式 int val 20; //大小为4个字节 char arr[10] {0} //开辟出一块连续的空间且大小为10 但是上面开辟空间方式的特点 1.空间开辟大小是固定的 2.数组在声明得时候&#xff0c;必须指定数组得长度&#xff0c;它所需要得内存在编译时分配 但是以上的方式不能…

【从零开始的LeetCode-算法】3270. 求出数字答案

给你三个 正 整数 num1 &#xff0c;num2 和 num3 。 数字 num1 &#xff0c;num2 和 num3 的数字答案 key 是一个四位数&#xff0c;定义如下&#xff1a; 一开始&#xff0c;如果有数字 少于 四位数&#xff0c;给它补 前导 0 。答案 key 的第 i 个数位&#xff08;1 < …

STM32+AI语音识别智能家居系统

基于 STM32 和 AI 语音识别的智能家居系统的详细硬件和软件设计&#xff0c;包括各个模块的详细描述和代码示例。 一、硬件设计 1. 微控制器&#xff08;STM32&#xff09;&#xff1a; 选择 STM32F7 系列或更高性能的芯片&#xff0c;如 STM32F767ZIT6&#xff0c;以满足处理…

信息收集—JS框架识别泄露提取API接口泄露FUZZ爬虫插件项目

前言 免杀结束了&#xff0c;我们开个新的篇章——信息收集。为什么我一开始先写信息收集的文章呢&#xff0c;是因为现在我才发现我的信息收集能力其实有点弱的&#xff0c;所以呢开始知不足&#xff0c;而后进。 什么是JS JS就是JavaScript的简称&#xff0c;它和Java是没…

智能化护士排班系统的设计与实现(文末附源码)

自动排班-护士(分白班|夜班) 当服务器启动时检测需要自动排班,自动开始排班的算法执行 获得本周的所有日期,例如2023-01-29.....2023-02-04依次对每个科室&#xff0c;从第一天开始,逐天进行排班&#xff0c;分别设置两个二个数组&#xff0c;day[7];night[7]分别记忆一周内每…

【原创】java+ssm+mysql社区疫情防控管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Flink Source 详解

Flink Source 详解 原文 flip-27 FLIP-27 介绍了新版本Source 接口定义及架构 相比于SourceFunction&#xff0c;新版本的Source更具灵活性&#xff0c;原因是将“splits数据获取”与真“正数据获取”逻辑进行了分离 重要部件 Source 作为工厂类&#xff0c;会创建以下两…

CSS回顾-基础知识详解

一、引言 在前端开发领域&#xff0c;CSS 曾是构建网页视觉效果的关键&#xff0c;与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现&#xff0c;我们亲手书写 CSS 样式的情况越来越少&#xff0c;CSS 基础知识也逐渐被我们遗忘。 现在&#xff0c;这种遗…

11.08-10.14谷粒商城

谷粒商城--品牌管理 前端表单校验 品牌新增 品牌修改 校验规则 dataRule: {name: [{ required: true, message: "品牌名不能为空", trigger: "blur" }],logo: [{ required: true, message: "品牌logo地址不能为空", trigger: "blur"…

无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的解决方案

EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS、WEBRTC、FMP4视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式&#xff0c;支持MSE、WASM、WebCodec等多种解码方…

基于Spring Boot的电子商务系统设计

5 系统实现 系统实现部分就是将系统分析&#xff0c;系统设计部分的内容通过编码进行功能实现&#xff0c;以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析&#xff0c;系统设计最主要还是进行功能&#xff0c;系统操作逻辑的设计&#xff0c;也包括…

CSP-X2024山东小学组T2:消灭怪兽

题目链接 题目名称 题目描述 怪兽入侵了地球&#xff01; 为了抵抗入侵&#xff0c;人类设计出了按顺序排列好的 n n n 件武器&#xff0c;其中第 i i i 件武器的攻击力为 a i a_i ai​&#xff0c;可以造成 a i a_i ai​ 的伤害。 武器已经排列好了&#xff0c;因此不…

游戏引擎学习第九天

视频参考:https://www.bilibili.com/video/BV1ouUPYAErK/ 修改之前的方波数据&#xff0c;改播放正弦波 下面主要讲关于浮点数 1. char&#xff08;字符类型&#xff09; 大小&#xff1a;1 字节&#xff08;8 位&#xff09;表示方式&#xff1a;char 存储的是一个字符的 A…

JWTUtil工具类

写一个Jwt工具类 导入如下pom.xml依赖 <!--fastjson依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version></dependency><!--jwt依赖--><dependenc…

使用React和Vite构建一个AirBnb Experiences克隆网站

这一篇文章中&#xff0c;我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。 克隆网站最终呈现的效果&#xff1a; 1. 使用vite构建基础框架 npm create vitelatestcd airbnb-project npm install npm run dev2. 构建网站的3个部分 网站从上…