Kylin系列(三)安装与配置:搭建你的第一个 Kylin 环境

目录

1. Kylin 简介

1.1 Kylin的核心特点

1.2 适用场景

2. 环境准备

2.1 硬件要求

2.2 软件依赖

3. 安装与配置

3.1 安装JDK

3.2 安装Hadoop

3.2.1 下载并解压Hadoop

3.2.2 配置Hadoop环境变量

3.2.3 配置Hadoop文件

3.2.4 格式化HDFS并启动Hadoop服务

3.3 安装Hive

3.3.1 下载并解压Hive

3.3.2 配置Hive环境变量

3.3.3 配置Hive文件

3.3.4 启动Hive服务

3.4 安装ZooKeeper

3.4.1 下载并解压ZooKeeper

3.4.2 配置ZooKeeper环境变量

3.4.3 配置ZooKeeper文件

3.4.4 启动ZooKeeper服务

3.5 安装Kylin

3.5.1 下载并解压Kylin

3.5.2 配置Kylin环境变量

3.5.3 配置Kylin文件

3.6 启动Kylin服务

3.7 验证Kylin服务

4. 创建和管理Kylin Cube

4.1 创建新项目

4.2 导入数据

4.3 创建Cube

4.4 构建Cube

5. 运行查询

6. 性能优化

6.1 优化Cube设计

6.2 调整Hadoop和HBase配置

6.3 增量构建

7. 维护和管理

7.1 监控Kylin服务

7.2 备份和恢复

8. 常见问题及解决方案

8.1 启动失败

8.2 查询性能较低

9. 结论


在大数据分析领域,Kylin作为一款开源的分布式分析引擎,以其高性能和易用性,受到了广泛关注。它能够将大规模数据集快速地转换为OLAP(在线分析处理)数据,支持复杂的SQL查询,极大地提升了数据分析的效率。本文将详细介绍如何在本地或服务器上搭建你的第一个Kylin环境,从安装依赖到配置Kylin服务,帮助你快速入门,开始进行数据分析和查询。

1. Kylin 简介

1.1 Kylin的核心特点

Kylin的设计初衷是为了应对大数据环境下的复杂查询需求,其核心特点包括:

  • 高性能:通过MPP(大规模并行处理)架构,Kylin能够在数亿级数据上进行快速的分析查询。
  • 易用性:支持SQL查询,降低了数据分析的门槛,用户可以使用熟悉的SQL语法进行数据分析。
  • 扩展性:Kylin支持与Hadoop、Hive、HBase等大数据组件的无缝集成,能够横向扩展,处理大规模数据。
1.2 适用场景

Kylin适用于各种数据分析场景,包括但不限于:

  • 商业智能(BI):快速响应的报表和数据可视化。
  • 数据仓库:为大数据环境下的数据仓库提供高性能的OLAP查询。
  • 实时分析:结合实时数据源,进行高效的实时数据分析。

2. 环境准备

2.1 硬件要求

搭建Kylin环境的硬件要求取决于数据量和查询复杂度。以下是基本的硬件要求:

  • CPU:多核处理器,建议至少4核以上。
  • 内存:至少8GB内存,推荐16GB以上。
  • 磁盘:SSD硬盘,确保数据读写速度,推荐至少100GB的可用空间。
2.2 软件依赖

在安装Kylin之前,需要确保系统上安装了以下软件和依赖:

  • Java Development Kit (JDK):推荐使用JDK 8或以上版本。
  • Hadoop:建议使用Hadoop 2.x或Hadoop 3.x版本,支持HDFS和YARN。
  • Hive:与Hadoop版本兼容的Hive,通常建议Hive 1.x或2.x版本。
  • ZooKeeper:Kylin依赖ZooKeeper进行服务协调,建议使用ZooKeeper 3.x版本。
  • MySQL:用于存储Kylin的元数据,推荐使用MySQL 5.7或以上版本。

3. 安装与配置

