热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hadoop插件sqoop使用案例

sqoop是hadoop项目中一个插件,可以把分布式文件系统hdfs中内容导入到mysql指定表里面,也可以把mysql中内容导入到hdfs文件系统中进行后续操作。测试环境说明:h

sqoop是hadoop项目中一个插件,可以把分布式文件系统hdfs中内容导入到mysql指定表里面,也可以把mysql中内容导入到hdfs文件系统中进行后续操作。


测试环境说明:

hadoop版本:hadoop-0.20.2

sqoop版本:sqoop-1.2.0-CDH3B4

java版本:jdk1.7.0_67

mysql版本:5.1.65


特别说明:

因为我安装的是hadoop-0.20.2版本,sqoop不支持这个版本,但是可以使用CDH3版本的hadoop,也可以通过copy相关文件,达到目的。

下载链接:

http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz

http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz


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基本配置:

1)profile环境变量说明:

export JAVA_HOME=/usr/local/jdk1.7.0_67/
export JRE_HOME=/usr/local/jdk1.7.0_67/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PIG_HOME=/usr/local/pig-0.9.2
#告诉pig客户端,本机hadoop配置文件在什么地方
export PIG_CLASSPATH=/usr/local/hadoop-0.20.2/conf
export HBASE_HOME=/usr/local/hbase-0.90.5
export HADOOP_HOME=/usr/local/hadoop-0.20.2
export SQOOP_HOME=/usr/local/sqoop-1.2.0-CDH3B4
export HIVE_HOME=/usr/local/hive-0.8.1
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$PIG_HOME/bin:$PIG_CLASSPATHi:$HIVE_HOME/bin:$SQOOP_HOME/bin:$PATH

2)由于本测试案例不需要sqoop检查到hbase和zookeeper环境变量,所以要做一***释:

编辑文件/usr/local/sqoop-1.2.0-CDH3B4/bin/configure-sqoop,修改一下行,增加在注释:

#if [ ! -d "${HBASE_HOME}" ];then
#  echo "Error: $HBASE_HOME does not exist!"
#  echo ‘Please set $HBASE_HOME to the root of your HBase installation.‘
#  exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
#  echo "Error: $ZOOKEEPER_HOME does not exist!"
#  echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeperinstallation.‘
#  exit 1
#fi


3)创建sqoop库,平且授权:

mysql> GRANT ALL PRIVILEGES ON sqoop.* TO ‘sqoop‘@‘172.16.41.%‘ identified by ‘routon‘ with grant option;

mysql> flush privileges;


4)创建students表,并且插入数据:

mysql> create table students (id int not null primary key, name varchar(20), age int);


插入测试数据:

insert into studentsvalues(‘001‘,‘abc‘,29);
insert into students values(‘002‘,‘def‘,28);
insert into students values(‘003‘,‘aaaa‘,26);
insert into students values(‘004‘,‘efsaz‘,60);
insert into students values(‘005‘,‘kiass‘,63);

表中数据为:

mysql> select * from students; 

+----+-------+------+

| id | name  | age  |

+----+-------+------+

|  2 | def   |   28 |

|  3 | aaaa  |   26 |

|  4 | efsaz |   60 |

|  5 | kiass |   63 |

+----+-------+------+

4 rows in set (0.00 sec)


5)在master设备node1节点上测试sqoop能否成功连接远程主机node29上的mysql,如何出现mysql库中创建的表,就说明已经连接成功了。

,

如图所示,通过sqoop,可以查看远端测试mysql数据库中students表;


6)将mysql数据库中数据导入到hdfs文件系统中:


,在hdfs文件系统中查看是否已经导入成功:

,


,


说明mysql中国内容,已经导入到分布式文件系统中!


7)hdfs文件系统中文件导入到mysql

说明:数据导入前,先清空students表中数据,使用命令:delete from students;


在master服务器上执行sqoop命令,将hdfs文件内容,导入到mysql数据中students表内!

,



查看mysql表:

mysql> select * from students; 

+----+-------+------+

| id | name  | age  |

+----+-------+------+

|  2 | def   |   28 |

|  3 | aaaa  |   26 |

|  4 | efsaz |   60 |

|  5 | kiass |   63 |

+----+-------+------+

4 rows in set (0.00 sec)



测试完成!

本文出自 “shine_forever的博客” 博客,请务必保留此出处http://shineforever.blog.51cto.com/1429204/1566788

hadoop插件sqoop使用案例


推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 解决Win10下MySQL连接问题:Navicat 2003无法连接到本地MySQL服务器(10061)
    本文介绍如何在Windows 10环境下解决Navicat 2003无法连接到本地MySQL服务器的问题,包括启动MySQL服务和检查配置文件的方法。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
author-avatar
尛妙苗_549
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有