Sqoop安装及使用

Sqoop安装及使用,第1张

Sqoop安装及使用 SQOOP安装及使用(只需在master配置) 准备安装包 安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gzmysql-connector-java-5.1.26-bin.jar 一、关闭防火墙

要关闭所有主机的防火墙

暂时关闭防火墙

systemctl stop firewalld

永久关闭防火墙

systemctl disable firewalld

设置开机禁用防火墙

systemctl disable firewalld.service

查看防火墙状态

systemctl status firewalld
二、安装SQOOP 1、上传并解压
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 
2、修改文件夹名字
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6
3、修改配置文件
# 切换到sqoop配置文件目录
cd sqoop-1.4.6/conf
# 复制配置文件并重命名
cp sqoop-env-template.sh sqoop-env.sh

# vim sqoop-env.sh 编辑配置文件,并加入以下内容

export HADOOP_COMMON_HOME=/home/sunshj/hadoop-2.7.7
export HADOOP_MAPRED_HOME=/home/sunshj/hadoop-2.7.7/share/hadoop/mapreduce
export HIVE_HOME=/home/sunshj/hive-1.2.1
# 切换到bin目录
cd /home/sunshj/sqoop-1.4.6/bin
# 修改配置文件,注释掉没用的内容(就是为了去掉警告信息)
vim configure-sqoop 

并在最后添加以下内容

for f in ${HADOOP_MAPRED_HOME}/*.jar;
do HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done 
4、修改环境变量
vim .bashrc
# 将sqoop的目录加入环境变量

export SQOOP_HOME=/home/sunshj/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin

# 刷新
source .bashrc
5、添加MySQL连接驱动
# 上传MySQL连接驱动到$SQOOP_HOME/lib
cp /home/sunshj/mysql-connector-java-5.1.26-bin.jar /home/sunshj/sqoop-1.4.6/lib/
6、测试
# 打印sqoop版本
sqoop version
# 测试MySQL连通性
sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456
三、准备MySQL数据 1、登录MySQL数据库
mysql -u root -p123456;
2、创建student数据库
create database student;
3、切换数据库并导入数据
# mysql shell中执行
use student;
set names utf8;
source /student.sql;
source /score.sql;
4、import

从传统的关系型数据库导入HDFS、HIVE、Hbase…

MySQLToHDFS

编写脚本,保存为MySQLToHDFS.conf

import
--connect
jdbc:mysql://master:3306/student
--username
root
--password
123456
--table
student
--m
2
--split-by
age
--target-dir
/sqoop/data/student
--fields-terminated-by
','

执行脚本

sqoop --options-file MySQLToHDFS.conf

运行成功!

MySQLToHive

编写脚本,并保存为MySQLToHive.conf文件

import 
--connect
jdbc:mysql://master:3306/student
--username
root
--password
123456
--table
score
--fields-terminated-by
"t"
--lines-terminated-by 
"n"
--m
2
--split-by
student_id
--hive-import
--hive-overwrite
--create-hive-table
--hive-database
testsqoop
--hive-table
score

在Hive中创建testsqoop数据库

create database testsqoop;

执行脚本

sqoop --options-file MySQLToHive.conf

--direct

加上这个参数,可以在导出MySQL数据的时候,使用MySQL提供的导出工具mysqldump,加快导出速度,提高效率

需要将master上的/usr/bin/mysqldump分发至 slave1、slave2的/usr/bin目录下

scp /usr/bin/mysqldump slave1:/usr/bin/
scp /usr/bin/mysqldump slave2:/usr/bin/
5、export HDFSToMySQL

编写脚本,并保存为HDFSToMySQL.conf

export
--connect
jdbc:mysql://master:3306/student?useUnicode=true&characterEncoding=UTF-8
--username
root
--password
123456
-m
1
--columns
id,name,age,gender,clazz
--export-dir
/sqoop/data/student/
--fields-terminated-by 
',' 
--table
student

先清空MySQL student表中的数据,不然会造成主键冲突

执行脚本

sqoop --options-file HDFSToMySQL.conf

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5443105.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存