slurper 可以將任何格式的資料匯入hdfs, 這裡有
git clone [email protected]:alexholmes/hdfs-file-slurper.git
cd hdfs-file-slurper
mvn package將target下的hdfs-slurper-0.1.8-package.tar.gz 解壓到 /usr/local目錄下(筆者的工作環境是ubuntu)
配置sluper,配置檔案在conf目錄下
slurper.conf 配置
#被傳輸資料的名稱file://uri 表示本地檔案系統,hdfs://uri表示hdfs中的檔案路徑datasource_name =test
#資料源目錄,輸入到這的任何檔案都會自動複製到目標目錄中(中間會被複製到臨時目錄中)
src_dir = file:/data/hadoop/tmp/slurper/in
#工作目錄,來自資料來源的檔案在複製到目標目錄前被移入這個目錄
work_dir = file:/data/hadoop/tmp/slurper/work
#在複製完成後,檔案從工作目錄移入最終目錄,另外remove_after_copy可以設定被用於設定刪除原始檔,這時不能設定complete_dir
complete_dir = file:/data/hadoop/tmp/slurper/complete
remove_after_copy = false
#在複製檔案中遇到的任何錯誤都會被移入這個目錄
error_dir = file:/data/hadoop/tmp/slurper/error
#臨時目錄,檔案第一次被複製到目標檔案系統上的臨時目錄。然後檔案複製完成後,通過slurper將這個檔案移入目標檔案
dest_staging_dir = hdfs:/tmp/slurper/stage
#原始檔最終存放目錄
dest_dir = hdfs:/tmp/slurper/dest
slurper-env.sh 中要配置hadoop bin檔案目錄
執行:1. 先建立 源檔案目錄 /data/hadoop/tmp/slurper/in 2.
bin/slurper.sh --config-file conf/slurper.conf3.將測試檔案複製 到源檔案目錄,然後就可以看到日誌,並且在hdfs上檢視檔案了
動態設定目標路徑:
在slurper bin 目錄下有一指令碼 sample-python.py
#修改配置檔案:!/usr/bin/python
import
sys, os, re
#read the local file from standard input
input_file=sys.stdin.readline()
#extract the filename from the file
filename =os.path.basename(input_file)
#extract the date from the filename
match=re.search(r'
([0-9])([0-9])([0-9])
', filename)
year=match.group(1)
mon=match.group(2)
day=match.group(3)
#construct our destination hdfs file
hdfs_dest="
hdfs:/data/%s/%s/%s/%s
" %(year, mon, day, filename)
#write it to standard output
print hdfs_dest,
#dest_dir = hdfs:/tmp/slurper/dest再次執行 slurper,然後將檔案複製到源檔案目錄,如果檔案 格式不符合正規表示式匹配結果,會報錯script = /usr/local/hdfs-slurper-0.1.8/bin/sample-python.py
生產環境中,可以使用bin/slurper-inittab.sh 指令碼連續操作
此外,sluerper可以將hdfs中的資料匯入本地系統!
將excel資料匯入SqlServer資料庫
下面是我見到的最好的從excel匯入資料到sqlserver的最好方法,並給出了需要注意的地方。1 將excel裡的資料匯入已經存在的表中,命令如下 insert into t1 select from openrowset microsoft.jet.oledb.4.0 excel 5.0 hdr...
將10進製數轉換成任意進製數
要想解決這個問題我們先來看看10進製轉2進製的 includemain for i j 1 i 0 i 將陣列逆序輸出 printf d a i printf n 我們再來看看10進製轉16進製制的 include main char b 16 scanf d n while n for i j 1...
將元件拼裝使用
兩個外掛程式 vue loader vue template compiler vue loader 功能將 vue 檔案中的三個模組,解析和轉換 vue 主件,提供了其中的 script,樣式 style,以及 template,在分別交給別的模組處理 script babel loader cs...