標籤:blog 使用 os 檔案 資料 io ar line
1、mysql
-- 建立資料庫
create database logs;
-- 使用
use logs;
-- 建立表
create table weblogs(
md5 varchar(32),
url varchar(64),
request_date date,
request_time time,
ip varchar(15)
);
-- 從外部文字檔載入資料
load data infile ‘/path/weblogs_entries.txt‘ into table weblogs fields terminated by ‘\t‘ lines terminated by ‘\r\n‘;
-- 查詢
select * from weblogs;
-- 將mysql資料匯出到hdfs
sqoop import -m 1 --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --target-dir /data/weblogs/import
--target-dir 決定了資料將儲存在hdfs的哪個目錄下
預設情況下,sqoop匯入的資料將會按主鍵進行分割, 有多少個主鍵,就會有多少個輸出檔案(一定要控制好)。若不包含主鍵,必須指定-m 或者--split-by參數決定匯入的資料如何分割。每個mapper將產生一個獨立的檔案。匯入檔案的預設分割符號“,”,
,可以通過--fields-terminated-by ‘\t‘ 指定其他的分割符號
sqoop import -m 1 --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --target-dir /data/weblogs/import --fields-terminated-by ‘\t‘
sqoop import --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --split-by md5 --target-dir /data/weblogs/import
--as-avrodatafile 將資料匯入為avro檔案
--as-sequencefile 匯入為序列化檔案
-z或--compress 在匯入的過程中對資料進行壓縮,預設gzip
--compression-codec <CODEC類> 使用hadoop支援的任何壓縮方式類
--direct 指示sqoop直接使用資料庫支援的本地匯入匯出工具,更快(此時必須使用-m指定mapper的數量,否則若使用--split-by的話會報錯,mysqldump terminated status with 2)
sqoop import --direct -m 1 --connect jdbc:mysql://hadoop:3306/test --username root --password root --table weblogs --target-dir /data/weblogs/person
use mysql
select host,user from user;