CDH大数据平台搭建

各大开源以及商用厂商的大数据产品汇总:

https://zhuanlan.zhihu.com/p/675011462

Ambari 界面:

一、安装一个新的虚拟机

配置要求:8核,10G内存,最好是200G

修改yum源:

修改阿里云的镜像文件:
1、cd /etc/yum.repos.d/ 
2、备份⼀下:cp CentOS-Base.repo CentOS-Base.repo.bak
3、下载阿⾥云镜像到本地:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
4、清除yum的缓存yum clean allyum makecache
5、yum install -y ntpdateyum install -y vim

映射:

vi /etc/hosts
192.168.233.132 cdh

二、CDH简介

全称Cloudera’s Distribution Including Apache Hadoop。

hadoop的版本 (Apache、CDH、Hotonworks版本)

在公司中一般使用cdh多一些(收费的)、也有公司使用阿里云大数据平台、微软的大数据平台。

国内也有一些平台:星环大数据,一个朋友的公司(优刻得UCloud)

ClouderaManager : 简称 CM (CDH的管理界面) 。Cloudera Manager是用于管理CDH群集的端到端应用程序。

三、CM的安装

1、下载

1. 下载包:https://archive.cloudera.com/cdh6/6.2.1/parcels/    --cdh的地址https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/   --CM的地址不用下载了,已经下载好了

2、安装依赖包

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

3、 安装httpd(只需要在部署本地yum源的机器上安装即可,不用三台全部安装)

yum install httpd
yum install createrepo

4、一些其他的配置

5. 关闭防火墙
查看防火墙状态: systemctl status firewalld
绿的running表示防火墙开启
执行关闭命令: systemctl stop firewalld
再次执行查看防火墙命令:systemctl status firewalld
执行开机禁用防火墙自启命令  : systemctl disable firewalld
完成6. 关闭selinux(在配置文件中第一次设置时需要重启服务器)
setenforce 0vim /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=disabledreboot 重启的意思    
init 0 关机   
init 6 重启

5、软件上传

systemctl start httpd  可以通过网址访问一下:http://192.168.233.132,类似于ftp服务器cd /var/www/html/
mkdir -p cm6/6.2.1/redhat7/yum/RPMS/x86_64/
cd cm6/6.2.1/redhat7/yum/RPMS/x86_64/
上传cm6中的文件到此目录
cd  /var/www/html/cm6/6.2.1/
上传allkeys.asc文件到/var/www/html/cm6/6.2.1/目录下cd /var/www/html/
mkdir -p cdh6/6.2.1/parcels/
上传cdh6中的文件到此目录访问测试:http://192.168.233.132/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

6、生成repodata目录

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

7、配置本地yum源

cd /etc/yum.repos.d/
vim cloudera-manager.repo
填写,请修改为自己的IP
[cloudera-manager]
name=Cloudera Manager
baseurl=http://192.168.233.132/cm6/6.2.1/redhat7/yum/
gpgcheck=0
enabled=1执行命令:
yum clean all
yum list | grep cloudera    --这个步骤稍微慢一些,等待即可效果如下:
[root@cdh yum.repos.d]# yum list | grep cloudera
cloudera-manager-agent.x86_64               6.2.1-1426065.el7          cloudera-manager
cloudera-manager-daemons.x86_64             6.2.1-1426065.el7          cloudera-manager
cloudera-manager-server.x86_64              6.2.1-1426065.el7          cloudera-manager
cloudera-manager-server-db-2.x86_64         6.2.1-1426065.el7          cloudera-manager
enterprise-debuginfo.x86_64                 6.2.1-1426065.el7          cloudera-manager
oracle-j2sdk1.8.x86_64                      1.8.0+update181-1          cloudera-manager

8、创建一个linux新用户

创建cloudera-scm用户(centos7要求必须有,centos6没有要求)
useradd cloudera-scm
passwd cloudera-scmtest123456
--免密钥登录
echo "cloudera-scm ALL=(root)NOPASSWD:ALL" >> /etc/sudoers
切换新用户试一下:
su - cloudera-scm
试玩之后,再回来
exit

