我在HDFS上有一個目錄例如:/ user/customers,在這個目錄中我每隔3 min,我想編寫一個shell腳本來檢查這個文件夾,如果有新文件可用,那麼這個文件數據將被放入HBASE中,我已經知道我將如何將數據放入HBASE中。但我對shell腳本非常陌生,我想知道如何獲得新的文件名。如何使用shell腳本每4分鐘在HDFS(Hadoop)上查找目錄中是否有新文件
我的hadoop的命令,將數據文件的HBASE如下:
hadoop jar /opt/mapr/hbase/hbase-0.94.12/hbase-0.94.12-mapr-1310.jar importtsv -Dimporttsv.separator=, -Dimporttsv.columns=HBASE_ROW_KEY,cust:phno,cust:name,cust:memebershiptype /user/tablename customer.csv
如今的想法是與在文件夾中最近傾倒的文件名來替換這個customer.csv
文件名,然後運行這個命令。
所以,如果我沒有錯,我將需要一個cron工作來完成調度部分。但是我需要關於如何在上面提到的命令中獲得新文件名的邏輯。接下來我要學習的是每4分鐘安排一次crontab。 請指導專家。
'diff /home/givpath/customer_all_files.txt /home/givepath/customer_processedfiles.txt>/home/givepath/need_to_process.txt' 增加了一個額外的行'1d0',並且在開始處添加了字符'<' – user2960226 2015-03-26 11:00:53
離開它在差異level.just更新for循環awk打印$ 2值。 awk'{print $ 2}'newfile1.txt – 2015-03-26 11:20:36
給我錯誤'./find_unprocessed_files.sh:命令替換:第28行:意外的EOF查找匹配的''' ./find_unprocessed_files.sh:命令替換:第29行:語法錯誤:意外的文件結尾 ' – user2960226 2015-03-26 12:00:48