嗨,我正在参加HADOOP的培训。我有一个任务,其中我必须使用sqoop将表数据从oracle(windows,11g xe)导入到hdfs。我正在读下面这篇文章。我的问题是,如何准确地将数据从windows导入到hdfs。正常情况下,我使用Winscp将文件从Windows传输到hdfs机器。我已经从安装在hdfs(cdh3)机器上的MySql导入了数据。但我不知道如何将数据从windows中的Oracle导入到hdfs。请帮帮忙。
Link that I am following
发布于 2016-04-12 14:35:58
以下是逐步执行的过程:
1.Connect oracle sql命令行使用您的凭据登录:
例如用户名:系统密码:系统
(确保该用户拥有所有管理权限,或者在oracle中以sysdba身份连接,创建一个具有所有权限的新用户) Create a user with all privileges in Oracle
在该用户下创建表,并插入一些值和提交
2.Now我们需要一个连接器来将数据从Oracle传输到HDFS。因此,我们需要下载oracle连接器jar文件,并将其放在CDH3的以下路径中(在命令中使用sudo,同时复制以下路径,因为它在linux中需要管理员访问权限)。
/usr/lib/sqoop/binhttp://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html --下载链接
使用winscp将下载的jar从windows传输到CDH3,然后将其移动到CDH3中的上述路径。
3.Command:
sudo bin/sqoop import –connect jdbc:oracle:thin:system/system@192.168.XX.XX:1521:xe–username system -P –table system.emp –columns “ID” –target-dir /sqoopoutput1 -m 1sqoopoutput是HDFS中的输出文件,您将在其中获取数据,您可以根据您的
-m 1 :它告诉我们这个sqoop作业的映射器数量,这里是1。
192.168.XX.XX:1521-- windows计算机的ip地址
发布于 2016-04-11 14:41:18
您不需要将数据从oracle导入到本地计算机。然后将其复制到HDFS机器。然后将其导入HDFS。
HDFS Sqoop可以在这里导入HDFS目录中的关系型数据库管理系统表。
使用命令:
sqoop import --connect 'jdbc:oracle:thin:@192.xx.xx.xx:1521:ORCL' --username testuser --password testpassword --table testtable --target-dir /tmp/testdata
转到运行sqoop的机器。转到终端(我相信它是linux)。只需启动上面提到的命令并检查hdfs中的--target-dir (我在示例命令中提到了/tmp/testdata )。您将在那里找到与您的oracle表相对应的文件。
查看sqoop docs以了解更多详细信息。
https://stackoverflow.com/questions/36540849
复制相似问题