Apache Pinot是一个实时分布式OLAP数据存储,旨在以低延迟响应OLAP查询,它通常与Apache Kafka结合使用,用于实时数据提取和分析。
在本文中,小编主要介绍在Linux系统上安装Apache Pinot所需的步骤,主要包括下载和提取软件、设置配置以及启动服务,一起来看看吧。
先决条件
在安装Apache Pinot之前,请确保系统满足以下先决条件:
- 需要Java开发工具包(JDK)8或更高版本才能运行。
- Apache Pinot 使用Apache Zookeeper进行集群管理。
- 确保设置防火墙允许Pinot和Zookeeper通信所需的端口。
步骤1:在Linux中安装Java
如果你的系统上没有安装Java ,可以从Oracle官方网站下载并安装它。
对于大多数Linux发行版,可以使用包管理器来安装Java。例如在基于Debian的系统上,可以使用以下命令:
sudo apt-get install default-jdk
在基于Red Hat的系统上,可以使用以下命令:
sudo dnf install java-21-openjdk -y
安装完成后,可以通过运行以下命令来验证Java版本:
java -version
步骤2:在Linux中安装Zookeeper
Apache Pinot需要Zookeeper来进行集群管理,因此使用以下命令进行安装:
sudo apt install zookeeperd [基于Debian系统] sudo dnf install zookeeperd [基于RHEL系统]
安装后,启动、自动启用并验证Zookeeper服务的状态:
sudo systemctl start zookeeper sudo systemctl enable zookeeper sudo systemctl status zookeeper
步骤3:在Linux中安装Apache Pinot
从Apache Pinot官方网站下载最新版本的Apache Pinot ,或者使用以下wget 命令直接下载:
wget https://downloads.apache.org/pinot/apache-pinot-1.1.0/apache-pinot-1.1.0-bin.tar.gz
接下来,将下载的tarball解压到所需位置,并设置环境变量,以便更轻松地访问.bashrc
或.profile
文件中的Pinot二进制文件。
sudo tar -xvzf apache-pinot-1.1.0-bin.tar.gz -C /opt echo 'export PINOT_HOME=/opt/apache-pinot-1.1.0-bin' >> ~/.bashrc echo 'export PATH=$PINOT_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc
步骤 4:启动Apache Pinot服务
Apache Pinot由多个组件组成,每个组件都作为单独的服务运行,这些组件具体包括:
- Controller:管理Pinot集群并处理模式和表的创建。
- Broker:处理查询路由。
- Server:存储并提供数据。
- Minion:执行数据压缩和汇总等后台任务。
接下来需要在单独的终端窗口或作为后台进程启动每个服务,详细的命令如下所述。
启动Controller:
cd $PINOT_HOME bin/pinot-admin.sh StartController -configFileName conf/pinot-controller.conf
启动Broker:
cd $PINOT_HOME bin/pinot-admin.sh StartBroker -configFilePath conf/pinot-broker.conf
启动Server:
cd $PINOT_HOME bin/pinot-admin.sh StartServer -configFilePath conf/pinot-server.conf
启动Minion:
cd $PINOT_HOME bin/pinot-admin.sh StartMinion -configFilePath conf/pinot-minion.conf
最后可以通过检查PINOT_HOME中的日志目录中的各个日志来验证所有服务是否正在运行。
步骤5:配置Apache Pinot
Apache Pinot需要模式和表配置才能开始提取和查询数据。
创建一个目录来存储你的配置文件:
sudo mkdir $PINOT_HOME/configs
在configs目录中创建一个模式文件,例如my_schema.json
:
sudo nano $PINOT_HOME/configs/my_schema.json
添加以下架构配置内容:
{ "schemaName": "mySchema", "dimensionFieldSpecs": [ { "name": "myDimension", "dataType": "STRING" } ], "metricFieldSpecs": [ { "name": "myMetric", "dataType": "LONG" } ], "dateTimeFieldSpecs": [ { "name": "myDateTime", "dataType": "LONG", "format": "1:MILLISECONDS:EPOCH", "granularity": "1:MILLISECONDS" } ] }
接下来,在configs目录中创建一个表配置文件,例如my_table.json
:
sudo nano $PINOT_HOME/configs/my_table.json
添加下表配置内容:
{ "tableName": "myTable", "tableType": "REALTIME", "segmentsConfig": { "timeColumnName": "myDateTime", "schemaName": "mySchema", "replication": "1" }, "tableIndexConfig": { "loadMode": "MMAP" }, "tenants": {}, "tableRetentionConfig": {}, "ingestionConfig": { "streamIngestionConfig": { "type": "kafka", "streamConfigMaps": { "streamType": "kafka", "stream.kafka.topic.name": "myKafkaTopic", "stream.kafka.broker.list": "localhost:9092", "stream.kafka.consumer.type": "simple", "stream.kafka.consumer.prop.auto.offset.reset": "smallest", "realtime.segment.flush.threshold.size": "50000" } } }, "metadata": {} }
现在使用Pinot管理工具添加你的模式和表配置:
bin/pinot-admin.sh AddSchema -schemaFile $PINOT_HOME/configs/my_schema.json -exec bin/pinot-admin.sh AddTable -tableConfigFile $PINOT_HOME/configs/my_table.json -exec
步骤6:验证Apache Pinot设置
打开Web浏览器并转到Pinot Controller界面以验证你的架构和表是否已成功添加:
http://localhost:9000
另外,你还可以使用控制器UI中提供的Pinot查询控制台或使用Pinot查询命令行工具查询数据:
bin/pinot-admin.sh Query -brokerHost localhost -brokerPort 8099 -query "SELECT * FROM myTable LIMIT 10"
结论
在Linux系统上安装Apache Pinot涉及几个步骤,具体包括安装Java和Zookeeper、下载和提取Pinot二进制文件、启动 Pinot服务以及配置模式和表。
所以,在Linux上安装Apache Pinot之后,我们可以利用其强大的实时分析能力、高性能和扩展性,满足各种数据分析需求,同时借助开源社区的支持和Linux系统的优势,实现更高的成本效益。