今天在虚拟里做sqoop数据迁移,把Oralce的数据迁移到HBase和Hive中去,由于Mysql迁移只需要导入连接驱动jar包即可,而Oralce需要设置远程访问才可以。
具体设置如下:
一:修改配置文件
目录下的D:\app\Java\product\11.2.0\dbhome_1\NETWORK\ADMIN 具体安装根据自己情况选择
1、listener.ora中HOST=localhost 改为 主机名或者ip 建议改成主机名,ip有可能变化
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle)(PORT = 1521))
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
)
)
2、tnsnames.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)
)
)
二:NET Manager配置 主机名localhost改为Oracle ,好像修改过配置文件后 这里会自动修改
三:重新配置监听TNS
注意这里监听必须重新配置,我所有工作都做好了 ,但是还是无法远程访问,在本机就无法telnet ip 1521。
一路回车即可
四:本地网络服务名配置
、
主机名要改为机器名
用户名和口令改为自己的数据库账户和口令
五:Database Configuration Assistant配置
这里要选择共享服务器模式
六:Telnet 看是否可以远程
命令:telnet 主机名 端口号 前提 需要配置telnet服务
这里ubuntu里不做截图了 在不行 就把防火墙关闭
六:执行sqoop命令,把Oracle中的emp表插入到hbase中
sqoop import -D sqoop.hbase.add.row.key=true --connect jdbc:oracle:thin:@192.168.2.120:1521:orcl --username scott --password scott --verbose -m 1 --query "select * from EMP where \$CONDITIONS " --hbase-create-table --hbase-table EMP --column-family cf1 --hbase-row-key EMPNO
成功插入到HBase中