1
插入和查詢大量的數據我必須建立與Java和Hadoop的系統來處理大量的數據處理(JSON格式)的要求。我要創建的系統包括向文件存儲(無論是HDFS還是數據庫)插入數據並查詢處理後的數據的Java Hadoop的JSON格式
我大致瞭解如何使用Hadoop MapReduce查詢用戶需要的數據。 但是有一件事讓我感到困惑的是我該如何插入數據。我應該使用HDFS並使用Hadoop API使用Java插入文件嗎?還是使用其他工具(例如HBase,Relational Database,NoSQL Database)來插入數據,以便Hadoop MapReduce將從我將使用的其他工具中獲取輸入數據更好?
請指教。
非常感謝您
這要看你的「處理的數據」是哪裏來的?如果它只是一些文件,那麼你可以使用'hadoop fs -put'。如果從另一個系統來那麼你可以使用其他工具,如卡夫卡/水槽/星火/等 –
其實,大的圖景是我的Java應用程序將寫入日誌上的WEP應用,約200日誌記錄的進程JSON格式的服務器端文件( /秒)。減少記錄文件的地圖將分開完成,手動(不通過應用程序中的某些功能)。我讀過使用帶有hadoop API的java編寫HDFS,但是使用hadoop API同時寫入一個文件是否是線程安全的?或者我應該使用其他工具來編寫日誌文件? –
不,它不會是線程安全的,寫入單個文件的多個進程將帶來痛苦的世界。你可以1)管理你自己的線程。 2)看看[Apache Flume](https://flume.apache.org/index.html)。它有一個[HTTP源](https://flume.apache.org/FlumeUserGuide.html#http-source)或3)寫出200個文件,然後減少它們 –