1-您将需要用于Apache Hadoop的Microsoft SQL Server连接器来执行可从中下载的操作 这里 。
2-您必须从Sqoop shell发出import命令。我建议你去看看 Sqoop文件 一次,特别是节 7.2.10 告诉我们有关将数据导入Hive的信息。
3-您可以使用导入多个表 sqoop-进口的所有桌 。
4-一旦你的数据进入Hadoop集群,就不能再使用你的SQL程序了。存储过程语言通常使用结果集执行更多逻辑操作。因为配置单元结果集通常很大,所以聚合和转换可以通过函数或流式传输完成。您需要考虑一些替代方案。但你可以在Hive中查看。要在Hive中查找有关视图的更多信息,您可以去 这里 。
HTH
Sqoop预装了最新的Horton Sandbox。你必须做以下事情。如果某些情况您可能需要权限( 主机'xxx.xx.xxx.xxx'不允许连接到此MySQL服务器 )。否则请执行以下操作 - 进口&从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 -P
的 MySQL到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 1
的 MySQL到Hive导入 强>
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
MySQL到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-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_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 �Chbase-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 强>
连接网址:
sqoop import --connect'jdbc:sqlserver://; username = dbuser; password = dbpasswd; database =' - table --target -dir / path / to / hdfs / dir --split-by -m 1
从Microsoft网站下载连接器
http://www.microsoft.com/en-us/download/confirmation.aspx?id=11774
将它放在$ SQOOP_HOME / lib中
的 神谕 强>
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的不同连接字符串
数据库版本 - 直接支持?连接字符串匹配
HSQLDB 1.8.0+没有jdbc:hsqldb:* //
MySQL 5.0+是的jdbc:mysql://
Oracle 10.2.0+没有jdbc:oracle:* //
PostgreSQL 8.3+是(仅导入)jdbc:postgresql://