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 all
   yum makecache
5、yum install -y ntpdate
   yum 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 fuse
	yum install -y /lib/lsb/init-functions createrepo deltarpm python-deltarpm
	yum 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 0

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

reboot 重启的意思    
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-scm

test123456
--免密钥登录
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_64
 GPG  密钥配置为: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-monitor

chown -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.txt

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



cp /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中。 启发:在公司中一般都会有一个大数据平台,在一个平台上可以操作多个任务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 | SpringBoot+vue汽车资讯网站 汽车购买咨询管理系统(附源码+论文)

1,绪论 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理汽车资讯网站的相关信息成为必然…

24.11.19 web框架

2.2配置环境变量 2.3maven命令测试 mvn -v 测试maven查看版本 2.4maven仓库配置 配置远程仓库地址 配置本地仓库 2.5idea中配置maven 2.6通过配置idea 创建maven项目 创建项目时 构建系统 选到maven 初次创建项目时 会把maven的基础依赖库(jar包) 下载到本地仓库 需要等待一…

【Golang】——Gin 框架中的模板渲染详解

Gin 框架支持动态网页开发,能够通过模板渲染结合数据生成动态页面。在这篇文章中,我们将一步步学习如何在 Gin 框架中配置模板、渲染动态数据,并结合静态资源文件创建一个功能完整的动态网站。 文章目录 1. 什么是模板渲染?1.1 概…

【list的模拟实现】—— 我与C++的模拟实现(十四)

一、list节点 ​ list是一个双向循环带头的链表&#xff0c;所以链表节点结构如下&#xff1a; template<class T>struct ListNode{T val;ListNode* next;ListNode* prve;ListNode(int x){val x;next prve this;}};二、list迭代器 2.1、list迭代器与vector迭代器区别…

QString 转 char*问题与方法(const_cast的使用问题)

1、背景:今天有QString的变量&#xff0c;将QString的值传递给void func(char * ptr)&#xff0c;于是就有了类似下面这一段离谱的代码 当时我还在想为什么var的值为空了&#xff0c;为什么呢。 2、原因:就是因为右边函数返回的是一个临时指针对象&#xff0c;给到了右边&…

每天五分钟机器学习:支持向量机算法数学基础之核函数

本文重点 从现在开始,我们将开启支持向量机算法的学习,不过在学习支持向量机算法之前,我们先来学习一些支持向量机所依赖的数学知识,这会帮助我们更加深刻的理解支持向量机算法,本文我们先来学习核函数。 定义 核函数(Kernel Function)是一种在支持向量机(SVM)、高…

云原生之运维监控实践-使用Prometheus与Grafana实现对Nginx和Nacos服务的监测

背景 如果你要为应用程序构建规范或用户故事&#xff0c;那么务必先把应用程序每个组件的监控指标考虑进来&#xff0c;千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章&#xff0c;当…

MiniMates:一款轻量级的图片数字人驱动框架

随着数字人技术的不断发展,越来越多的应用场景开始涌现,从虚拟主播到AI伴侣,数字人的应用范围越来越广。然而,现有的数字人驱动框架往往存在性能瓶颈、依赖性强、定制难度高等问题。近期,我发现了一款名为 MiniMates 的轻量级图片数字人驱动框架,它在性能、个性化定制和终…

SpringBoot3_Web开发

4. 内容协商 一套系统适配多端数据返回 移动端&#xff1a;返回JSON数据第三方&#xff1a;返回XMLIoT&#xff1a;返回自定义协议数据 1. 默认规则 1. SpringBoot 多端内容适配 基于请求头内容协商 【默认】 客户端向服务端发送请求&#xff0c;携带HTTP标准的 Accept 请求…

C++ —— 剑斩旧我 破茧成蝶—C++11

江河入海&#xff0c;知识涌动&#xff0c;这是我参与江海计划的第2篇。 目录 1. C11的发展历史 2. 列表初始化 2.1 C98传统的{} 2.2 C11中的{} 2.3 C11中的std::initializer_list 3. 右值引用和移动语义 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延长生命周期…

mysql复习题(实验7-8)

建立一个学生入学信息管理&#xff08;x_y&#xff09;数据库&#xff0c;设计其数据库模式为&#xff1a; 学生表&#xff08;学号&#xff0c;姓名&#xff0c;性别&#xff0c;入学成绩&#xff0c;籍贯&#xff0c;院系编号&#xff09; 院系表&#xff08;院系编号&…

详细分析ipvsadm负载均衡的命令

目录 前言1. 基本知识2. 命令参数3. 拓展 前言 LVS四层负载均衡架构详解Lvs推荐阅读&#xff1a;添加链接描述 1. 基本知识 ipvsadm 是用于管理和配置 Linux 服务器上 IP Virtual Server (IPVS) 的工具&#xff0c;是 Linux 提供的一个负载均衡模块&#xff0c;支持多种负载…

反向代理模块

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

大数据新视界 -- Impala 性能突破:复杂数据类型处理的优化路径(上)(25 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Excel使用-弹窗“此工作簿包含到一个或多个可能不安全的外部源的链接”的发生与处理

文章目录 前言一、探讨问题发生原因1.引入外部公式2.引入外部数据验证二、问题现象排查及解决1.排查公式2.排查数据验证3.特殊处理方式总结前言 作为一种常用的办公软件,Excel被大家所熟知。尽管使用了多年,有时候在使用Excel时候也会发生一些不太常见的现象,需要用心核查下…

【小程序】dialog组件

这个比较简单 我就直接上代码了 只需要传入title即可&#xff0c; 内容部分设置slot 代码 dialog.ttml <view class"dialog-wrapper" hidden"{{!visible}}"><view class"mask" /><view class"dialog"><view …

跨平台WPF框架Avalonia教程 一

安装 安装 Avalonia UI 模板​ 开始使用 Avalonia 的最佳方式是使用模板创建一个应用程序。 要安装 Avalonia 模板&#xff0c;请运行以下命令&#xff1a; dotnet new install Avalonia.Templates 备注 对于 .NET 6.0 及更早版本&#xff0c;请将 install 替换为 --inst…

JSON.stringify的应用说明

前言 JSON.stringify() 方法将 JavaScript 对象转换为字符串,在日常开发中较常用&#xff0c;但JSON.stringify其实有三个参数&#xff0c;后两个参数&#xff0c;使用较少&#xff0c;今天来介绍一下后两个参数的使用场景和示例。 语法及参数说明 JSON.stringify()&#xf…

家庭网络常识:猫与路由器

这张图大家应该不陌生——以前家庭网络的连接方式。 图1 家庭网络连接示意图 来说说猫/光猫&#xff1a; 先看看两者的图片。 图2 猫 图3 光猫 这个东西因为英文叫“modem”&#xff0c;类似中文的“猫”&#xff0c;所以简称“猫”。 猫和光猫的区别就是&#xff0c;一…

core 不可变类型 线程安全 record

当一个类型的对象在创建时被指定状态后&#xff0c;就不会再变化的对象&#xff0c;我们称之为不可变类型。这种类型是线程安全的&#xff0c;不需要进行线程同步&#xff0c;非常适合并行计算的数据共享。它减少了更新对象会引起各种bug的风险&#xff0c;更为安全。 System.D…