9、安装mysql

先删除linux中已经存在的mysql的相关内容:第一步:下载repo,并安装mysql-server
先安装wget  yum install -y wget 
进入 /opt 目录
下载安装引导包:
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server假如报如下错误:
失败的软件包是:mysql-community-common-5.7.43-1.el7.x86_64GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql报错使用这个语句:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
这个步骤需要网络,并根据网速会花些时间,安装完成后会覆盖之前的mariadb。
如果提示-bash: wget: 未找到命令,则:yum -y install wget
修复完错误之后继续安装mysql:
yum -y install mysql-community-server假如还出问题,使用如下命令:sudo yum install mysql-server --nogpgcheck第二步:mysql设置
启动:
systemctl start mysqld
查看运行情况:
systemctl status mysqld第三步:登录mysql
查看mysql密码
grep "password" /var/log/mysqld.log
登录mysql
mysql -uroot -p  敲回车,粘贴密码第四步:修改密码
取消mysql密码规范限制
set global validate_password_policy=0;
set global validate_password_length=1;
重设密码
alter user 'root'@'localhost' identified by '123456';
flush privileges;第五步:卸载repo包
此时还有一个问题,因为安装了yum repository,以后每次yum都会自动更新,耗费时间,所以卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch第六步:安装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;
flush privileges;

10、安装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
--最核心的语句:安装cm-server服务
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

注意事项:如果没有在httpd服务下面添加新的软件,以下步骤不需要管。

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

1.需要删除之前的repodata文件后,重新生成;

2.重启httpd服务

3.清除yum缓存 yum clean all

11、设置CM这个软件的元数据为mysql

设置元数据库为mysql--前提是安装ClouderaManager Server服务
/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm root 123456
旧版本:/usr/share/cmf/schema/scm_prepare_database.sh -h localhost mysql scm root 123456假如报以下错误:拷贝驱动包
[                          main] DbCommandExecutor              INFO  Unable to find JDBC driver for database type: MySQL
[                          main] DbCommandExecutor              ERROR JDBC Driver com.mysql.jdbc.Driver not found.
[                          main] DbCommandExecutor              ERROR Exiting with exit code 3
--> Error 3, giving up (use --force if you wish to ignore the error)提示ERROR JDBC Driver com.mysql.jdbc.Driver not found.
需要上传mysql驱动包jar到/opt/cloudera/cm/lib目录下。
cd /opt/cloudera/cm/lib
先拷贝5.7的驱动,试试,假如错误变为如下:
The last packet successfully received from the server was 473 milliseconds ago.  The last packet sent successfully to the server was 460 milliseconds ago.请将mysql5.1的驱动包删除,然后换为8.0的驱动。
rm -rf mysql-connector-java-5.1.40.jar
此时有一个大坑,复制驱动包的时候,拷贝一个mysql8.0的才可以。
记得继续执行那句话:
/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm root 123456
看到如下语句就说明:你的mysql中已经有cm这个系统的数据了。
All done, your SCM database is configured correctly!查看:cat /etc/cloudera-scm-server/db.properties

12、启动cm服务

启动server服务进程(查看7180端口)
systemctl start cloudera-scm-server
查看启动日志:
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
查看启动状态:
systemctl status cloudera-scm-server
查看端口
netstat -an | grep 7180

当你的日志不再打印的时候,就启动成功了,启动时间大约2分钟。

或者当你能够查看到7180端口被占用的时候,也就说明成功了。

13、登录

访问地址:http://192.168.233.200:7180/cmf/login

账号和密码:admin admin 登录即可

至此,CM安装完毕,CDH还没有安装呢。

14、设置刷新频率

点击上面的图片的Logo,或者直接输入网址:http://192.168.233.200:7180/cmf/home,进入这个界面

四、安装CDH

1、配置本地parcel包

注意:必须要在数据库初始化后,将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

2、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

3、创建一些目录,添加分组

