請教各位大拿:Tachyon和Redis有什麼區別?
02-05
在Spark使用場景下,Redis和Tachyon都是可以作為分散式cache層對系統進行加速,唯一不同在於Redis是kv介面,Tachyon是文件系統介面,所以我的問題是:Redis是不是可以完全取代Tachyon?如果不能的話,請問在哪些場景下來需要使用Tachyon?
redislab為spark寫了一層redis數據存取的封裝,這樣可以將所有數據存入redis,並從redis讀取,不需要讀寫hdfs,https://redislabs.com/solutions/spark-and-redis。源碼可以上github:GitHub - RedisLabs/spark-redis: A connector for Spark that allows reading and writing to/from Redis cluster。
不是大拿,也來強答。對Tachyon不太熟悉,專門查了一下。如 @Marvin 所說,Tachyon是分散式文件系統,也就是說Tachyon實現了文件的存儲結構,比如inode節點,數據block,以及文件查詢的API,比如某個文件在哪個block上面,並且能以文件流的形式對數據進行讀寫,可以理解為這個是和NTFS、EXT4這些進行比較的,只是Tacyon的數據都放在內存中,不在硬碟中,快快快!而Redis就是個內存資料庫,是的,是個資料庫,資料庫是構建在存儲系統之上的,Redis用了內存和文件系統,和Tachyon不在一個層次上。
至於Redis能不能取代Tachyon,一般的想法是如果你做足夠多的額外工作,是可以的,but why?沒意義對不對。。。。
2016-10-20 基於redis的spark數據存取,如 @楊怡玲 答案所說,已經有了,所以也不用自己造輪子了,當然我還是不知道這樣有什麼額外的好處。。。這樣想來,如果Tachyon能保證數據的可靠性,將其它系統的底層文件系統緩存Tachyon,那是不是以後的在線系統硬碟基本沒用了,,,,一個是分散式文件系統,一個是資料庫,完全不一樣的東西。Spark可以把中間結果緩存到Tachyon上,但是不可能緩存到Redis裡面吧。Redis可以做快速查詢,Tachyon能做查詢么?
還是得看場景,redis適合按key做點查詢和更新,tachyon沒用過,從介紹來看是個內存文件系統,在按塊存取上吞吐量應該比redis有優勢。就spark替代hdfs存儲中間過程的場景來說,我會選tachyon,如果是按id查緩存的資料,我會選redis或者它的集群版本codis。
一般來說,資料庫系統是一個架構在文件系統智商的抽象,提供了更多的功能和約束(比如查詢、事務),用於對數據有查詢需求、對數據有一致性需求的場合。
所以,我猜Tachyon至少性能應該比Redis要高。
推薦閱讀:
※如何解釋spark mllib中ALS演算法的原理?
※大數據帶你看穿航班晚點的套路
※大數據分析美國大選——Twitter數據情感分析
※第四範式的人工智慧平台 Prophet 有可能替代 Spark 么?
※怎樣理解spark中的partition和block的關係?