A quick question, I have only enabled Pinot Server...
# general
m
A quick question, I have only enabled Pinot Servers without HDFS. And data has been populating on them. Now when I enable HDFS, how the data sends to HDFS? 1. Will it automatically send data into HDFS 2. Or Pinot-server and pinot-controllers restart required? 3. Or rebalance or reload table will do the magic of sending data into hdfs? 4. NOPE : Nothing will do, after enabling hdfs. you need to drop table and recreate on pinot so it will start sending data to pinot and hdfs.
x
do you already use hdfs for deep store or it’s using controller disk?
if you are already using hdfs for controller deep store, then you don’t need to do anything
otherwise, all old data will be stay where it is, but new data pushed will be on hdfs
OR you need to move data to deep store and modify the segment metadata yourself
m
Got it thanks
To correct my understanding • if controller deep store disks are in hdfs, then it will push data to server deepstorage also for whatever data pinot server has. Since it has metastore information it can send it to hdfs deep store newly configured on pinot servers. Right?
x
pinot uses deep store for data backup.
both controller and server should use same deep store
before: realtime segments pushed from pinot server -> controller -> hdfs new: segments are pushed from server -> hdfs
m
Ah so if pinot server was using controller deepstore before then it is possible, well my query is i never enabled hdfs on both controller nor pinotserver , first time i enabled on controller and server and did rolling restart on them. In this case how i can backfill existing pinot data into hdfs?
x
you need to manually copy those segments from controller deep store to hdfs
m
Controller deep store just has metastore segments? Not actual pinot data. Am I right?
x
deep store has compressed data, used as backup; metastore is in zookeeper

https://www.youtube.com/watch?v=RmZm9PPsFrU&list=PLihIrF0tCXdfN6y-twj9KtWaXM1GH4RSe&index=5▾

m
Good Morning, was out on weekend, your response:
you need to manually copy those segments from controller deep store to hdfs
-> Controller doesn't have deepstore . As i mentioned am first time enabling them. In that case I guess my option (4) is what I should consider I believe.
x
hmm, then what’s the download url for the segment in your segment metadata? could you please check
m
local /data/controller
x
what’s the sample url
m
Something like this. # Pinot Controller VIP Port controller.vip.port=9000 # Location to store Pinot Segments pushed from clients controller.data.dir=/data/pinot
x
oh, I mean go to UI, check cluster and find any table , find a segment, and check segment metadata, there is a field segment.download.url
m
right now since I have hdfs enabled so it shows : "segment.download.url": "hdfs://pinotpoc/user/pinot/airlineStats/airlineStats_16082_16082_0" Earlier this must be null , since I never had a hdfs layer.
x
ok, can you check older segments metadata?
new segments are hdfs then you are good to go
so the steps are: 1. find old segments download url, -> find where those segments tar file physically located 2. copy them to hdfs 3. update segment metadata download url to the hdfs url