错误再现
- 用sqoop从msyql导入数据到hdfs,由于mysql里的表很多,就写了个shell脚本循环调用sqoop,以下是脚本
while read mysqlTable
do
sqoop import \
--connect jdbc:mysql://ip:3306/database \
--username root \
--password password \
--table ${mysqlTable} \
--driver com.mysql.jdbc.Driver \
--fields-terminated-by '\t' \
--target-dir /tmp/${mysqlTable} \
-m 1
done < mysql_table.txt
- 提示Illegal line end in string literal 错误
问题定位
- 是因为mysql_table.txt是dos格式的,shell脚本读取之后会有
^M
的符号
解决问题
- 用dos2unix命令解决了,这个命令是把dos格式的文件转换成unix格式的文件的命令
dos2unix mysql_table.txt