2017-02-27 61 views
1

我試圖通過直線客戶端添加本地文件,但我一直遇到一個問題,它告訴我該文件不存在。直線添加本地文件(蜂巢)

[[email protected] tmp]$ touch /tmp/m.py 
[[email protected] tmp]$ stat /tmp/m.py 
    File: ‘/tmp/m.py’ 
    Size: 0   Blocks: 0   IO Block: 4096 regular empty file 
Device: 801h/2049d Inode: 34091464 Links: 1 
Access: (0664/-rw-rw-r--) Uid: (1036/ test) Gid: (1037/ test) 
Context: unconfined_u:object_r:user_tmp_t:s0 
Access: 2017-02-27 22:04:06.527970709 +0000 
Modify: 2017-02-27 22:04:06.527970709 +0000 
Change: 2017-02-27 22:04:06.527970709 +0000 
Birth: - 
[[email protected] tmp]$ beeline -u jdbc:hive2://hs2-test:10000/default -n r-zubis 
Connecting to jdbc:hive2://hs2-test:10000/default 
Connected to: Apache Hive (version 1.2.1.2.3.0.0-2557) 
Driver: Hive JDBC (version 1.2.1) 
Transaction isolation: TRANSACTION_REPEATABLE_READ 
Beeline version 1.2.1 by Apache Hive 
0: jdbc:hive2://hs2-test:10000/def> ADD FILE '/tmp/m.py'; 
Error: Error while processing statement: '/tmp/m.py' does not exist (state=,code=1) 
0: jdbc:hive2://hs2-test:10000/def> 

什麼問題?

+1

刪除引號... ! –

+0

@SamsonScharfrichter,這是問題的一部分。謝謝! –

回答

2

您只能在運行HiveServer2的Box上添加文件。 (我需要刪除引號),我通過在Cloudera上的博客評論找到它。不知道爲什麼這不是在直線文檔。

+0

Beeline是一個瘦客戶端。而JDBC被設計爲連接到SQL數據庫,而不是將文件上傳到服務器! –

1

如果你像我一樣是停留在HiveServer2遠程運行的位置,直線會讓你從HDFS加載文件,

hdfs fs -put /tmp/m.py 

然後

beeline> add file hdfs:/user/homedir/m.py;