CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
第五篇:CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
1.使用 FileZilla 上传sqoop文件到虚拟机
2.1Linux解压并删除压缩包 tar -zxvf sqoop 仅解压
2.2 mkdir ./sqoop && tar -xzvf sqoop-1.4.6-cdh5.7.0.tar.gz -C ./sqoop --strip-components 1
把解压文件放在sqoop的目录下,这样就得到了“sqoop”命名的解压文件。
–strip-components = NUMBER
在提取时从文件名中删除NUMBER个前导组件
3.配置环境变量
vi /etc/profile
export SQOOP_HOME=/opt/sqoop-1.4.6-cdh5.7.0
export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile
4、 拷贝mysql的jdbc jar文件sqoop的lib目录 在上章 hive的lib包下已经存在,只需要传过来就OK
cp /opt/hive-1.1.0-cdh5.7.0/lib/ mysql-connector-java-5.1.45-bin.jar /opt/sqoop-1.4.6-cdh5.7.0/lib/
注意:1.使用sqoop前需要导入Java-json.jar的包到sqoop的lib目录下 使用FileZilla上传 hive下面有java-json.jar
sqoop/lib下有hadoop-core-2.6.0-mr1-cdh5.7.0-20160212.213956-397.jar和mysql的jar
2.将之前上传的mysql-connector-java-5.1.45-bin.jar 拷贝到sqoop的lib目录下
3.将hive/lib/hive* 拷贝到sqoop的lib目录下 cp /opt/hive-1.1.0-cdh5.7.0/lib/hive* /opt/sqoop-1.4.6-cdh5.7.0/lib/
3)测试 sqoop version
执行下边命令
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P
回车之后输入你mysql的root用户密码
出现上述框框内的内容证明sqoop配置无误
在使用sqoop是,需要在mysql 赋予虚拟机用户的权限 master为主机名 12345为mysql密码
grant all privileges on *.* to root@master identified by '12345';

执行这句报错 说明你的密码太简单, 就先执行下面这两句在执行赋权操作:
如何密码设置简单的 需要执行:
set global validate_password_policy=0;
set global validate_password_length=1;
最后在刷新:flush privileges;
5.使用sqoop
1)mysql导入到hive(hdfs)
(1)进入mysql 创建数据库
create database hive_test;
进入数据库
use hive_test;
创建表
CREATE TABLE user (id int,name varchar(20));
添加数据
insert into user (id,name) values (1,'a'),(2,'test');
(2)进入hive 创建数据库
create database hive_test;
进入数据库
use hive_test;
创建表
create table user (id int,name string)row format delimited fields terminated by '\t';
(3)mysql数据导入hive数据
#--connect 连接
--username mysql账号
--password mysql密码
--table mysql表名
-m 执行map的次数
--fields-terminated-by 列的分割
--hive-import 导入hive
--hive-database
hive中的那个数据库
--hive-table hive表
--target-dir 是你要导入到那个表的地址
sqoop import --connect
jdbc:mysql://master:3306/hive_test
--username root
--password hadoop
--table user
--fields-terminated-by '\t'
--delete-target-dir
--target-dir /user/hive/warehouse/hive_test.db/user
--m 1
--hive-import
--hive-database hive_test
--hive-table user
(4)查看hive 中的表数据
显示出来代表执行成功
2)hdfs导出到mysql
(1)创建hive 表
create table users (id int,name string)row format delimited fields terminated by '\t'
(2)添加数据
insert into users values (1,'b'),(2,'a');
(3)创建mysql表
CREATE TABLE users (id int,name varchar(20));
(4)hdfs导入mysql
#--connect 连接
--username mysql账号
--password mysql密码
--table mysql表名
--export-dir hive文件在网站上的那个地方
--fields-terminated-by 列的分割
--m 执行map的次数
sqoop export
--connect jdbc:mysql://master:3306/hive_test
--username root
--password hadoop
--table users
--export-dir /user/hive/warehouse/hive_test.db/users/000000_0
--fields-terminated-by '\t' --m 1
(5)查看mysql表中数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!