CentOS搭建Sqoop环境

Sqoop是一个用来将Hadoop(Hive、HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。

Sqoop安装

1、下载Sqoop安装包

在Sqoop官网下载安装包,本次使用的是sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz安装在/usr/local目录下,下载地址为http://apache.fayea.com/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

2、解压Sqoop安装包

1 #进入sqoop安装目录
2 [hadoop@BigData ~]$ cd /usr/local
3 #解压sqoop安装包
4 [hadoop@BigData ~]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
5 #删除sqoop安装包
6 [hadoop@BigData ~]$ rm -rf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
7 #重命名sqoop目录名
8 [hadoop@BigData ~]$ mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

3、配置Sqoop环境变量

1 #配置Sqoop环境变量
2 [root@BigData ~]# vi /etc/profile
3 export SQOOP_HOME=/usr/local/sqoop
4 export PATH=$PATH:$SQOOP_HOME/bin
5 #使环境变量配置生效
6 [root@BigData ~]#/etc/profile

4、将关系型数据库驱动包放到sqoop/lib目录下

MySql:mysql-connector-java-5.1.30.jar
Oracle:ojdbc14.jar

5、修改Sqoop配置文件

 1 [hadoop@BigData ~]$ mv sqoop-env-template.sh sqoop-env.sh
 2 [hadoop@BigData ~]$ vi sqoop-env.sh
 3 #Set path to where bin/hadoop is available
 4 export HADOOP_COMMON_HOME=/usr/local/hadoop
 5 #Set path to where hadoop-*-core.jar is available
 6 export HADOOP_MAPRED_HOME=/usr/local/hadoop
 7 #set the path to where bin/hbase is available
 8 export HBASE_HOME=/usr/local/hbase
 9 #Set the path to where bin/hive is available
10 export HIVE_HOME=/usr/local/hive
11 #Set the path for where zookeper config dir is
12 export ZOOCFGDIR=/usr/local/zookeeper
到此,sqoop环境就已搭建成功!

Sqoop测试

1、导入MySql数据到hdfs中

mysql数据库中sqoop库中出来test表,表结构及数据如下所示:
idusernamegendertelephoneemail
1test_01Female138xxxx0903test_01@example.com
2test_02Male187xxxx9364test_02@example.com
该命令执行结束后,观察hdfs的目录/user/{USER_NAME},下面会有一个文件夹是test,里面有个文件是part-m-00000。该文件的内容就是数据表aa的内容,字段之间是使用制表符分割的。

2、hdfs导出数据到mysql

把上一步导入到hdfs的数据导出到mysql中。我们已知该文件使用制表符分隔的。那么,我们现在数据库sqoop中创建一个数据表hive,其表结构和test表结构一样。然后执行下面的命令
1 [hadoop@BigData ~]$sqoop export --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table hive --export-dir '/user/hadoop/test/part-m-00000'--fields-terminated-by '\t'
参数解释:
参数解释
sqoopsqoop命令
export导出操作
--connect jdbc:mysql://ip:3306/sqoop连接mysql的url
--username连接mysql的用户名
--password连接mysql的密码
--tablemysql中的表,即将被导入的表名称
--export-dirhive中被导出的文件
--fields-terminated-by指定输出文件中的行的字段分隔符
查看sqoop库中的hive表中是否已经有两条数据
idusernamegendertelephoneemail
1test_01Female138xxxx0903test_01@example.com
2test_02Male187xxxx9364test_02@example.com

3、Mysql数据导入到Hive

比如把表test数据导入到Hive中,增加参数 –hive-import
1 [hadoop@BigData ~]$ sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --warehouse-dir /usr/local/hive/warehouse --hive-import --create-hive-table

进入Hive Client验证导入的数据:

1 [hadoop@BigData bin]$ hive client
2 hive> show tables;
3 user_information
4 test
5 login_log
6 hive> select * from test;
7 1   test_01 Female  138xxxx0903 test_01@example.com
8 2   test_02 Male    187xxxx9364 test_02@example.com

 4、Mysql数据导入到Hbase

把表test数据导入到HBase,指定Hbase中表名为demo_sqoop2hbase的命令

1 [hadoop@BigData ~]$ sqoop  import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url

hbase shell中验证导入的数据:

1 [hadoop@BigData bin]$ hbase shell
2 hbase(main):009:0>list
3 demo_sqoop2hbase

转载于:https://www.cnblogs.com/yinghun/p/6221335.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bat kafka启动_windows下搭建Kafka,并通过命令窗口收发消息

参考网址:前提条件:windows环境需要安装jdk2.由于Kafka依赖于zookeeper,所以也需要下载zookeeper,可以通过官网下载http://zookeeper.apache.org/3.安装zookeeper将压缩包解压后,到bin目录下,启动zkServer.bat即可注意…

异常处理、socke基于TCP协议编程

一、异常处理 1、错误和异常 1.程序中难免出现错误,而错误分成两种 (1)语法错误(这种错误过不了Python解释器的语法检测,必须在程序执行前改正) #语法错误示范一 if#语法错误示范二 def test:pass#语法错误…

getComputedStyle方法的那些事

一、getComputedStyle是?getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值。返回的是一个CSS样式声明对象([object CSSStyleDeclaration]),只读。 getComputedStyle() gives the final used values of all the CSS properties of an elem…

maven正确的集成命令-U-B

http://healthandbeauty.iteye.com/blog/1618501 在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install 么?事实上比较好的集成命令会稍微复杂些,下面是一些总结: 不要忘…

如何避免 .NET 中 HttpClient 的 DNS 失效问题?

HttpClient 可以用来发送 HTTP 请求。HttpClient 可以设置为单例并在整个生命周期中重复使用。这是因为,HttpClient 有一个“连接池”来重用连接并减少 TCP 连接的数量。因此,如果您向同一主机发送多个请求,它们将重用相同的连接。这样&#…

POJ 1159 Palindrome(字符串变回文:LCS)

POJ 1159 Palindrome(字符串变回文:LCS) http://poj.org/problem?id1159 题意: 给你一个字符串, 问你做少须要在该字符串中插入几个字符能是的它变成一个回文串. 分析: 首先把原字符串和它的逆串进行匹配, 找出最长公共子序列. 那么最长公共子序列的字符串肯定是一个回文串. 所…

java excutorthread_Java中ThreadPoolExecutor的参数理解

一、使用Executors创建线程池之前创建线程的时候都是用的Executors的newFixedThreadPool(),newSingleThreadExecutor(),newCachedThreadPool()这三个方法。当然Executors也是用不同的参数去new ThreadPoolExecutor1. newFixedThreadPool()创建线程数固定大小的线程池。 由于使用…

yii1.0性能调优之改善并发数

开启YII的APC缓存 在config/main.php components 组件下添加: apccache>array(class>system.caching.CApcCache), 下载php_apc.dll,文件放到php/ext 下,搜索时可能会比较麻烦.... 在php.ini 中添加php_apc扩展: extension…

windows下apache报错The requested operation has failed解决方法

2019独角兽企业重金招聘Python工程师标准>>> Apache报错The requested operation has failed,基本上是因为端口被占用。解决方法如下: 第一步,运行cmd,cd 定位到Apache安装目录的bin目录下,输入httpd.exe -…

stm32 usmart使用

我直接用正点原子给的,步骤如下 先添加三个.c进工程,添加两个头文件的编译路径 #include "usart.h"#include "usmart.h" main函数里添加如下 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 uart_init(960…

Scylla——开源免费的优秀代理 IP 池:自动验证、JSON API、基于 React 的 Web UI、Docker 支持...

GitHub:github.com/imWildCat/s… 中文文档:scylla.wildcat.io/zh/latest/ 自己是一个爬虫爱好者,有时候爬虫写的太过强大了被目标网站封了(笑)。所以就萌生了用代理 IP 的想法。很可惜很多开源代理 IP 池都是没有持续…

vs2015提示中文

解决方案:1.找到这个目录C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework 进入 \v4.0\zh-Hans的目录,全部复制,覆盖掉\v4.5\zh-Hans就行了

Istio 1.15 发布,支持 arm64 架构处理器

Istio 是基于容器的云原生技术栈的三大核心技术之一,另外两个是 Kubernetes 和 Knative。其中 Kubernetes 和 Knative 早已支持了 arm64 架构,甚至连 Istio 的数据平面 Envoy 早在 1.16 版本 [1] 就已支持 arm64 架构(2020 年 10 月&#xff…

TP框架表单验证 【包含ajax方法】

之前的表单验证都是用js写的,这里也可以使用tp框架的验证。但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降。  自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创…

Spring 入门学习二之IOC

今天来学习Spring ioc .一、spring jar 包导入 在 spring 官网下载开发包 spring-framework-4.2.4.RELEASE,然后导入需要的 jar 包到项目 /lib/ 目录下。  二、代码开发 新建一个 src/cn/sxt/bean/Hello.java文件 package cn.sxt.bean;/*** Created by kaiyiwang o…

java 物理内存_聊聊Java中的内存

JVM的内存先放一张JVM的内存划分图,总体上可以分为堆和非堆(粗略划分,基于java8)那么一个Java进程最大占用的物理内存为:Max Memory eden survivor old String Constant Pool Code cache compressed class space Metaspace Thread st…

.Net CoreRabbitMQ基本使用

队列模式https://www.rabbitmq.com/getstarted.html对以上几种模式进行简要分类,可以分成如下三类(RPC暂不考虑)简单队列模式,单发单收,一对一模式Worker模式,单发多收(一个消息一个接收者,多个消息多个接收者)&#x…

【微信小程序】:实现轮播图3秒滚动

wxml模板&#xff1a;&#xff08;数据一维数组&#xff09; <scroll-view scroll-y"true"><swiper autoplay"auto" interval"3000" duration"500"><block wx:for"{{home_pics}}" wx:for-index"index…

Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)

Linux基础&#xff1a;https://www.cnblogs.com/dunitian/p/4822808.html#linux 之前看到朋友还动不动 apt-get update upgrade&#xff0c;就很纳闷&#xff0c;后来发现原来他只是知道这个更新命令却不知其意&#xff0c;所以每次安装个包就把所有apt-get的常用清除更新命令打…

java获取tomcat目录结构_Tomcat目录结构详解

Tomcat目录结构图如下&#xff1a;bin目录存放一些可执行的二进制文件&#xff0c;.sh结尾的为linux下执行命令&#xff0c;.bat结尾的为windows下执行命令。catalina.sh&#xff1a;真正启动tomcat文件&#xff0c;可以在里面设置jvm参数。startup.sh&#xff1a;启动tomcat(需…