mkdir -p /var/lib/cloudera-host-monitor
mkdir -p /var/lib/cloudera-service-monitorchown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor/

4、创建集群

给集群起个名字:

jdk不需要安装,因为我们装过了。

在哪里呢?查询一下
find / -name java
发现jdk的安装路径为:/usr/java/jdk1.8.0_181-cloudera/配置一下java home
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export PATH=$PATH:$JAVA_HOME/bin保存之后刷新环境变量:
source /etc/profile

设置密码:

安装:

选择套餐:

后面的一直默认即可,直到开始安装hdfs。

点击完成,可以看到主界面了。

测试一下hdfs是否正常使用:

http://192.168.233.200:9870/

5、安装与使用hdfs

又想安装:

想安装什么服务,就选择什么服务,安装过程稍微慢一些。

假如想使用hdfs,访问 9870页面,想创建一个文件夹,发现没有权限:

如果按照以前的习惯,修改配置文件,配置相应的代码即可,使用CDH之后,所有的配置,都变成了在页面上修改。

以前修改的hdfs-site.xml ,变为在页面中修改。

修改的配置,需要重启才能生效。

重启完之后再次使用hdfs,测试是否还有权限问题。

如果你不习惯在页面修改配置文件,可以搜索,一般都在/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774 下。

页面中可以查看hdfs集群的运行情况,也看到了集群的健康状况。

点击后面的 Suppress(抑制)。

假如你安装过程中出现了datanode启动不起来,检查 网络IP是否正确。将dhcp 修改为 static

重启网卡:systemctl restart network

接着:停止hdfs服务,删除 /dfs 目录下的三个文件。

卸载hdfs服务,重新添加hdfs 服务,这个时候会重新进行namenode 格式化。

6、安装yarn

添加服务--> 选择 yarn-- > 自动安装即可

