当前位置: 首页 > news >正文

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进行更深入的配置和优化,充分发挥其优势,为数据分析提供强有力的支持。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网络防御保护——网络安全概述
  • 第二周:李宏毅机器学习笔记
  • Android知识收集
  • openGauss配置vscode编译调试环境
  • Python: 分块读取文本文件
  • SQL注入如何判断数据库类型
  • JVM专题之G1垃圾收集器下
  • python学习-容器类型
  • Redis 7.x 系列【22】主从复制配置项
  • 创建数据库表的语法定义包含了SQL Server、Mysql、PostgreSQL、SQLite的示例
  • zabbix 学习笔记
  • 基础架构服务API:降低成本,提升业务效益
  • DropNotch for Mac v1.0.1 在 Mac 刘海快速使用 AirDrop
  • 华为机考真题 -- 攀登者1
  • 深入浅出Transformer:大语言模型的核心技术
  • 【391天】每日项目总结系列128(2018.03.03)
  • CSS 专业技巧
  • fetch 从初识到应用
  • gulp 教程
  • Java IO学习笔记一
  • java概述
  • jquery ajax学习笔记
  • MaxCompute访问TableStore(OTS) 数据
  • Median of Two Sorted Arrays
  • Odoo domain写法及运用
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Redis在Web项目中的应用与实践
  • Vue 动态创建 component
  • 复习Javascript专题(四):js中的深浅拷贝
  • 工程优化暨babel升级小记
  • 构造函数(constructor)与原型链(prototype)关系
  • 机器学习学习笔记一
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端js -- this指向总结。
  • 软件开发学习的5大技巧,你知道吗?
  • 问题之ssh中Host key verification failed的解决
  • 小李飞刀:SQL题目刷起来!
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • $.ajax()参数及用法
  • $NOIp2018$劝退记
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (差分)胡桃爱原石
  • (第一天)包装对象、作用域、创建对象
  • (二)pulsar安装在独立的docker中,python测试
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)Sql Server 保留几位小数的两种做法
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .net core 的缓存方案