2017-03-24 96 views
3

我想創建一個bashscript從本地邊緣節點文件系統上傳文件到hdfs。我想知道在文件中添加時間戳的好方法。在獲取時間戳工作時遇到一些問題。Bash腳本上傳文件到hdfs

#!/bin/bash 
echo Running upload script to hdfs... 
timestamp(){date +"%T"} 

hdfs dfs -put /home/myname/folder1/* /user/myname/example_1_$(timestamp).txt 
hdfs dfs -put /home/myname/folder2/* /user/myname/example_2_$(timestamp).txt 
+0

您是否期待結果模式爲'example_1_11:20:15.txt'? – franklinsijo

+0

是的,或者在文件名爲 – Defcon

+0

':'中的時間戳是不可能的。檢查下面的答案。 – franklinsijo

回答

2

使用date +%T是不可能的,因爲該命令的結果將包含它:字符,如11:12:45,並與:角色作成的文件名是不可能的HDFS。見Hadoop-3275

嘗試在腳本命令,

hdfs dfs -put /home/myname/folder1/* /user/myname/example_1_`date +%H%M%S`.txt 

這將創建一個文件名一樣/user/myname/example_1_111245.txt