如何使用Sqoop将数据从关系数据库导入到沙箱中的配置单元。我已经在我的电脑上安装了Horton Works沙箱。Nw我想知道这个迁移。我已经参考了这个链接http://hortonworks.com/kb/using-apache-sqoop-for-data-import-from-relational-dbs/,但我有一些疑问1,它需要任何Sqoop软件来运行吗? 2,在上面提到的链接中有一些代码,我将把这些代码放在哪里?在Hive query window? 3中,是否可以完全(或仅在时间表中)迁移数据库? 4,存储过程和Viwes如何保存所有这些内容?
发布于 2013-06-12 20:47:13
1-您需要Microsoft SQL Server Connector for Apache Hadoop来执行此操作,可从here下载。
2-您必须从Sqoop shell发出import命令。我建议你浏览一遍Sqoop document,特别是7.2.10一节,它告诉我们如何将数据导入配置单元。
3-你可以:
使用import-all-tables
,
4-一旦你的数据进入Hadoop集群,你就不能再使用你的SQL过程。存储过程语言通常会对结果集执行更多的逻辑操作。因为hive结果集通常很大,所以聚合和转换都是通过函数或streaming.You来完成的,因此需要考虑一些替代方案。但您可以在Hive中查看视图。要在配置单元中找到更多关于视图的信息,请访问here。
HTH
发布于 2014-06-21 11:41:11
Sqoop预装了最新的Horton Sandbox。您必须做以下事情。在某些情况下,您可能需要权限(Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server)。否则,执行以下操作-将数据从RDBMS (MYSQL、ORACLE等)导入和导出到HDFS / HIVE / HBASE
前提条件
对于所有RDBMS,连接URL更改,其余所有命令行参数保持不变。您需要下载特定的JDBC/ODBC连接器JAR并将其复制到$SQOOP_HOME/lib
MySQL
下载mysql-connector-java.jar并放入$SQOOP_HOME/lib文件夹
cp mysql-connector-java-5.1.18-bin.jar /usr/local/hadoop/sqoop-1.4.3-cdh4.4.0/lib/
期望您在MySQL表中有数据。
从SQOOP检索MySQL中可用的数据库列表
sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root -PMySQL到HDFS导入
有主键:
sqoop import -connect jdbc:mysql://localhost:3306/db1 -username root -password password --table tableName --target-dir /path/to/directoryName没有主键:
sqoop import -connect jdbc:mysql://localhost:3306/db1 -username root -password password --table tableName --target-dir /path/to/directoryName -m 1MySQL到配置单元导入
有主键:
sqoop-import --connect jdbc:mysql://localhost:3306/db1 -username root -password password --table tableName --hive-table tableName --create-hive-table --hive-import --hive-home path/to/hive_home没有主键:
sqoop-import --connect jdbc:mysql://localhost:3306/db1 -username root -password password --table tableName --hive-table tableName --create-hive-table --hive-import --hive-home path/to/hive_home -m 1到HBase的MySQL导入
让导入所有列:
sqoop import --connect jdbc:mysql://localhost:3306/db1 --username root --password root --table tableName --hbase-table hbase_tableName --column-family hbase_table_col1 --hbase-create-tableHBase导入几列
sqoop import --connect jdbc:mysql://localhost:3306/db1 --username root --password root --table tableName --hbase-table hbase_tableName --columns column1,column2 --column-family hbase_table_col1 --hbase-create-table使用主键执行HBase操作:
sqoop import --connect jdbc:mysql://localhost:3306/db1 --username root --password root --table tableName --hbase-table hbase_tableName --column-family hbase_table_col1 --hbase-row-key column1 –hbase-create-table到不带主键的Hbase:
sqoop import --connect jdbc:mysql://localhost:3306/db1 --username root --password root --table tableName --hbase-table hbase_tableName --columns column1,column2 --column-family hbase_table_col --hbase-row-key column1 --hbase-create-table从HDFS到MySQL的导出
对所有Hive /HBase/ HDFS都是一样的:因为Hive表在HDFS中只是目录。因此,您只是将一个目录导出到MySQL
sqoop export --connect jdbc:mysql://localhost:3306/test_db --table tableName --export-dir /user/hive/warehouse/tableName --username root --password password -m 1 --input-fields-terminated-by '\001'SQL Server
连接URL:
-m导入--连接目录--表--目标目录/路径/到/hdfs/目录--按sqoop拆分1
从Microsoft网站下载连接器
http://www.microsoft.com/en-us/download/confirmation.aspx?id=11774
将其放在$SQOOP_HOME/lib中
Oracle
连接URL:
sqoop import --connect "jdbc:oracle:thin:@(description=(address=(protocol=tcp)(host=myhost)(port=1521))(connect_data=(service_name=myservice)))" \
--username USER --table SCHEMA.TABLE_NAME --hive-import --hive-table SCHEMA.TABLE_NAME \
--num-mappers 1 --verbose -P \IBM DB2
下载DB2Driver并将其放在$SQOOP_HOME/lib中
sqoop import --driver com.ibm.db2.jcc.DB2Driver --connect jdbc:db2://db2.my.com:50000/testdb --username db2user --db2pwd --table db2tbl --split-by tbl_primarykey --target-dir sqoopimports
sqoop export --driver com.ibm.db2.jcc.DB2Driver --connect jdbc:db2://db2.my.com:50000/myDB --username db2user --password db2pwd --table db2tbl --export-dir /sqoop/dataFile.csv不同RDBMS的不同连接字符串
https://stackoverflow.com/questions/17064144
复制相似问题