"sqoop基础命令涉及将数据在HDFS与MySQL、Oracle数据库间进行迁移的流程,包括安装配置Sqoop、设置环境变量、连接MySQL数据库以及执行导入导出操作。" 在大数据处理中,Sqoop是一款用于在Apache Hadoop与传统关系型数据库之间进行数据迁移的工具。本资源主要讲解了如何使用Sqoop基础命令来实现HDFS到MySQL/Oracle以及从MySQL/Oracle到HDFS的数据传输。 首先,为了使用Sqoop,你需要在Linux环境中进行以下步骤: 1. 解压缩Sqoop的安装包,例如`sqoop-1.3.0-cdh3u5.tar.gz`,并将它移动到一个适当的目录,如`/home/hadoop/`。 2. 将Hadoop的相关库文件(如`hadoop-core-0.20.2-cdh3u5.jar`)复制到Sqoop的lib目录下,以便 Sqoop 可以正确地与Hadoop集群通信。 3. 更新`bash_profile`文件,设置`SQOOP_HOME`环境变量指向Sqoop的安装目录,并加载更改。 ```bash export SQOOP_HOME=/home/hadoop/sqoop-1.4.6-cdh5.5.2 source ~/.bash_profile ``` 接着,需要确保MySQL已经安装并配置了 Sqoop 连接: 4. 在MySQL中创建一个用户`sqoop`,分配必要的权限,以允许Sqoop进行数据操作: ```sql GRANT ALL PRIVILEGES ON *.* TO 'sqoop'@'%' IDENTIFIED BY 'sqoop' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 5. 创建一个测试表`sss`,并插入一些数据,以供Sqoop导入示例: ```sql CREATE TABLE sss (id INT, name VARCHAR(10)); INSERT INTO sss VALUES (1, 'zs'), (2, 'ls'); ``` 最后,使用Sqoop进行数据导入导出: 6. 使用Sqoop从MySQL导入数据到HDFS: ```bash bin/sqoop import --connect jdbc:mysql://localhost/test --table sss --username sqoop --password sqoop ``` 这将把MySQL中的`test.sss`表导入到HDFS的默认目录下。 7. 若要导出HDFS的数据回MySQL,可以使用 Sqoop 的导出命令: ```bash bin/sqoop export --connect jdbc:mysql://localhost/test --table sss --username sqoop --password sqoop --export-dir /user/hadoop/sss ``` 这将从HDFS的指定目录 `/user/hadoop/sss` 导出数据到MySQL的`test.sss`表。 通过以上步骤,你可以了解并实践Sqoop的基础命令,实现HDFS与MySQL之间的数据迁移。对于Oracle数据库,基本操作类似,只需更换相应的JDBC驱动和连接参数即可。在实际使用中,还需要考虑数据分隔符、字段映射、导入导出格式等更多细节,以满足不同的数据处理需求。
sqoop mysql 导入,导出
1.
安装(前提hadoop启动)
[hadoop@h91 ~]$ tar -zxvf sqoop-1.3.0-cdh3u5.tar.gz
[hadoop@h91 hadoop-0.20.2-cdh3u5]$ cp hadoop-core-0.20.2-cdh3u5.jar /home/hadoop/sqoop-1.3.0-cdh3u5/lib/
[hadoop@h91 ~]$ cp ojdbc6.jar sqoop-1.3.0-cdh3u5/lib/
[hadoop@h91 ~]$ vi .bash_profile
添加
export SQOOP_HOME=/home/hadoop/sqoop-1.4.6-cdh5.5.2
[hadoop@h91 ~]$ source .bash_profile
2.
[hadoop@h91 ~]$ cd sqoop-1.3.0-cdh3u5/bin/
[hadoop@h91 bin]$ vi configure-sqoop
注释掉hbase和zookeeper检查
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi
3.mysql 授权
mysql> insert into mysql.user(Host,User,Password) values("h202","sqoop",password("sqoop"));
mysql> flush privileges;
mysql> grant all privileges on *.* to 'sqoop'@'%' identified by 'sqoop' with grant option;
mysql> flush privileges;
mysql> use test;
mysql> create table sss (id int,name varchar(10));
mysql> insert into sss values(1,'zs');
mysql> insert into sss values(2,'ls');
4.测试sqoop能否连接上mysql
[hadoop@h91 mysql-connector-java-5.0.7]$ cp mysql-connector-java-5.0.7-bin.jar /home/hadoop/sqoop-1.3.0-cdh3u5/lib/
[hadoop@h91 sqoop-1.3.0-cdh3u5]$ bin/sqoop list-tables --connect jdbc:mysql://123.56.162.14:3306/hive --username hive --password mysql
(显示有sss表)
5.将mysql中的sqoop用户下sss 导入到HDFS中
[hadoop@h91 sqoop-1.3.0-cdh3u5]$ bin/sqoop import --connect jdbc:mysql://123.56.162.14:3306/hive --username hive --password mysql --table sss -m 1
(-m 为并行 默认并行度为4)
[hadoop@h91 hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -ls
多出个sss目录
[hadoop@h91 hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -ls /user/hadoop/sss
[hadoop@h91 hadoop-0.20.2-cdh3u5]$ bin/hadoop fs -cat /user/hadoop/sss/part-m-00000
看到 sss表内容
剩余5页未读,继续阅读
- 粉丝: 4
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