檔案名:sqoop_export_emp.sh,内容如下:
#!/bin/sh
queueName=
job_name=
#mysql
mysql_name=system
mysql_passwd=111111
mysql_conn=jdbc:mysql://192.168.1.120:3306/mtest
#目的表名:mysql表名
export_table_name=emp_t;
#目的表列名:mysql表列名
export_table_columns="id,name,deg,salary,dept"
#導出到mysql的臨時檔案名
sqoop_export_data_filename=${export_table_name};
#删除目的資料庫的資料
sqoop eval --connect ${mysql_conn} \
--username ${mysql_name} \
--password ${mysql_passwd} \
-query "
delete from ${export_table_name} where 1=1
"
#需要導出到mysql的資料臨時檔案目錄
sqoop_export_data_dir=/user/hive/warehouse/htest/export/${sqoop_export_data_filename};
#删除臨時目錄,支援二次運作
hadoop dfs -rmr ${sqoop_export_data_dir}
hive -v -e "
use htest;
insert overwrite directory '${sqoop_export_data_dir}'
select id
,name
,deg
,salary
,dept
from htest.emp;
";
##set mapred.job.queue.name=${queueName};
##set mapred.job.name=${job_name}_1;
#再導出資料到目的庫(mysql)
sqoop export \
--connect ${mysql_conn} \
--username ${mysql_name} \
--password ${mysql_passwd} \
--export-dir ${sqoop_export_data_dir} \
--verbose \
--num-mappers 3 \
--table ${export_table_name} \
--columns ${export_table_columns} \
--input-fields-terminated-by '\001' \
--input-lines-terminated-by '\n' \
--input-null-string '\\N' \
--input-null-non-string '\\N';
##########
#-Dmapred.job.queue.name=${queueName}
#
##########
然後執行腳本
sh
sqoop_export_emp.sh