Sqoop的安装与测试

这里写目录标题

什么是Sqoop?

Sqoop就是hadoop和mysql的一个中间介质 , 作用就是可以将hadoop中的数据传到mysql中 , 或将mysql中的数据导入到hadoop中

Sqoop的安装与配置

安装

详细代码

java 复制代码
//解压安装
[root@hadoop soft]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@hadoop soft]# rm -rf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@hadoop soft]# ls
hadoop  hive  jdk  mysql5.7  sqoop-1.4.7.bin__hadoop-2.6.0
[root@hadoop soft]# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop
[root@hadoop soft]# ls
hadoop  hive  jdk  mysql5.7  sqoop

//配置环境变量
[root@hadoop sqoop]# vim /etc/profile.d/sqoop.sh
[root@hadoop sqoop]# cat /etc/profile.d/sqoop.sh 
SQOOP_HOME=/usr/soft/sqoop
PATH=$PATH:$SQOOP_HOME/bin
CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib
export SQOOP_HOME PATH CLASSPATH
[root@hadoop sqoop]# source /etc/profile.d/sqoop.sh

//修改配置文件
[root@hadoop sqoop]# cd conf
[root@hadoop conf]# ls
oraoop-site-template.xml  sqoop-env-template.cmd  sqoop-env-template.sh  sqoop-site-template.xml  sqoop-site.xml
[root@hadoop conf]# cp sqoop-env-template.sh sqoop-env.sh
[root@hadoop conf]# vim sqoop-env.sh

//下载jdbc驱动
[root@hadoop conf]# cd ..
[root@hadoop sqoop]# ls
bin        CHANGELOG.txt  conf  ivy      lib          NOTICE.txt   README.txt       sqoop-patch-review.py  src
build.xml  COMPILING.txt  docs  ivy.xml  LICENSE.txt  pom-old.xml  sqoop-1.4.7.jar  sqoop-test-1.4.7.jar   testdata
[root@hadoop sqoop]# cd lib
[root@hadoop lib]# ls
	//这里能看到有mysql-connector-java-5.1.46.jar 即可

//验证Sqoop
[root@hadoop lib]# sqoop help
[root@hadoop lib]# sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 1234

分步详解

  • 解压
    [root@hadoop soft]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

  • 删除安装包
    [root@hadoop soft]# rm -rf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

  • 改名
    [root@hadoop soft]# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop

  • 环境配置
    [root@hadoop sqoop]# vim /etc/profile.d/sqoop.sh

    //sqoop.sh内容
    SQOOP_HOME=/usr/soft/sqoop
    PATH=PATH:SQOOP_HOME/bin
    CLASSPATH=CLASSPATH:SQOOP_HOME/lib
    export SQOOP_HOME PATH CLASSPATH

[root@hadoop sqoop]# source /etc/profile.d/sqoop.sh

修改配置文件

  • 路径
    cd /usr/soft/sqoop/conf

  • 复制配置文件
    [root@hadoop conf]# cp sqoop-env-template.sh sqoop-env.sh

  • 修改配置文件
    [root@hadoop conf]# vim sqoop-env.sh
    //编辑的时候把#去掉(让代码生效)

    sqoop依赖zookeeper,如果没有安装zookeeper可以先用默认的zookeeper
    vim sqoop-env.sh

    export HADOOP_COMMON_HOME=/usr/soft/hadoop
    export HADOOP_MAPRED_HOME=/usr/soft/hadoop
    export HIVE_HOME=/usr/soft/hive
    //export ZOOKEEPER_HOME=/usr/soft/zookeeper
    //export ZOOCFGDIR=/usr/soft/zookeeper
    //export HBASE_HOME=/usr/soft/hbase

下载JDBC驱动

  • 将jdbc驱动包上传到sqoop的lib目录下 :

测试

  • 验证Sqoop(我们可以通过某一个command来验证sqoop配置是否正确:)
    sqoop help

  • 测试Sqoop是否能够成功连接数据库
    //注意 : 要写自己的用户名和密码
    sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 1234

  • 出现如下测试成功

    19/07/27 18:53:34 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
    19/07/27 18:53:34 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
    19/07/27 18:53:34 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
    information_schema
    hive_metadata
    mysql
    test
    test2

尝试用sqoop导出数据到mysql中

  • 在mysql中创建一个新的数据库

  • 建表

  • 数据准备
    cd /usr/data
    vim dept.txt

    10 ACCOUNTING 1700
    20 RESEARCH 1800
    30 SALES 1900
    40 OPENATIONS 1700
    10 ACCOUNTING 1700
    20 RESEARCH 1700
    30 SALES 1900
    40 OPENATIONS 1700

//上传到hdfs中
hdfs dfs -put dept.txt //user/hive/warehouse/dept

//打开hive
[root@hadoop ~]# hive

//创建部门表
create external table if not exists default.dept( deptno int, dname string, loc int ) row format delimited fields terminated by '\t';

//(从本地)导入数据到部门表中
load data local inpath '/user/data/dept.txt' into table default.dept;

//查询结果
select * from dept;

//导入到本地的mysql中

复制代码
bin/sqoop export \
--connect jdbc:mysql://localhost:3306/keshihua \
--username root \
--password 1234 \
--table dept \
--fields-terminated-by "\t" \
--export-dir /user/hive/warehouse/dept

执行完 , 可以看到数据导入到mysql中了


如果这里报错了

可以---->主机IP号:50070/logs---->到这个网址 中 , 看自己的log日志(syslog)


相关推荐
William Dawson1 天前
【踩坑实录|Hive1\.2\.1数据服务接口5大疑难问题调试与全方位优化方案】
java·hive·spring boot
ha_lydms1 天前
Hologres 简介
大数据·hadoop·阿里云·mapreduce·yarn·dataworks·hologres
Francek Chen4 天前
【大数据处理与分析】实验5:MapReduce初级编程实践
大数据·hadoop·分布式·mapreduce
牛奶咖啡138 天前
大数据Hadoop运维应用实践——HIVE与Hadoop实现整合_Hive的配置安装与使用
大数据·hive·hive的配置与安装·metastore服务的配置·hiveserver2服务配置·hive的常用sql操作·beeline的使用
Zhu7589 天前
在k8s集群环境部署高可用的Apache Hadoop3.1.1定制版集群
hadoop·kubernetes
还有你Y10 天前
软件工程架构
hadoop·架构·软件工程
向夏威夷 梦断明暄10 天前
基于Tez引擎的 Hive SQL 性能优化
hive·sql·性能优化
曾阿伦14 天前
Windows 下运行 Hadoop 并部署到 AWS EMR 指南
hadoop·windows·aws
极光代码工作室15 天前
基于Spark的日志监控与分析平台
大数据·hadoop·python·spark·数据可视化
liuxiaowei316 天前
Winform+WPF双框架实战:喷涂工艺SCADA上位机从0到1搭建(附采集监控源码+车间踩坑实录)
大数据·hadoop·wpf