CDH安装与配置及相关大数据组件实践
CDH安装与配置及相关大数据组件实践
一、CDH 介绍
CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoop 等。其优点是大大简化了大数据平台的安装过程,使用起来也较为简单。
二、Cloudera Manager 的功能
- 管理
可以对集群进行管理操作,例如添加、删除节点等。 - 监控
全面监控集群的健康情况,包括各种设置的指标和系统运行状况。 - 诊断
当集群出现问题时,能够对问题进行诊断,并给出相应的建议解决方案。 - 集成
将多个组件进行整合。
三、国内大数据开发环境平台方案对比
- 手动安装各个软件(如学习时的方式,hadoop 开源免费)
- 问题:安装过程繁琐,存在版本差异问题,并且缺少集群软、硬件监控功能。
- 使用 CDH、HDP、星环等大数据平台
- 优势:能够快速搭建软件环境。
- 劣势:收费。
- 使用阿里云(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
- 修改主机名
hostnamectl set - hostname hadoop01
- 配置 hosts 文件
vi /etc/hosts
172.16.35.101 hadoop01
(四)关闭防火墙和配置免密登录
- 关闭防火墙
- 查看防火墙状态
systemctl status firewalld.service
- 执行关闭命令
systemctl stop firewalld.service
- 再次查看防火墙状态
systemctl status firewalld.service
- 执行开机禁用防火墙自启命令
systemctl disable firewalld.service
- 配置免密登录
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 源中添加了新的包:
- 需要删除之前的 repodata 文件后,重新生成。
- 重启 httpd 服务。
- 清除 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 和透明化
- 临时生效
sysctl - w vm.swappiness=10
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 永久生效
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.1 和 http://hadoop01/cdh6/6.2.1/parcels/。如果中途出现问题(如安装一半内存不足报错)再次安装时,需要删除安装锁:
rm - rf /tmp/scm_prepare_node.*
rm - rf /tmp/.scm_prepare_node.lock
等待安装后,选择要安装的套餐。
(三)新服务的安装
- 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
- 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
- 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 //查看输出结果
- 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
相关文章:
CDH安装与配置及相关大数据组件实践
CDH安装与配置及相关大数据组件实践 一、CDH 介绍 CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoo…...
fastapi 调用ollama之下的sqlcoder模式进行对话操作数据库
from fastapi import FastAPI, HTTPException, Request from pydantic import BaseModel import ollama import mysql.connector from mysql.connector.cursor import MySQLCursor import jsonapp FastAPI()# 数据库连接配置 DB_CONFIG {"database": "web&quo…...
YOLO系列基础(六)YOLOv1原理详解,清晰明了!
系列文章地址 YOLO系列基础(一)卷积神经网络原理详解与基础层级结构说明-CSDN博客 YOLO系列基础(二)Bottleneck瓶颈层原理详解-CSDN博客 YOLO系列基础(三)从ResNet残差网络到C3层-CSDN博客 YOLO系列基础…...
LeetCode100之环形链表(141)--Java
1.问题描述 给你一个链表的头节点 head ,判断链表中是否有环 示例1 输入:head [3,2,0,-4], pos 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点 示例2 输入:head [1,2], pos 0 输出…...
【ict基础软件赛道】真题-50%openEuler
以下哪个命令可用于查看当前shell的后台任务在openeuler中哪个符号用于创建后台执行进程在openeuler中使用哪个命令查看软件包的详细信息在openeuler中如果想要查看本机的主机名可以使用下面哪个命令在openeuler中使用的包管理器是在openeuler系统中要配置防火墙以允许ssh连接应…...
<AI 学习> 下载 Stable Diffusions via Windows OS
注意: 不能使用 网络路径 不再支持 HTTPS 登录,需要 Token 1. 获得合法的授权 Stability AI License — Stability AI 上面的链接打开,去申请 许可 2. 拥有 HuggingFace 账号 注册:https://huggingface.co/ 3. 配置 Tok…...
计算机图形学在游戏开发中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 引言 计算机图形学的基本概念…...
【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题
推荐的博客和视频: 1、【CubeMX-HAL库】STM32H743—FMC配置SDRAM_stm32h743 sdram 速度-CSDN博客 2、【【STM32CubeMX教程】STM32全外设原理、配置和常用HAL、LL库API使用详解】 3、在百度网盘里有STM32H743的例程:【通过网盘分享的文件:S…...
mac上使用docker搭建gitlab
在 Mac 上搭建 GitLab 可以使用 Docker 来简化安装过程 一、安装详细步骤 1. 安装 Docker 如果你尚未安装 Docker,可以通过以下步骤安装: 下载并安装 Docker Desktop for Mac.安装完成后,启动 Docker Desktop,确保 Docker 运行…...
二维数组操作
代码结构 main.c #include <stdio.h> #include <stdlib.h>#define LEN 100int main() {//通过指针引用多维数组# if 1//定义多维数组int a[3][5] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int row sizeof(a) /sizeof(a[0]);int colum sizeof(a[0]) / sizeof(a[0…...
uniapp设置tabBar高斯模糊并设置tabBar高度占位
1、设置tabBar高斯模糊 2、设置tabBar高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在app.vue中定义一个全局样式 3、在需要的页面底部,加上一个view&…...
上市公司代理成本数据大全(第一类和第二类代理成本均有)1991-2023年
一、计算方式: (1) 第一类代理成本 AC1:经营费用率,参考顶刊《管理世界》李文贵和余明桂(2015)老师的研究构建代理成本 AC2:管理费用率,参考C刊《经济管理》彭雅哲和汪昌云(2021) 老师的研究构建代理成本 AC3:资产周转…...
CA-Markov模型概述及其MATLAB实现
CA-Markov模型概述及其MATLAB实现 1 Markov模型2 CA-Markov模型2.1 元胞自动机(Cellular Aumatomata, 简称CA)2.1.1 构成2.2 准确度评估(Accuracy assessment)2.2.1 Kappa coefficient参考1.参考文献2.其它参考资料1 Markov模型 Markov模型是一种数学模型,用于描述系统在不…...
《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人
课程 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客 任务1:总结 1.我们希望你创建一个可以执行文章摘要的机器人。 2.设计一个提示符,使语言模型能够对文章进行总结。 model: gpt-4o-mini,#gpt-3.5-turbo, import…...
HCIP-HarmonyOS Application Developer 习题(二十二)
1、用户将手机导航迁移至智能手表之后,智能手表如果需要获取手机传过来的数据,从下列哪个方法中获取? A、onCompleteContinuation() B、onStartContinuation() C、onRestoreData() D、onSaveData() 答案:C 分析:FA发起迁移后&am…...
c++原型模式(Prototype Pattern)
原型模式(Prototype Pattern) 原型模式是一种创建型设计模式,它允许你通过复制现有对象来创建新的对象,而不是通过类实例化来创建对象。这种模式在开发时需要大量类似对象的情况下非常有用。原型模式的核心是一个具有克隆方法的接…...
联通大数据面试题及参考答案
Flink 是怎么使用的? Flink 是一个分布式流批一体的开源平台,以下是其一般使用步骤及相关要点: 环境搭建 首先要根据需求选择合适的部署模式,比如本地模式用于开发测试,集群模式(如 Standalone、YARN、Kubernetes 等)用于生产环境。安装相应的 JDK 版本(Flink 基于 Ja…...
MySQL数据库:SQL语言入门 【3】(学习笔记)
目录 5,TCL —— 事务控制语言(Transaction Control Language) (1)事务的概念作用 (2)事务的特性 【1】原子性 【2】一致性 【3】隔离性 【4】持久性 (3)并发事务带来…...
uniapp 实现tabbar分类导航及滚动联动效果
思路:使用两个scroll-view,tabbar分类导航使用scrollleft移动,内容联动使用页面滚动onPageScroll监听滚动高度 效果图 <template><view class"content" ><view :class"[isSticky ? tab-sticky: ]">…...
华为数字化转型的本质为何是管理变革
随着全球经济的加速数字化转型,企业纷纷进入了数字化时代的大潮。华为作为数字化转型的领军者,已经成功实践了从传统企业向数字化企业的蜕变。对于企业而言,数字化转型不仅仅是新技术的应用,更是一场管理变革。在这场变革的背后&a…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
