Saya menjalankan kueri Hadoop dari skrip shell. Ini adalah bagaimana saya melakukannya di skrip shell saya.
echo "SELECT COUNT(*) FROM test" | hive
Saya ingin menangkap output apa pun yang dihasilkan hive
perintah. Jadi, saya menjalankan skrip shell saya sebagai:
./hivequery.sh 2>&1 | tee output.txt
Tapi, saya tidak bisa menangkap output dari hive
perintah. Bagaimana saya bisa melakukan itu?
tee
? Apakah itu berfungsi dengan pengalihan sederhana./hivequery.sh 2>&1 > output.txt
,? Apakah ini berfungsi jika Anda menjalankan perintah echo dan hive langsung dari terminal?|&
alih-alih2>&1 |
sintaks lama , ini lebih pendek. Cobalah tanpatee
terlebih dahulu, lalu bacaman tee
dan mainkan dengan parameter untuk membuatnya melakukan apa yang Anda inginkan. Jika tee tidak berfungsi, Anda harus mencari alternatif.script
? Misalnyascript elm
akan menangkap semua output dari program elm, termasuk kode warna dan penyegaran`. Salinan semua output akan dicatat dalam file.Jawaban:
Mengerti. Saya menambahkan operator pengalihan dalam perintah shell itu sendiri di dalam skrip.
The
script
juga bekerja.sumber
script
Ikuti dengan @Hennes disarankan di atas. Ide yang jauh lebih bersihCoba ini:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli
sumber