Hive-匯入資料
將本地檔案匯入到hive表中
將本地檔案匯入到hive表中
load data local inpath '/home/data/student01.txt' into table t3;
將某個資料夾下的所有檔案匯入到hive表中
load data local inpath '/home/data/hive/' into table t3;
將某個資料夾下的所有檔案匯入到hive表中,並且覆蓋原來的資料
load data local inpath '/home/data/hive/' overwrite into table t3;
將HDFS中的檔案匯入到hive表中
將HDFS中的檔案匯入到hive表中,用法和前面的類似,只是少了"local"這個單詞,例如:
load data inpath '/student02.txt' into table t3;
將資料匯入到分割槽表
load data local inpath '/home/data/data01.txt' into table partition_table partition(gender='M');
操作MySQL資料庫中的資料
使用sqoop將mysql資料庫匯入到hdfs,
sqoop import --connect jdbc:mysql://localhost/lzc --username root --password root --table student --columns 'id,name,password' -m 1 --target-dir '/lzc'
使用sqoop匯入mysql資料到hive,預設會儲存在default下
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --table student --columns 'id,name,password' -m 1
用法
--hive-import 資料匯入到hive中
--connect jdbc:mysql://localhost/db_name --username root --password root 連線資料庫並指定哪個資料庫
--table db_name 指定表名
--columns 'column_1,column_2,column_3,...' 獲取哪些列
--hive-database hive_database_name 指定hive資料庫名字
--create-hive-table 自動建立表
--hive-table hive_table_name 指定hive表名
--hive-overwrite 引數是覆蓋資料
-m 1 使用一個MapReduce作業程序
--fields-terminated-by ' ' 指定列與列之間的間隔符
--where 'name="lizhencheng"' 條件語句
--target-dir '/lzc' 指定HDFS路徑
--query "select * from student where $CONDITIONS" -target-dir '/user/hive/warehouse' 查詢,一定要指定HDFS路徑
--query "select * from student where id >= 3 and $CONDITIONS" -target-dir '/user/hive/warehouse' 查詢一定要指定HDFS路徑
--split-by 引數 資料庫表沒有主鍵時,需要指定
where語句
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --table student --columns 'id,name,password' --where 'name="lizhencheng"' --hive-table student00 -m 1
查詢語句
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --query 'select * from student where $CONDITIONS' --target-dir '/user/hive/warehouse/' -m 1 --hive-table student01
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --query 'select * from student where id >= 3 and $CONDITIONS' --target-dir '/user/hive/warehouse/student3' -m 1 --hive-table student03
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --query 'select * from student where id >= 3 and name = "lizhencheng" and $CONDITIONS' --target-dir '/user/hive/warehouse/student4' -m 1 --hive-table student04
將HDFS(Hive)中的資料匯入到MySQL
sqoop export --connect jdbc:mysql://localhost/lzc --username root --password root --table person --export-dir /user/hive/warehouse/student/part-m-00000 --columns 'id,name,password' --fields-terminated-by '\t' -m 1