我已经安装了 sqoop,但现在的问题是如何使用 sqoop 与 mysql 交互我是 sqoop 的新手,在使用 Sqoop 时是否有必要安装 HBase。任何帮助都将不胜感激。
7 回答
将 mysql 下载到 hdfs jar 文件。如果您使用 oracle db 作为提要文件,则必须为 oracle 获取相关的 jar 文件,然后将其放在下面提到的路径中
然后把它放在usr/bin/lib/sqoop中。
现在尝试 sqoop 命令,它肯定会为你工作..
不需要 HBase。当您执行任何 sqoop 命令时,您可能会收到未设置“HBASE_HOME”的警告,但这只是一个警告。你可以忽略它。
使用 sqoop 帮助查看可用于导入或导出数据的选项。
hadoop@master:~$ sqoop help
usage: sqoop COMMAND [ARGS]
Available commands:
codegen Generate code to interact with database records
create-hive-table Import a table definition into Hive
eval Evaluate a SQL statement and display the results
export Export an HDFS directory to a database table
help List available commands
import Import a table from a database to HDFS
import-all-tables Import tables from a database to HDFS
job Work with saved jobs
list-databases List available databases on a server
list-tables List available tables in a database
merge Merge results of incremental imports
metastore Run a standalone Sqoop metastore
version Display version information
您可以进一步获取特定的命令用法,例如“import”
sqoop import --help
每个命令都有几个选项来自定义操作。
从 MySql 导入数据到 HDFS(基础):
sqoop import --connect jdbc:mysql://mysqlhost/dbName --username user --password 123 --table tableName
将数据从 HDFS 导出到 MySQL(基本):
sqoop export --connect jdbc:mysql://mysqlhost/dbName --username user --password 123 --table tableName --exportDir dir/with/data
更多信息:https ://sqoop.apache.org/docs/1.4.5/SqoopUserGuide.html
在这个论坛提问之前,你必须做功课。Sqoop 是将数据从 RDBMS 获取到 HDFS。
请在您的交互式 shell 中按照以下步骤操作。
- sudo mysql(启动 mysql)
- 显示数据库;
- 使用databasename(选择数据库的命令)
- 显示表格;(查看提到的数据库中的表列表并记下要在 hdfs 中导入的表名,并确保列中有主键)
- 出口;
- sqoop import --connect jdbc:mysql://mysqlhost/表所在的数据库名--username root --table表名--m 1
不需要 Hbase ,您只需要相应数据库的 sqoop 和 jdbc 驱动程序,放置 lib 目录并运行 sqoop
所有你需要mysql“JDBC”连接器。下载它并存储在 sqoop/lib 文件中
sqoop import --connect jdbc:mysql://localhost:3306/databasename --username mysqlusername --password mysqlpassword --table employees --target-dir /databasesqoop/sqoop/
从这里下载 JDBC 连接器/驱动程序: https ://dev.mysql.com/downloads/connector/j/5.1.html