前言
全局命令
在环境变量中增加如下命令,可以使用 bd
快速切换到 /data/tools/bigdata
cd /etc/profile.d/
vi bd.sh
内容如下
代码语言:javascript复制alias bd='cd /data/tools/bigdata'
配置生效
代码语言:javascript复制source /etc/profile
Sqoop的安装
下载地址
http://archive.apache.org/dist/sqoop/1.4.7/
上传至虚拟机,并解压
代码语言:javascript复制tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /data/tools/bigdata
环境变量
创建配置文件
代码语言:javascript复制vi /etc/profile.d/sqoop.sh
内容设置为
代码语言:javascript复制# SQOOP
export SQOOP_HOME=/data/tools/bigdata/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$PATH:$SQOOP_HOME/bin
配置生效
代码语言:javascript复制source /etc/profile
查看是否生效
代码语言:javascript复制echo $SQOOP_HOME
查看sqoop版本
代码语言:javascript复制sqoop version
帮助
代码语言:javascript复制sqoop help
连接MySQL
拷贝JDBC驱动
上传jdbc驱动到/opt/software目录中。
进入存放jdbc驱动的目录下,拷贝jdbc驱动到sqoop的lib目录下
代码语言:javascript复制cp /root/mysql-connector-java-5.1.40.jar $SQOOP_HOME/lib/
测试Sqoop连接数据库
进入sqoop安装目录,执行
代码语言:javascript复制sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password psvmc123
配置
Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。
进入sqoop下面的conf
命令:
代码语言:javascript复制cd $SQOOP_HOME/conf
重命名配置文件sqoop-env-template.sh
代码语言:javascript复制mv sqoop-env-template.sh sqoop-env.sh
修改配置文件 sqoop-env.sh
命令:
代码语言:javascript复制vi sqoop-env.sh
修改一下内容:
代码语言:javascript复制export HADOOP_COMMON_HOME=/data/tools/bigdata/hadoop-2.7.7
export HADOOP_MAPRED_HOME=/data/tools/bigdata/hadoop-2.7.7
export HIVE_HOME=/data/tools/bigdata/apache-hive-2.3.9-bin
# export ZOOKEEPER_HOME=/data/tools/bigdata/zookeeper
# export ZOOCFGDIR=/data/tools/bigdata/zookeeper
先不使用Zookeeper
hive数据导出到MySQL
hive中建表
准备数据,数据格式要和表结构相对应
代码语言:javascript复制vi /root/student.txt
在student.txt文件中加入以内容:
代码语言:javascript复制19308001,zhangsan,20,111111,222222
19308002,lisi,21,333333,444444
19308003,wangwu,20,555555,666666
19308004,liliu,20,777777,888888
19308005,zhangfei,21,999999,111111
注:以什么为分隔符,就用什么符号,这里使用的是逗号为分隔符
启动Hive
代码语言:javascript复制cd /data/tools/bigdata/apache-hive-2.3.9-bin
./bin/hive
查询表
代码语言:javascript复制show tables;
先在hive中创建表,数据类型和MySQL中的数据类型相对应
代码语言:javascript复制create table student
(id varchar(50),name varchar(50),age int,school varchar(50),class varchar(50))
row format delimited fields terminated by ',';
将txt文件数据导入到hive中
代码语言:javascript复制load data local inpath '/root/student.txt' into table student;
(4)查看表中数据
代码语言:javascript复制select * from student;
如图所示:
MySQL中建表
登录MySQL
代码语言:javascript复制mysql -uroot -p
创建一个数据库
代码语言:javascript复制create database hive;
使用hive数据库
代码语言:javascript复制use hive;
数据库中创建表
代码语言:javascript复制create table student (id varchar(50),name varchar(50),age int,school varchar(50),class varchar(50));
添加一条数据
代码语言:javascript复制insert into student values('19308009','wangmazi','22','666666','777777');
hive=>MySQL
运行
代码语言:javascript复制sh $HADOOP_HOME/sbin/start-all.sh
输入
代码语言:javascript复制jps
停止
代码语言:javascript复制sh $HADOOP_HOME/sbin/stop-all.sh
sqoop将hive中的数据传输到MySQL中
执行命令
代码语言:javascript复制sqoop export --connect jdbc:mysql://master:3306/hive --username root --password psvmc123 --table student --num-mappers 1 --export-dir /user/hive/warehouse/student --input-fields-terminated-by ','
说明
项 | 说明 |
---|---|
master:3306/hive | hive是指MySQL中的数据库 |
–export-dir /user/hive/warehouse/student | 导出数据的目录 |
–input-fields-terminated-by ‘,’ | 导出数据时,使用什么分隔符分割字段 |
–table student | 导出到 MySQL 的哪张表 |
hive创建的表在hdfs上面的位置为:/user/hive/warehouse/student
成功后进入MySQL数据库中查询数据
登录MySQL
代码语言:javascript复制mysql -uroot -p
使用hive数据库
代码语言:javascript复制use hive;
查看数据
代码语言:javascript复制select * from student;