NOTE:Sqoop基于Mariadb和Hive数据仓库,安装和运行使用Sqoop时请先安装Mariadb和Hive数据仓库。
顺序:
①Mariadb
②Hive数据仓库
③Sqoop.
前提:该Sqoop教程基于Hadoop平台HDFS文件存储系统(首先要搭建Hadoop平台HDFS文件存储系统)
如有问题请点击相应按钮查看文章寻找解决方法!

Hadoop平台HDFS文件系统搭建 | Mariadb安装 | Hive数据仓库安装


Sqoop安装

1.下载sqoop

官网下载 | 蓝奏下载

2、解压、编辑sqoop配置文件

    1. (1)、创建压缩包存在的文件夹,创建压缩包解压后的位置(看过之前文章的应该都知道)
mkdir /usr/tar
mkdir -p /usr/apps/sqoop
    1. (2)、进入创建好的文件夹(tar)
cd /usr/tar
    1. (3)、解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/apps/sqoop/
    1. (4)、进入Sqoop的conf修改配置文件
cd /usr/apps/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf
    1. (5)、改名或复制模板配置文件(两种方法都可行)
#改名
mv sqoop-env-template.sh sqoop-env.sh
#复制
cp sqoop-env-template.sh sqoop-env.sh
    1. (6)、编辑Sqoop配置文件
vi  sqoop-env.sh

内容如下

export HADOOP_COMMON_HOME=/usr/apps/hadoop/hadoop-2.7.4
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/usr/apps/hadoop/hadoop-2.7.4
#Set the path to where bin/hive is available
export HIVE_HOME=/usr/apps/hive/apache-hive-1.2.2-bin

3、Mariadb(MySQL)的jar包设置

点我下载该jar包

cd  /usr/apps/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib
#上传jar包
rz

4、sqoop环境变量设置

vi /etc/profile
    1. 最后一行添加:
#SQOOP_HOME
export SQOOP_HOME=/usr/apps/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$PATH:$SQOOP_HOME/bin
    1. 刷新使环境变量立即生效
source /etc/profile

5、sqoop安装验证

    1. (1)、输入命令验证:
sqoop-version
    1. (2)、sqoop连接mysql验证
NOTE:需要先运行Mariadb(MySQL)
sqoop list-databases -connect jdbc:mysql://localhost:3306/ --username root --password 000

6、打开SQLyog

两种方法:
第一种:SQLyog连接Linux系统里的Mariadb(MySQL)进行操作
第二种:SQLyog连接Windows系统的IP也就是localhost,之后进行导入时一样执行
两种方法,你觉得怎么方便就使用哪一种就可以
个人觉得第一种,所以先写在第一位了。

第一种方法:连接Linux里的Mariadb(MySQL)

    1. (1)、新建连接界面操作

MySQL主机地址:你的master主机地址,例如192.168.1.4
用户名:root
密码:000
还记不记得输入过的命令:允许远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '000' WITH GRANT OPTION;

000为最后导入的时候你需要用到的密码
如果连接不上记得在Mariadb里输入该命令
进入Mariadb:mysql -uroot -p000
输入允许远程访问命令即可。
端口:3306(无需改动)
数据库:留空(无需改动)

    1. (2)、进入数据库操作

本次可用到命令如下:

#创建库:
create databases 库名;
#允许某账户使用某密码进行远程访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '000' WITH GRANT OPTION;
#用户名:root
#密码:000
NOTE:SQLyog可视化中需要选中才能执行!!!
想要执行哪一条命令需要先选中,点击类似于播放按钮“▶”的图标,即可执行
刷新:选中服务器(SQLyog)最上层“root@192.168.1.4”,右键,“Refresh Object Browser”即可刷新

创建库,库名为userdb

CREATE DATABASE userdb;

插入命令

DROP TABLE IF EXISTS `emp`;
 CREATE TABLE `emp` (
     `id` INT(11) NOT NULL,
     `name` VARCHAR(100) DEFAULT NULL,
     `deg` VARCHAR(100) DEFAULT NULL,
     `salary` INT(11) DEFAULT NULL,
     `dept` VARCHAR(10) DEFAULT NULL,
      PRIMARY KEY (`id`)
  );
INSERT INTO `emp` VALUES ('1201', 'gopal', 'manager', '50000', 'TP');
INSERT INTO `emp` VALUES ('1202', 'manisha','Proof reader', '50000', 'TP');
INSERT INTO `emp` VALUES ('1203', 'khalil','php dev', '30000', 'AC');
INSERT INTO `emp` VALUES ('1204', 'prasanth','php dev', '30000', 'AC');
INSERT INTO `emp` VALUES ('1205', 'kranthi','admin', '20000', 'TP');

创建表、插入信息

DROP TABLE IF EXISTS `emp_add`;
  CREATE TABLE `emp_add` (
     `id` int(11) NOT NULL,
     `hno` varchar(100) DEFAULT NULL,
     `street` varchar(100) DEFAULT NULL,
     `city` varchar(100) DEFAULT NULL,
     PRIMARY KEY (`id`)
  );
INSERT INTO `emp_add` VALUES ('1201', '288A', 'vgiri', 'jublee');
INSERT INTO `emp_add` VALUES ('1202', '108I','aoc', 'sec-bad');
INSERT INTO `emp_add` VALUES ('1203', '144Z','pgutta', 'hyd');
INSERT INTO `emp_add` VALUES ('1204', '78B','old city', 'sec-bad');
INSERT INTO `emp_add` VALUES ('1205', '720X','hitec', 'sec-bad');
    1. (3)、HDFS文件系统:MySQL表导入(在Linux系统中输入命令)
NOTE:注意观察用户名和密码是你之前设置过的那个命令里的用户名和密码(允许远程访问数据库)
sqoop import --connect jdbc:mysql://master:3306/userdb --username root --password 000 --target-dir /sqoopresult --table emp --num-mappers 1

    1. 第二种方法:连接Windows系统里的MySQL
    1. (1)、新建连接界面操作

MySQL主机地址:localhost
用户名:root
密码:000
还记不记得输入过的命令:允许远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '000' WITH GRANT OPTION;

000为最后导入的时候你需要用到的密码
如果连接不上记得在Mariadb里输入该命令
进入Mariadb:mysql -uroot -p000
输入允许远程访问命令即可。
端口:3306(无需改动)
数据库:留空(无需改动)

NOTE:步骤二参照上方即可
    1. (3)、在Windows系统的MySQL中输入允许远程访问数据库命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '000' WITH GRANT OPTION;
    1. (4)、HDFS文件系统:MySQL表导入(在Linux系统中输入命令)
NOTE:注意观察用户名和密码是你之前设置过的那个命令里的用户名和密码(允许远程访问数据库)
sqoop import --connect jdbc:mysql://你的Windows电脑的IP:3306/userdb --username root --password 000 --target-dir /sqoopresult --table emp --num-mappers 1
NOTE:输出好长一串信息不慌,记得查看下有无报错(ERROR)

Sqoop迁移完毕之后可以打开网址:master主机地址:50070查看
例如:192.168.1.4:50070
点击:Utilities>Browse the file system>即可查看


教程完毕