Sqoop实现MySql/Oracle与Hdfs/Hbase互导数据详解大数据
2023-06-13 09:20:26 时间
下文将重点说明通过Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互导最后给出命令。
我安装的Hadoop版本是原生hadoop-0.20.203.0,SQOOP不支持此版本,可使用CDH3版本hadoop,也可以
通过拷贝相应的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用。
sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop- 0.20.2-CDH3B4.tar.gz,解压缩后
将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2- CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中。
另外,sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中。
修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件) #if [ ! -d ${HBASE_HOME} ]; then
sqoop list-tables connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop
sqoop import connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop table students -m 1
运行
hadoop dfs -ls /user/grid/students 能看到该文件夹中包含文件:/user/grid/students/
part-m-00000
运行
hadoop dfs -cat /user/grid/students/part-m-00000 就能看到该文件已经包含mysql中students表的三行数据:
sqoop export connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop table students export-dir hdfs://masternode:9000/user/grid/students/part-m-00000
注意:
过程中可能会因为slavenode的50010端口没打开而报错,需用root用户通过sudo ufw allow 50010命令打开端口!
sqoop import connect jdbc:mysql://mysqlserver_IP/databaseName username password password table datatable hbase-create-table hbase-table hbase_tablename column-family col_fam_name hbase-row-key key_col_name
其中 ,databaseName 和datatable 是mysql的数据库和表名,hbase_tablename是要导成hbase的表名,key_col_name可以指定datatable中哪一列作为hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名
/home/grid/sqoop/bin/sqoop import connect jdbc:mysql://192.168.66.96/sqoop username sqoop password liyang16 table students hbase-create-table hbase-table students column-family stuinfo hbase-row-key id
将Oracle中的dept表(列为id,name,addr)导出至hbase中的dept表(行键为id,列族为deptinfo)
sqoop import append connect jdbc:oracle:thin:@192.168.66.90:1521:orcl username test password test m 1 table dept columns id,name,addr hbase-create-table hbase-table dept hbase-row-key id column-family deptinfo
我安装的Hadoop版本是原生hadoop-0.20.203.0,SQOOP不支持此版本,可使用CDH3版本hadoop,也可以
通过拷贝相应的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用。
sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop- 0.20.2-CDH3B4.tar.gz,解压缩后
将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2- CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中。
另外,sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中。
修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件) #if [ ! -d ${HBASE_HOME} ]; then
sqoop list-tables connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop
sqoop import connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop table students -m 1
运行
hadoop dfs -ls /user/grid/students 能看到该文件夹中包含文件:/user/grid/students/
part-m-00000
运行
hadoop dfs -cat /user/grid/students/part-m-00000 就能看到该文件已经包含mysql中students表的三行数据:
sqoop export connect jdbc:mysql://192.168.66.96:3306/sqoop username sqoop password sqoop table students export-dir hdfs://masternode:9000/user/grid/students/part-m-00000
注意:
过程中可能会因为slavenode的50010端口没打开而报错,需用root用户通过sudo ufw allow 50010命令打开端口!
sqoop import connect jdbc:mysql://mysqlserver_IP/databaseName username password password table datatable hbase-create-table hbase-table hbase_tablename column-family col_fam_name hbase-row-key key_col_name
其中 ,databaseName 和datatable 是mysql的数据库和表名,hbase_tablename是要导成hbase的表名,key_col_name可以指定datatable中哪一列作为hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名
/home/grid/sqoop/bin/sqoop import connect jdbc:mysql://192.168.66.96/sqoop username sqoop password liyang16 table students hbase-create-table hbase-table students column-family stuinfo hbase-row-key id
将Oracle中的dept表(列为id,name,addr)导出至hbase中的dept表(行键为id,列族为deptinfo)
sqoop import append connect jdbc:oracle:thin:@192.168.66.90:1521:orcl username test password test m 1 table dept columns id,name,addr hbase-create-table hbase-table dept hbase-row-key id column-family deptinfo
相关文章
- MySQL快速生成百万数据的技巧(mysql生成百万数据)
- MySQL与Oracle:一场数据库之争(mysql与oracle)
- MySQL vs Oracle: 对比两种数据库系统(mysql与oracle区别)
- MySQL取代Oracle?连接异常现象分析(oracle连接不上)
- 使用Oracle的拼接字段函数提高SQL效率(oracle拼接字段函数)
- MySQL变量的使用与引用(mysql变量引用)
- 格式MySQL:处理二进制数据的技巧(mysql二进制数据)
- MySQL简单应用实例:怎样才能更好的应用?(mysql简单案例)
- MySQL 使用全文索引来提升效率(mysql全文索引)
- HBase与Oracle 比较两款数据库的优缺点(hbase和oracle)
- MySQL的中文条件查询: 详解与实例(mysql中文条件)
- 从MySQL到Oracle:数据库迁移的步骤(mysql迁移oracle)
- 轻松转换:从Oracle到MySQL的简易工具(oracle转mysql工具)
- 比较MySQL与Oracle数据库的优势(mysql跟oracle)
- 深度构建64位平台上的 PB 与 MySQL 结合(64位 pb mysql)
- 数据库一步一步教你Java如何恢复Oracle数据库(java恢复oracle)
- Hive去MySQL中导出数据到Oracle中(hive导出oracle)
- 个步骤教你轻松安装MySQL(mysql一键安装6)
- Oracle 数据库位图块损坏情况排查(oracle 位图块损坏)
- 抉择中的烦恼Oracle还是MySQL(oracle_mysql)
- 教程掌握Oracle,从PPT免费教程开始(oracle ppt免费)