導航:首頁 > 文件教程 > 本地文件導入hdfs

本地文件導入hdfs

發布時間:2023-06-04 18:07:46

A. 如何向 hadoop 導入數據

如何向 hadoop 導入數據

1.2 使用Hadoop shell命令導入和導出數據到HDFS
實驗准備
實例需要用到的數據-weblog_entries.txt
在namenode創建2個文件夾用來存放實驗用的數據
mkdir /home/data 1
mkdir /home/data_download1
將肆搭weblog_entries.txt上傳到namenode里的/home/data文件夾(我使用SecureFXPortable.exe 工具
註:以下命令都是在namenode節點運行的
實驗過程
1.在HDFS中創建一個新的文件夾,用於保存weblog_entries.txt
hadoop fs -mkdir /data/weblogs1
2.將weblog_entries.txt文件從本地文件系統復制到HDFS剛創建的新文件夾下
cd /home/data1
hadoop fs -FromLocal weblog_entries.txt /data/weblogs1
3.列出HDFS上weblog_entries.txt文件的信息:
hadoop fs –ls /data/weblogs/weblog_entries.txt 1
4.將HDFS上的weblog_entries.txt文件復制到本地系統的當前文件夾下
cd /home/data_download1
hadoop fs -ToLocal /data/weblogs/weblog_entries.txt ./weblog_entries.txt 1
最後用 ls 命令檢驗下時候將weblog_entries.txt 下載到本地

如何向oracle 10g資料庫導入數據

Oracle 11g數據導入到10g
一、在11g伺服器上,使用expdp命令備份數據
11g 導出語句:EXPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR mpfile=test.dmp logfile=test.log version=10.2.0.1.0
二、在10g伺服器上,使用impdp命令恢復數據
准備工作:1.建庫2.建表空間3.建用戶並授權4.將test.dmp拷貝到10g的dpmp目錄下
--創建表空間
create tablespace TS_Facial datafile 'E:ORACLEPRODUCT10.2.0ORADATAORCLFacial.DBF' size 500M autoextend on next 50M;
--創建用戶
create user Facial identified by Facial default tablespace TS_Facial;
--授權給用戶
grant connect,resource,dba to Facial;
test.dmp 和 test.log 放在E:oracleproct10.2.0adminorcldpmp目錄下
10g 導入語句:IMPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR mpfile=test.dmp logfile=test.log version=10.2.0.1.0

如何向mongodb分片集群裂頃拿導入數據

下載mongoDB(mongoDB下載地址),筆者使用的是mongoDB 2.0.4的linux 64-bit版本
解壓:tar xzf mongo.tgz
默認情況下,mongoDB將數據存儲在/data/db目錄下,但它不會自乎橡動創建該目錄,所以我們需要手動創建它:
$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
也可以使用--dbpath參數來指定別的資料庫目錄。
如果只是想在單機上測試一下mongoDB的話,非常簡單,首先啟動MongoDB server,
$ ./mongodb-xxxxxxx/bin/mongod
在另外一個終端,連接到我們啟動的server:
$ ./mongodb-xxxxxxx/bin/mongo
> db.foo.save( { a : 1 } )
> db.foo.find()

如何向clementine12.0中導入資料庫數據

在resources找到database節點連上去就可以,之後按照你的用戶名和密碼填好就可以,但是在之前要配置資料庫。

如何向sql server2008中導入資料庫

打開SQL Server Management Studio,在對象資源管理器中,展開「SQL Server 實例」→「資料庫」→「MySchool」節點,單擊滑鼠右鍵,選擇「任務」→「導出數據」命令。出現導入和導出向導的歡迎界面,單擊「下一步」按鈕,出現「選擇數據源」對話框,如圖
在「選擇數據源」對話框中設置如下選項:
數據源:SQL Native Client 10.0。
伺服器名稱:DC。
身份驗證:Windows身份驗證。
資料庫:MySchool。
單擊「下一步」按鈕,出現「選擇目標」對話框,設置如下選項(如圖所示):
目標:平面文件目標。
文件名:C:student.txt。
格式:帶分隔符。
單擊「下一步」按鈕,出現「指定表復制或查詢」對話框,如圖所示。
在「指定表復制或查詢」對話框中選中「復制一個或多個表或視圖的數據」單選按鈕,單擊「下一步」按鈕,出現「配置平面文件目標」對話框,如圖所示。
設置源表或源視圖為MySchool.dbo.student,單擊「下一步」按鈕。
在「保存並執行包」對話框中選中「立即執行」復選框,如圖所示,然後單擊「下一步」按鈕。
在如圖所示的對話框中單擊「完成」按鈕。
如圖所示,當執行完後,單擊「關閉」按鈕。
8
在Windows資源管理器中打開C:student.txt文件,驗證導出的結果。

如何導入數據

工具/原料
sql2008
方法/步驟
登錄sql2008資料庫,其實其他版本的資料庫也是一樣的原理
使用windows賬戶登錄,登錄成功之後打開資源管理器窗口
在資料庫上單擊右鍵,選擇【新建資料庫】
在彈出的新建資料庫窗口中,輸入資料庫名字【test】然後點擊確定
資料庫【test】新建完成,在資料庫上單擊右鍵,選擇【任務】【導入數據】
彈出導入數據向導,選擇下一步
數據源選擇【Excel】,文件路徑選擇我們需要導入的文件
目標資料庫選擇我們剛才新建的【test】資料庫,其他保存默認不變,一直單擊【下一步】
勾選我們需要導入的Excel表,如圖所示,然後單擊下一步,完成
開始導入數據,如圖所示,成功導入,點擊【關閉】
這樣我們就導入了Excel中的數據

如何從linux向dbeaver導入數據

1、右擊新建連接 2、選擇Oracle 3、將要填的數據都填好了,下拉框選sid,點測試,通過就ok了 4、狂點下一步,最後完成。 註:無需安裝oracle客戶端。只有這個dbeaver就可以,只是需要個驅動包這個不用說。不會加驅動可以追問

如何從EXCEL向MATLAB導入數據

首先把excel文件放在work文件夾里,假設文件名為a.xls。
然後在matlab命令窗口輸入a=xlsread('a.xls');
此時,a矩陣即為exel里對應的數據

使用Matlab中的Excel Link就可以了。
如果使用Excel 2003版本,操作如下:
1 打開Excel。
2 在菜單欄中選擇工具→載入項→瀏覽。
3 在Matlab的安裝目錄下打開toolboxexlink文件夾,選擇EXCLLINK.XLA,點擊確認。
4 自動回到載入項對話框後,確保對話框中有「Excel
Link」,選中後點擊確認按鈕即可,菜單欄中自動添加了Matlab載入項。
5 使用其中的putmatrix,既可以將數據導入到Matlab中。
如果使用Excel 2007版本,操作如下:
1 打開Excel。
2 點擊左上的office按鈕→Excel選項→轉到→載入項→瀏覽。
3 在Matlab的安裝目錄下打開toolboxexlink文件夾,選擇EXCLLINK.XLA,點擊確認。
4 自動回到載入項對話框後,確保對話框中有「ExcelLink」,選中後點擊確認按鈕即可,菜單欄中自動添加了Matlab載入項。
5 使用其中的putmatrix,既可以將數據導入到Matlab中。

B. 關於用java程序把本地文件上傳到HDFS中的問題

第一個錯誤是參數不對
第二錯誤時你沒有能夠創建目錄,不知道是不是沒有許可權

C. HDFS操作命令

HDFS命令基本格式:hadoop fs -cmd < args >

表格:

注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對於容易產生歧義的地方,會特別指出「linux路徑」或者「hdfs路徑」。如果沒有明確指出,意味著是hdfs路徑。

HDFS有一個默認的工作目錄/user/$USER,其中$USER是用戶的登錄用戶名。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir

注意:支持級聯創建新目錄,Hadoop的mkdir命令會自動創建父目錄,類似於帶-p的linux命令

put命令從本地文件系統中 復制單個或多個 源路徑到目標文件系統,也支持從標准輸入設備中讀取輸飢孫斗入並寫入目標文件系統。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename

最後一個參數是句點,相當於放入了默認的工作目錄,等價於 hadoop fs -put example.txt /user/chen

上傳文件時,文件首先復制到DataNode上,只有所有的DataNode都成功接收完數據,文件上傳才是成功的凱物。
命令格式:hadoop dfs put filename newfilename

從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從 標准輸入 中讀取輸入寫入目標文件系統。

採用-ls命令列出HDFS上的文件。在HDFS中未帶參數的-ls命令沒有返回任何值,它默認返回HDFS的home目錄下
的內容。在HDFS中,沒有當前工作目錄這樣一個概念,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:

通過「-ls 文件夾名」 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名

通過該命令可以查看in文件夾中的所有文檔文件

通過「-cat 文件名」命令查看HDFS下文件夾中某個文件的內容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名

通過這個命令可以查看in文件夾中所有文件的內容

通過「-get 文件按1 文件2」命令將HDFS中某目錄下的文件復制到本地系統的某文件中,並對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名

-get 命令與-put命令一樣,既可以操作目錄,也可以操作文件

通過「-rmr 文件」命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件

-rmr 刪除文檔命令相當於delete的遞歸版本。

通過-format命令實現HDFS格式化
命爛磨令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format

通過運行start-dfs.sh,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/ start-dfs.sh

當需要退出HDFS時,通過stop-dfs.sh 就可以關閉HDFS
命令格式:user@NameNode:hadoop$ bin/ stop-dfs.sh

HDFS的命令遠不止這些,對於其他操作,可以通過-help commandName 命令列出清單。下面列舉一些命令進行說明。

(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。

(2)chmod改變文件的許可權
chmod用於改變文件或目錄的訪問許可權,這個Linux系統管理員最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者是超級用戶

(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。

(4)FromLocal命令
除了限定 源路徑 是只能是一個 本地文件 外,其他方面和put命令相似。
使用方法:hadoop fs -FromLocal <localsrc> URI

(5)ToLocal命令
除了限定 目標路徑 是一個 本地文件 外,其他方面和get命令類似。
使用方法:hadoop fs -ToLocal {-ignorecrc} {-crc} URI <localdst>

(6)cp命令
cp命令是將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
使用方法:hadoop fs -cp URI [URI....] <dest>

返回值:成功返回0 ,失敗返回-1

(7)命令
命令顯示目錄中 所有文件的大小 ,或者當只指定一個文件時,顯示此文件的大小
使用方法:hadoop fs - URI [URI........]

返回值
成功返回0,失敗返回-1

(8)s命令
s是顯示 文件大小 的命令。
使用方法:hadoop fs -s <args>

(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge

(10)get命令
get是復制文件到本地文件系統的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc選項復制CRC校驗失敗的文件:使用-CRC選項復制文件以及CRC信息。

返回值
成功返回0,失敗返回-1

(11)getmerge命令
getmerge命令用於接受一個源目錄和一個目標文件作為輸入,並且將源目錄中所有的文件合並成本地目標文件。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
參數說明:addl是可選的,用於指定在每個文件結尾添加一個換行符;

假設在你的hdfs集群上有一個/user/hadoop/output目錄
裡面有作業執行的結果(多個文件組成)part-000000,part-000001,part-000002

然後就可以在本地使用vi local_file查看內容了

(12)ls命令
ls命令查看當前目錄下的信息
使用方法:hadoop fs -ls <args>
如果是 文件 ,則按照如下格式返迴文件信息:
文件名 <副本數>文件大小 修改日期 修改時間 許可權 用戶ID 組ID

如果是 目錄 ,則返回它直接子文件的一個列表,就像在UNIX中一樣。目錄返回i額表的信息如下:
目錄名<dir>修改日期 修改時間 許可權 用戶ID 組ID

返回值
成功返回0,失敗返回-1

(13)lsr命令
lsr命令是-ls命令的遞歸版,類似於UNIX中的ls-r。
使用方法:hadoop fs -lsr <args>

(14)movefromLocal命令
復制一份本地文件到hdfs,當成功後,刪除本地文件
使用方法:dfs -moveFromLocal <src> <dst>

(14.5)moveToLocal命令
類似於-get,但是當復制完成後,會刪除hdfs上的文件
使用方法:moveToLocal <src> <localDest>

(15)mv命令
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....] <dest>
備註:不允許在不同的文件系統間移動文件。

返回值
成功返回0,失敗返回-1

(16)put 命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標准輸入中讀取輸入寫入目標文件系統
使用方法:hadoop fs -put <localsrc> .... <dst>

(17)rm命令
rm命令刪除指定的文件,只刪除非空目錄和文件。
使用方法:hadoop fs -rm URI [URI......]
請參考rmr命令了解遞歸刪除。

(18)rmr命令
rmr命令是delete命令的遞歸版本
使用方法:hadoop fs -rmr URI [URI.......]

返回值
成功返回0,失敗返回-1

(19)setrep命令
setrep命令可以改變一個文件的副本系數。
使用方法:hadoop fs -setrep [-R] <path>
參數說明:-R 選項用於遞歸改變目錄下所有文件的副本系數

返回值
成功返回0,失敗返回-1

(20)stat命令
stat命令用於返回指定路徑的統計信息
使用方法:hadoop fs -stat URI [URI......]

返回值
成功返回0,失敗返回-1

(21)tail命令
tail命令將文件尾部1KB的內容輸出到stdout。支持-f選項,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI

返回值
成功返回0,失敗返回-1

(22)test命令
test命令是檢查命令,可以檢查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI

(23)text命令
text命令用於將源文件輸出問文本格式
使用方法:hadoop fs -text <src>
允許的格式是zip和TextRecordInputStream。

(24)touchz 命令
touchz命令用於創建一個0位元組的空文件。
使用方法: hadoop fs -touchz URI [URI....]

返回值
成功返回0,失敗返回-1

D. Hive的幾種常見的數據導入方式

零.Hive的幾種常見的數據導入方式
常用的的有三種:
1.從本地文件系統中導入數據到Hive表;
2.從HDFS上導入數據到Hive表;
3.在創建表的時候通過從別的表中查詢出相應的記錄並插入到所創建的表中。
Hive配置:
HDFS中Hive數據文件存放目錄(啟動hive後HDFS自動創建):
HDFS: /usr/hive/warehouse
hadoop fs -mkdir /usr/hive/warehouse 命令創立
本地數據存放目錄:
本地:/home/santiago/data/hive
一.從本地文件系統中導入數據到Hive表
1.在hive中建表
hive> show databases;
OKdefaultTime taken: 1.706 seconds, Fetched: 1 row(s)
hive> create table guo_test(Name string,String string)
> row format delimited
> fields terminated by ','
> stored as textfile;
hive> show tables;
OK
guo_test
Time taken: 0.024 seconds, Fetched: 1 row(s)123456789101112

2.在本地文件建立同類型數據表
santi@hdp:~/data/hive$ ls
hive_test.txt
santi@hdp:~/data/hive$ cat hive_test.txt
santi,you are a zhazha.1234

3.導入數據並測試
hive>load data local inpath '/home/santi/data/hive/hive_test.txt' into table guo_test;
hive> select * from guo_test;
hive>dfs -ls /usr/hive/warehouse/guo_test;

#hadoop fs -ls /usr/hive/warehouse
Found 1 items
drwxrwxr-x - santiago supergroup 0 2017-01-14 21:13
/usr/hive/warehouse/guo_test12345678

發現hive-site,xml設置的HDFS文件存儲位置中多了guo_test這個文件夾
#hadoop fs -ls /usr/hive/warehouse/guo_test
Found 1 items-rwxrwxr-x 1 santiago supergroup 24 2017-01-14 21:13
/usr/hive/warehouse/guo_test/hive_test.txt

hive> select * from guo_test;
OK
santi you are a zhazha.12345678

在該文件夾中找到了所寫入hive數據倉庫的文件。
[注]本地數據寫入成功,但是從本地將數據導入到Hive表的過程中,其實是先將數據臨時復制到HDFS的一個目錄下(典型的情況是復制到上傳用戶的HDFS home目錄下,比如/home/santi/),然後再將數據從臨時目錄下移動到對應的Hive表的數據目錄裡面(臨時目錄不保留數據)。
二.從HDFS文件系統中導入數據到Hive表
1.在HDFS文件系統上建立數據文件
hdfs上沒有vim命令,則需要將本地數據文件手動傳入到HDFS上
/data/hive# vim data_HDtoHive/data/hive# cat data_HDtoHivedata from, HDFS to Hive #hadoop fs -put /home/santi/data/hive/data_HDtoHive /usr/data/input//數據傳入# hadoop fs -ls /usr/data/input12345

2導入數據
hive> load data inpath '/usr/data/input/data_HDtoHive' into table guo_test;
hive> select * from guo_test;
OK
data from HDFS to Hive
santi you are a zhazha.
Time taken: 0.172 seconds, Fetched: 2 row(s)123456

數據寫入成功
數據存hive配置的數據存儲位置中。
[注]
從本地導入數據語句為
hive>load data local inpath 『/home/santi/data/hive/hive_test.txt』 into table guo_test;
從HDFS中導入數據的語句為
hive> load data inpath 『/usr/data/input/data_HDtoHive』 into table guo_test;
差距在local這個命令這里。
而從HDFS系統上導入到Hive表的時候,數據轉移。HDFS系統上查找不到相關文件。
三.從HIVE表選取數據插入新的HIVE表
命令為create table 表名 as selecr xxx from 表名。
hive> create table hivedata_test1
> as
> select name
> from guo_test;
hive> select * from hivedata_test1;
OK
data fromsanti
Time taken: 0.116 seconds, Fetched: 2 row(s)123456789

[注]hive是分區表有稍微區別
在Hive中,表的每一個分區對應表下的相應目錄,所有分區的數據都是存儲在對應的目錄中。比表有a和b兩個分區,則對應a=xxx,b=xx對應表的目錄為/user/hive/warehouse/a=xxx
user/hive/warehouse/b=xx,所有屬於這個分區的數據都存放在這個目錄中。
hive> create table hivedata_test2(
> Name string)
> partitioned by
> (String string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ','> STORED AS TEXTFILE;

hive> insert into table hivedata_test2
> partition(String='best')
> select Name
> from guo_test;
hive> select * from hivedata_test2;
OK
data from best
santi best
Time taken: 1.549 seconds, Fetched: 2 row(s)# hadoop fs -ls /usr/hive/warehouse/hivedata_test2Found 1 items
drwxrwxr-x -santiago supergroup 0 2017-02-14 17:40
/usr/hive/warehouse/hivedata_test2/string=best

E. hadoop的幾個問題 1.將本地文件復制到hdfs中,那麼在hdfs中這個文件是存放在namenode還是分開放在datanode

試著回答:
先說明一下:
1. namenode負責管理目錄和文件信息,真正的文件塊是存放在datanode上。
2. 每個map和rece(即task)都是java進程,默版認是有單獨的jvm的,所以不可能同一個類的對象會在不同節點上。
看你的描述是把namenode,datanode和jobtracker,tasktracker有點混了。

所以:
問題1. 分塊存放在datanode上
問題2.inputformat是在datanode上,確切的說是在tasktracker中。每權個map和rece都會有自己的對象,當多個map讀入一個文件時,實際上不同的map是讀的文件不同的塊,rece也是一樣,各個任務讀入的數據是不相交的。
問題3.rece輸出肯定是在hdfs上,和普通文件一樣在datanode上。
問題4.每個recer會有自己的outputformat對象,與前面inputformat原因一樣。

閱讀全文

與本地文件導入hdfs相關的資料

熱點內容
網路優化總體流程圖 瀏覽:735
前端程序員簡歷模板 瀏覽:706
蜂巢積木編程機器人怎麼樣 瀏覽:561
微信小程序tips 瀏覽:117
油印文件有哪些 瀏覽:854
java線程買票案例 瀏覽:672
java架構培訓 瀏覽:857
price是什麼文件 瀏覽:258
手機游戲編程哪個好學 瀏覽:259
qq郵箱怎麼發語音文件 瀏覽:494
php刪除資料庫記錄 瀏覽:905
文件校驗工具有哪些 瀏覽:158
蘋果app被亂扣費怎麼投訴 瀏覽:269
數據通信工程師要負責多少設備 瀏覽:904
excel有沒有多個文件數據鏈接 瀏覽:842
鄭州兒童編程課程應該怎麼選擇 瀏覽:103
word2003二級標題編號 瀏覽:370
ipad百度雲盤壓縮文件 瀏覽:912
什麼網站可以發現新產品 瀏覽:680
led屏用什麼編程 瀏覽:322

友情鏈接