sqoop版本为1.4.4,hadoop版本为2.2.0,hive版本为0.11.0,hive元数据存放位置为mysql,当使用sqoop 从mysql往hive中导入数据时,总是提示找不到所指定的hive数据库,事实上hive中已存在该数据库,sqoop中也设置了hive路 径,/etc/profile文件中也已经设置好hive路径。
mysql往hive中导数据命令:
1 ${SQOOP_HOME}/bin/sqoop import --connect jdbc:mysql://${hostname}/${database} --username ${user} --password ${password} --table ${table} --split-by docid --hive-import --hive-table lan.ding 2 --fields-terminated-by '\t' --incremental append --check-column docid --last-value ${curr_max}
解决办法:copy hive中的hive-site.xml文件放入sqoop conf目录下。当没有在sqoop的conf目录下找到hive-site.xml时,sqoop默认采用的是读取deby内置数据库。
ps:其实已经在sqoop中指定了hive conf的目录,但就是一定要copy文件过来,有明白的可以交流交流,例外,还需注意文件的权限问题。