3.1 安装JDK
sudo apt update
sudo apt install openjdk-8-jdk
java -version
3.2 安装Hadoop
3.2.1 下载并解压Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1 /opt/hadoop
3.2.2 配置Hadoop环境变量
echo "export HADOOP_HOME=/opt/hadoop" >> ~/.bashrc
echo "export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH" >> ~/.bashrc
source ~/.bashrc
3.2.3 配置Hadoop文件

$HADOOP_HOME/etc/hadoop目录下,修改以下配置文件:

  • hadoop-env.sh:设置JAVA_HOME

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    

  • core-site.xml

    <configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
    </configuration>
    

  • hdfs-site.xml

    <configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:///opt/hadoop/hdfs/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:///opt/hadoop/hdfs/datanode</value></property>
    </configuration>
    

  • mapred-site.xml

    <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
    </configuration>
    

  • yarn-site.xml

    <configuration><property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
    </configuration>
    

3.2.4 格式化HDFS并启动Hadoop服务
hdfs namenode -format
start-dfs.sh
start-yarn.sh
3.3 安装Hive
3.3.1 下载并解压Hive
wget https://downloads.apache.org/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
tar -xzvf apache-hive-2.3.7-bin.tar.gz
sudo mv apache-hive-2.3.7-bin /opt/hive
3.3.2 配置Hive环境变量
echo "export HIVE_HOME=/opt/hive" >> ~/.bashrc
echo "export PATH=$HIVE_HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
3.3.3 配置Hive文件

$HIVE_HOME/conf目录下,修改以下配置文件:

  • hive-env.sh:设置JAVA_HOME

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    

  • hive-site.xml

    <configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hiveuser</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hivepassword</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
    </configuration>
    

3.3.4 启动Hive服务
start-metastore.sh
start-hiveserver2.sh
3.4 安装ZooKeeper
3.4.1 下载并解压ZooKeeper
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
tar -xzvf apache-zookeeper-3.6.3-bin.tar.gz
sudo mv apache-zookeeper-3.6.3-bin /opt/zookeeper
3.4.2 配置ZooKeeper环境变量
echo "export ZOOKEEPER_HOME=/opt/zookeeper" >> ~/.bashrc
echo "export PATH=$ZOOKEEPER_HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
3.4.3 配置ZooKeeper文件

$ZOOKEEPER_HOME/conf目录下,修改zoo.cfg文件:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
3.4.4 启动ZooKeeper服务
zkServer.sh start
3.5 安装Kylin
3.5.1 下载并解压Kylin
wget https://archive.apache.org/dist/kylin/apache-kylin-4.0.0/apache-kylin-4.0.0-bin.tar.gz
tar -xzvf apache-kylin-4.0.0-bin.tar.gz
sudo mv apache-kylin-4.0.0-bin /opt/kyl
sudo mv apache-kylin-4.0.0-bin /opt/kylin
3.5.2 配置Kylin环境变量
echo "export KYLIN_HOME=/opt/kylin" >> ~/.bashrc
echo "export PATH=$KYLIN_HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
3.5.3 配置Kylin文件

$KYLIN_HOME/conf目录下,修改kylin.properties文件:

# Hadoop configurations
kylin.env.hadoop-conf-dir=/opt/hadoop/etc/hadoop# HBase configurations
kylin.storage.hbase.cluster-fs=hdfs://localhost:9000/kylin
kylin.storage.hbase.table-name-prefix=KYLIN_# Hive configurations
kylin.source.hive.connection-url=jdbc:hive2://localhost:10000/default
kylin.source.hive.dialect=apache# Metadata storage configurations
kylin.metadata.url=kylin_metadata@jdbc,url=jdbc:mysql://localhost:3306/kylin,user=root,password=root# ZooKeeper configurations
kylin.env.zookeeper-connect-string=localhost:2181
3.6 启动Kylin服务
$KYLIN_HOME/bin/kylin.sh start
3.7 验证Kylin服务

