Sqoop
简单的来说可以实现关系型数据库和HDFS之间的数据互相转移。
大多数的测试资料都是基于mysql的实现
可是在测试连接oracle的时候却出现了问题
错误一:连接问题,在企业级应用中,对于机器的端口通信是有着比较严的控制,所以会经常遇到无法连接数据库、被拒绝的异常
解决 :hadoop的所有节点,包括namenode和datanode的所有机器都需要具有访问数据量的权限,就是需要把这些节点的ip地址都加入到数据库的可访问列表中
错误二:语法问题,这点看了半天网上的写法都是报错
sqoop list-tables --connect jdbc:oracle:thin:*******:oracl --username ***--password ***
报错 空指针异常,参数不对、很奇怪,
jdbc、数据库、用户、密码参数齐活了。。。。
似乎并没有错误,再次尝试import操作
sqoop import --jdbc*****************
报错无法连接数据库,登陆被拒绝
mr日志都没有显示,显然语法有问题。
而正确的写法需要把jdbc的信息写入“”之中
正确的如下:
sqoop list-tables --connect "jdbc:oracle:thin:@****:orac" --username *** --password ***
问题解决