如何使用yarn,跑一个任务
在home 下  创建一个wc.txt
里面随便输入一些需要统计的词
bigdata hadoop
bigdata hello hadoop将这个任务,上传至hdfs
首先创建一个文件夹  hdfs dfs -mkdir -p /home/input
上传文件至: hdfs dfs -put /home/wc.txt /home/input使用hadoop自带的jar包,运行任务
yarn jar /opt/cloudera/parcels/CDH/jars/hadoop-mapreduce-examples-3.0.0-cdh6.2.1.jar wordcount /home/input/* /home/output

在界面中,还可以访问到:http://192.168.233.200:8088/cluster

7、安装zookeeper

通过命令进入zk查看是否可用。

find / -name zkCli.sh
/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/zookeeper/bin/zkCli.sh -server cdh:2181

8、hive

要想创建hive,hive需要mysql充当元数据的表服务。

mysql -uroot -p
create database hive;

安装hive服务,需要用到mysql

通过以上可以看出缺少jar包

cp /opt/cloudera/cm/lib/mysql-connector-java-8.0.26.jar /opt/cloudera/parcels/CDH/lib/hive/lib/

拷贝完成之后,记得点击 resume 一下。

测试hive的用法:

直接在黑窗口中hive 一下。
进入,编写一些简单的sql语句,比如 show databases;
select from_unixtime(1583781807, 'yyyy-MM-dd');注意:此时的metastore 以及hiveserver2 都已经启动了,但是使用datagrip 连接的时候缺少一个包。

9、kafka

10、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.txtleo|12|class1
leo1|13|class2
leo2|14|class3
leo3|15|class4
leo4|16|class5
leo5|17|class6cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/sqoop/lib/sqoop export \
--connect jdbc:mysql://cdh:3306/test1 \
--username root \
--password 123456 \
--table t_user \
--columns 'name,age,class' \
--export-dir /data \
--input-fields-terminated-by '|' \
--num-mappers 1

11、flume

12、Hue

Hue 其实是一个提供了图形化界面集成的工具,比如可以把hive、Yarn、hdfs、mysql。

Hue -- 将各种软件的使用集成在了一起。可以在这个界面上使用hive、mysql、hdfs等。重在软件的使用。

CM -- 重在各种软件的安装、配置、启动等。

mysql -uroot -p
create database hue default character set utf8 collate utf8_general_ci;提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/oozie/lib/

安装成功后,进入一个界面:http://192.168.233.200:8888/

默认集成了 hive、hdfs、yarn

还可以集成ozzie、mysql等服务,一个界面可以展示很多的服务。

Hue目前已经变为一个单独的项目,不需要在cdh中。 启发:在公司中一般都会有一个大数据平台,在一个平台上可以操作多个任务。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

500左右的骨传导耳机哪个牌子好?用户体验良好的五大骨传导耳机

作为一名拥有十几年从业经验的科技爱好者,我主要想告诉大家一些关于骨传导耳机的知识。其中,要远离所谓的不专业产品,它们的佩戴不适和音质不佳问题高得吓人,尤其是很多宣称能提供舒适佩戴和高音质的产品,超过九成的用…

【YOLOv11改进[注意力]】引入DA、FCA、SA、SC、SE + 含全部代码和详细修改方式

本文将进行在YOLOv11中引入DA、FCA、SA、SC、SE魔改v11,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 一 DA、FCA、SA、SC、SE ① DA 论文:Dual Attention Network for Scene Segm

捉虫笔记(六)-谁把系统卡住了?

06-谁把系统卡住了? 1、现象 QA反馈,在软件退出的时候,会把整个系统卡住,将近40s。我第一反应这么离谱,我们的软件有这么大的“魅力”,将老大哥抖三抖。 我立马重现现场,果然如此。虽然没有Q…

网络安全之信息收集-实战-2

请注意,本文仅供合法和授权的渗透测试使用,任何未经授权的活动都是违法的。 目录 7、网络空间引擎搜索 8、github源码泄露 9、端口信息 10、框架指纹识别 11、WAF识别 12、后台查找 7、网络空间引擎搜索 FOFA:https://fofa.info/ 360 …

51c自动驾驶~合集30

我自己的原文哦~ https://blog.51cto.com/whaosoft/12086789 #跨越微小陷阱,行动更加稳健 目前四足机器人的全球市场上,市场份额最大的是哪个国家的企业?A.美国 B.中国 C.其他 波士顿动力四足机器人 云深处 绝影X30 四足机器人 &#x1f…

Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找

一,数组翻转 1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一 创建跳板temp,进行min和max的互换,然后min自增,max自减,当min>max的时候停止互换,代表到中间值 用代码实…

jquery 链模式调用简易实现

<script>// 定义一个名为A的构造函数&#xff0c;接受selector和context参数var A function (selector, context) {// 返回一个新的A.fn.init实例return new A.fn.init(selector, context);}// 设置A的原型和fn属性A.fn A.prototype { // 强化构造器:// 当显式地重写 …

无人机侦察打击方案(1)

​​​​​ 概述 任务来源于无人机侦察研制任务&#xff0c;涵盖无人机目标昼夜识别与跟踪、目标定位等功能任务。 组成及功能 无人机侦察系统设备构成如下图所示&#xff0c;分为光电云台、激光打击设备与操控端构成。 图 1 设备组成与链路 光电云台完成无人机目标自主识别…

Windows 系统通过 MSTSC 上传文件到 Windows 云服务器

操作场景 文件上传 Windows 云服务器的常用方法是使用 MSTSC 远程桌面连接&#xff08;Microsoft Terminal Services Client&#xff09;。本文档指导您使用本地 Windows 计算机通过远程桌面连接&#xff0c;将文件上传至 Windows 云服务器。 前提条件 请确保 Windows 云服务…

激光雷达定位初始化的另外一个方案 通过键盘按键移动当前位姿 (附python代码)

通常使用的是通过在 rviz 中点选指定初始化位置和方向来完成点云的初始化匹配。 但是这种粗略的初始化方法有时候可能不成功,因此需要使用准确的初始化方法,以更好的初始值进行无损检测配准。 为了提供更好的匹配初始值,我使用 Python 脚本获取键盘输入,并不断调整这个匹配…

枚举与lambda表达式,枚举实现单例模式为什么是安全的,lambda表达式与函数式接口的小九九~

目录 认识枚举 全文重点&#xff1a;枚举在单例模式中为什么是安全的&#xff1f; Lambda 表达式 概念&#xff1a; 函数式接口 lambda表达式的基本使用&#xff1a; lambda表达式的语法精简&#xff1a; lambda表达式的变量捕获 Lambda在集合当中的使用 在 Collecti…

【JAVA】一次操蛋的nginx镜像之旅

一、前言 由于我们的项目中使用到了nginx&#xff0c;同时我们的nginx是通过docker镜像进行安装的&#xff0c;由于nginx出现了问题&#xff0c;需要重新安装。于是。。。 二、通过docker进行安装 docker pull nginx:latest 1.5.2 脚本文件 在/home/docker/script路径下创…

高并发场景下的热点key问题探析与应对策略

目录 一、问题描述 二、发现机制 三、解决策略分析 &#xff08;一&#xff09;解决策略一&#xff1a;多级缓存策略 客户端本地缓存 代理节点本地缓存 &#xff08;二&#xff09;解决策略二&#xff1a;多副本策略 &#xff08;三&#xff09;解决策略三&#xff1a;热点…

.NET 9 的新增功能

文章目录 前言一、.NET 运行时二、序列化三、缩进选项四、默认 Web 选项五、LINQ六、集合七、PriorityQueue.Remove() 方法八、密码九、CryptographicOperations.HashData() 方法十、KMAC 算法十一、反射十二、性能十三、循环优化十四、本机 AOT 的内联改进十五、PGO 改进&…

11.19.2024刷华为OD

文章目录 HJ51HJ53 杨辉三角HJ56HJ57 高精度整数加法HJ58HJ60 简单题HJ63 DNA序列&#xff08;简单题&#xff09;语法知识记录 HJ51 https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d?tpId37&tags&title&difficulty0&judgeStatus0&…

小米表盘自定义工具支持最新小米9pro

app下载(v5.2.28) 点击下载 介绍 米坛小米表盘自定义工具是专为小米手环用户设计的软件&#xff0c;它具备以下特点和功能&#xff1a; 兼容性广泛&#xff1a;支持包括小米手环7、7Pro、8、8Pro、9、9Pro以及小米手表S3、S4在内的多款设备。 持续更新&#xff1a;软件不断…

算法-二叉树(从理论知识到力扣题,递归、迭代。)

二叉树 一、二叉树理论知识1、种类a.满二叉树b.完全二叉树c.二叉搜索树d.平衡二叉搜索树 2、java对于树的理解3、存储a.链式存储&#xff08;常用&#xff09;b.数组存储 4、遍历方式a.深度优先搜索b.广度优先搜索 5、树的定义&#xff08;链式&#xff09; 二、力扣题解写题思…

青训营刷题笔记10

问题描述 小C拿到了一个排列&#xff0c;她想知道在这个排列中&#xff0c;元素 xx 和 yy 是否是相邻的。排列是一个长度为 nn 的数组&#xff0c;其中每个数字从 11 到 nn 恰好出现一次。 你的任务是判断在给定的排列中&#xff0c;xx 和 yy 是否是相邻的。 测试样例 样例1…

时间类的实现

在现实生活中&#xff0c;我们常常需要计算某一天的前/后xx天是哪一天&#xff0c;算起来十分麻烦&#xff0c;为此我们不妨写一个程序&#xff0c;来减少我们的思考时间。 1.基本实现过程 为了实现时间类&#xff0c;我们需要将代码写在3个文件中&#xff0c;以增强可读性&a…

Leetcode 路径总和

使用递归算法 class Solution {public boolean hasPathSum(TreeNode root, int targetSum) {// 如果节点为空&#xff0c;返回falseif (root null) {return false;}// 如果是叶子节点&#xff0c;检查路径和是否等于目标值if (root.left null && root.right null) …