打开浏览器,访问Kylin的Web界面:

http://localhost:7070/kylin

使用默认用户名ADMIN和密码KYLIN登录。如果能够成功登录并看到Kylin的控制台界面,说明Kylin服务已经成功启动。

4. 创建和管理Kylin Cube

4.1 创建新项目
  1. 登录Kylin Web界面后,点击右上角的Project,然后点击New Project
  2. 输入项目名称和描述,然后点击OK
4.2 导入数据
  1. 在Hive中创建一个示例表,并加载数据。
hive -e "
CREATE TABLE IF NOT EXISTS kylin_sample (id INT,name STRING,value DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';LOAD DATA LOCAL INPATH '/path/to/sample_data.txt' INTO TABLE kylin_sample;
"
  1. 在Kylin Web界面中,选择刚才创建的项目,点击Models,然后点击New Model
  2. 根据向导创建数据模型,选择Hive中的示例表kylin_sample,并设置模型属性和维度。
4.3 创建Cube
  1. 在Kylin Web界面中,点击Cube,然后点击New Cube
  2. 根据向导配置Cube的基本信息、维度、度量等。
  3. 完成Cube配置后,点击Save保存Cube。
4.4 构建Cube
  1. 在Cube列表中选择刚才创建的Cube,点击Build
  2. 选择构建范围和作业类型,点击Submit提交构建任务。
  3. 构建完成后,可以在Jobs页面查看构建任务的状态和日志。

5. 运行查询

  1. 在Kylin Web界面中,点击Insight,进入SQL查询页面。
  2. 输入SQL查询语句,选择相应的Cube,点击Run运行查询。
SELECT id, name, SUM(value) AS total_value
FROM kylin_sample
GROUP BY id, name
ORDER BY total_value DESC;
  1. 查询结果将显示在页面下方,可以对结果进行导出或进行进一步分析。

6. 性能优化

6.1 优化Cube设计
  1. 合理选择维度和度量:在设计Cube时,尽量选择对查询有帮助的维度和度量,避免冗余数据。
  2. 使用分区:对于大规模数据,可以考虑使用分区,减少每次查询的数据扫描量。
6.2 调整Hadoop和HBase配置
  1. 根据数据规模和查询复杂度,调整Hadoop和HBase的配置参数,例如内存分配、并发任务数等。
  2. 定期监控集群性能,发现瓶颈并进行相应的调整。
6.3 增量构建
  1. 对于实时性要求较高的数据,可以使用增量构建方式,定期更新Cube,减少全量构建的开销。

7. 维护和管理

7.1 监控Kylin服务
  1. 定期检查Kylin服务的运行状态,查看日志文件,及时发现和处理异常。
  2. 使用监控工具,如Prometheus和Grafana,监控Kylin服务的性能和资源使用情况。
7.2 备份和恢复
  1. 定期备份Kylin的元数据和HBase表,确保数据安全。
  2. 在需要时,可以通过备份数据恢复Kylin环境。

8. 常见问题及解决方案

8.1 启动失败
  1. 检查Kylin、Hadoop、Hive和ZooKeeper的配置文件,确保配置正确。
  2. 查看日志文件,定位错误信息,排查问题。
8.2 查询性能较低
  1. 优化Cube设计,减少不必要的维度和度量。
  2. 调整Hadoop和HBase的配置,提高查询性能。

9. 结论

通过以上步骤,你已经成功搭建了一个基本的Kylin环境,并了解了如何创建和管理Cube,进行数据查询和性能优化。Kylin作为一款高性能的OLAP引擎,能够极大地提升数据分析的效率。在实际应用中,你可以根据具体需求,对Kylin进行更深入的配置和优化,充分发挥其优势,为数据分析提供强有力的支持。

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

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

相关文章

hive架构详解:HQL案例解析(第15天)

系列文章目录 一、Hive基础架构&#xff08;重点&#xff09; 二、Hive数据库,表操作&#xff08;重点&#xff09; 三、Hadoop架构详解(hdfs)&#xff08;补充&#xff09; 四、Hive环境准备&#xff08;操作&#xff09;(补充) 文章目录 系列文章目录前言一、Hive基础架构1、…

4. 小迪安全v2023笔记 javaEE应用

4. 小迪安全v2023笔记 javaEE应用 ​ 大体上跟随小迪安全的课程&#xff0c;本意是记录自己的学习历程&#xff0c;不能说是完全原创吧&#xff0c;大家可以关注一下小迪安全。 若有冒犯&#xff0c;麻烦私信移除。 默认有java基础。 文章目录 4. 小迪安全v2023笔记 javaEE应…

分块

分块 分块是将线段树的懒标记方法一般化&#xff0c;可证明通常情况下以 n \sqrt n n ​分块是最优解。 分块思想核心&#xff1a; 整块打包维护 碎块逐个枚举 int len,num;//len:每块长度,num:分块数量 int begin[],end[],pos[],sum[],add[];//begin,end:每块的始末下标 po…

linux下安装cutecom串口助手;centos安装cutecom串口助手;rpm安装包安装cutecom串口助手

在支持apt-get的系统下安装 在终端命令行中输入&#xff1a; sudo apt-get install cutecom 安装好后输入 sudo cutecom 就可以了 关于如何使用&#xff0c;可以看这个https://www.cnblogs.com/xingboy/p/14388610.html 如果你的电脑不支持apt-get。 那我们就通过安装包…

‘wget‘ 不是内部或外部命令,也不是可运行的程序

在Windows环境下创建了虚拟环境并安装了wget包&#xff0c;但在使用该命令的时候仍然报错&#xff0c;‘wget’ 不是内部或外部命令,也不是可运行的程序 解决方案&#xff1a; 去官网下载对应位数的.exe文件&#xff0c;将其放在C:\Windows\System32目录下即可, 别下错版本&a…

宝塔面板部署Flask项目教程(最新版)

本教程适用于最新版的宝塔&#xff01;&#xff01;&#xff01; 本教程适用于最新版的宝塔&#xff01;&#xff01;&#xff01; 本教程适用于最新版的宝塔&#xff01;&#xff01;&#xff01; 1 准备 1.1 依赖文件 在你的项目根目录下生成一个依赖文件&#xff0c;执行…

美业收银系统怎么选?哪些功能实用?美业门店管理系统|拓客系统

选择美业会员系统时&#xff0c;你可以考虑以下几个方面的功能来确定哪些对你最实用&#xff1a; 1.会员管理&#xff1a; 系统应该能够轻松管理会员资料、积分、消费记录等信息&#xff0c;以便更好地了解客户需求并提供个性化服务。 2.促销与营销工具&#xff1a; 包括发…

Perl中追踪文件脉动:文件系统事件通知机制全解析

&#x1f4e1; Perl中追踪文件脉动&#xff1a;文件系统事件通知机制全解析 在Perl编程中&#xff0c;文件系统事件通知机制允许程序响应文件或目录的变化&#xff0c;例如文件的创建、删除、修改等。这种机制对于实现如文件监控、数据同步、自动化任务等应用至关重要。本文将…

电商开通云账户分账系统实现功能场景

什么是虚拟银行账户: 银行虚拟户也称为银行虚拟公户&#xff0c;是指企业或机构在银行开设的一种特殊类型的银行账户。它与普通银行账户不同&#xff0c;虚拟公户通常不涉及实际的资金流动&#xff0c;而主要用于管理和监控资金流向&#xff0c;以及实现特定的业务和财务目标。…

vue3项目安装和使用element-plus

第一步&#xff1a;安装 npm install element-plus --save 第二步&#xff1a;在main.js文件夹上引入 import { createApp } from vue import ./style.css import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app c…

3D云渲染工具对决:Maya与Blender的性能和功能深度比较

3D建模和动画制作已成为数字领域不可或缺的一环&#xff0c;无论是在影视特效的震撼场面&#xff0c;还是在游戏角色的生动表现&#xff0c;3D技术都扮演着至关重要的角色。而在这一领域&#xff0c;Maya和Blender这两款软件&#xff0c;以其强大的功能和广泛的应用&#xff0c…

【JavaEE】进程

目录 一.冯诺依曼体系结构 二.CPU的核心概念 核心数 频率&#xff08;Clock Speed 或时钟频率&#xff09; 如何选择合适的CPU 三.指令的执行 1.什么是指令 1.取指令 2.解析指令 3.执行指令 4.访问内存&#xff08;Memory&#xff09;: 5.写回结果&#xff08;Write…

视频解码故障案例两则

案例1 绿边 故障分析&#xff1a; 这个能明显看到视频上方出现绿色半透明边带。这说明Y数据正常。UV数据不正常。 它显然与视频帧的垂直分辨率设置有关。 UV数据和Y数据是连续放置的&#xff0c;如果上方出现彩色数据失调&#xff0c;说明这部分数据实际仍然是Y数据。也就是…

为什么我在go语言里从前端接收到的参数是数字28546.123456,但是我不能使用float32只能使用float64呢?

在 Go 语言中&#xff0c;当你从前端&#xff08;例如通过 HTTP 请求&#xff09;接收数据时&#xff0c;这些数据通常以字符串的形式到达后端。然后&#xff0c;后端需要将这些字符串解析或转换为适当的类型&#xff0c;比如 float32 或 float64。 然而&#xff0c;如果你发现…

JAVASE进阶day08(Map双列集合)

HashMap 1.HashMap基本使用 package com.lu.day08.map;import java.util.HashMap; import java.util.Map; import java.util.Set;public class MapDome {public static void main(String[] args) {HashMap<String , String> map new HashMap<>();//添加后者修改-…

H264视频编码中Annex B 格式介绍

Annex B 格式是 H.264 (也称为 AVC) 视频编码标准中的一种数据表示格式&#xff0c;用于将视频数据从编码器传输到解码器。它主要用于流媒体传输和文件存储。 文章目录 Annex B 格式的定义Annex B 格式的主要特点Annex B 与其他格式的对比Annex B 格式示例将 H.264 数据从 MP4…

查询(q_proj)、键(k_proj)和值(v_proj)投影具体含义

查询(q_proj)、键(k_proj)和值(v_proj)投影&#xff0c;这些投影是自注意力机制的核心组件&#xff0c;特别是在Transformer架构中。 让我们通过一个简化的例子来说明&#xff1a; import numpy as np# 假设输入维度是4&#xff0c;注意力头数是2 input_dim 4 num_heads 2 …

每天一道Java面试题系列之--Spring如何解决循环依赖问题

面试题&#xff1a;Spring如何解决循环依赖问题&#xff1f; 问题背景&#xff1a; 在Spring框架中&#xff0c;循环依赖通常发生在单例&#xff08;Singleton&#xff09;作用域的bean之间。当两个或多个bean在它们的构造函数中相互引用时&#xff0c;Spring容器在创建这些b…

电脑32位和62位是什么意思

在现代计算机世界中&#xff0c;32位和64位是两个常见的术语&#xff0c;但许多用户可能不太清楚它们的确切含义以及它们之间的区别。本文将详细介绍32位和64位计算机的基本概念、如何查看您的计算机是32位还是64位&#xff0c;以及它们对用户的实际影响。 32位与64位的基本概…

算法之工程化内容(1)—— Linux常用命令

目录 1. cd 命令 2. pwd 查看当前工作目录路径 3. SSH远程登录 4. ln -s 软链相关 5. mkdir 新建空目录 6. cp 复制 7. chown 权限改写 8. 进程相关&#xff08;nohup/ ps/ kill&#xff09; 9. tar -czvf/ tar -xzvf&#xff0c;zip/ unzip解压缩文件 10. df/ du/ free 11. hi…