sqoop的概念和安装

sqoop:
概念及功能:
数据迁移的,数据移动
原来数据管理是集中式管理
将原来的集中式管理的数据 移动到分布式平台下
sqoop就是将传统的关系型数据库的数据和大数据据平台之间的数据迁移
迁移有两个方向:
1)关系型数据库mysql/oracle----》大数据平台(hadoop,hive,hbase)
数据导入
2)大数据平台(hadoop hive hbase)----》关系型数据库(mysql)
数据导出
通常用于 分析结果数据从hive或hdfs导出到mysql中 便于前台展示
sqoop是关系型数据库和大数据平台的桥梁

	注意:这里的大数据平台指的是hadoop的广义概念
		hadoop:
			1)狭义
				专门指hadoop组件
			2)广义:
				hadoop生态圈的所有组件
				hadoop  hive   hbase   zookeeper ......

sqoop的数据导入和数据导出的本质:
数据导入:mysql----》hadoop
将mysql的数据复制到hadoop上
实质上是将sqoop的命令转换为MR任务进行执行
重新定义的数据输入 将原来的数据输入(hdfs)转为
从mysql数据库进行读数据的数据输入
数据导出:hadoop-----》mysql
实质上相当于重新定义了MR的输出
实质上是将sqoop的命令转换为MR任务进行执行
输出是mysql或oracle数据库
这里的sqoop的命令转换的MR任务 不需要reduce任务的 只需要Map任务

sqoop的安装:
sqoop1.4.6
版本介绍:
sqoop1.0版本 主流
1.99.3
sqoop2.0版本
只需要安装一个节点:
mysql
hdfs
hive
hbase
保证节点上有以上的大数据相关服务
hadoop02
安装步骤:
1)上传
2)解压
tar -xvzf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
3)配置环境变量
export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH= P A T H : PATH: JAVA_HOME/bin: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOP_HOME/sbin: Z O O K E E P E R H O M E / b i n : ZOOKEEPER_HOME/bin: HIVE_HOME/bin:$SQOOP_HOME/bin
4)生效环境变量 并验证
source /etc/profile
sqoop version
5)修改配置文件
cp sqoop-env-template.sh sqoop-env.sh
修改配置文件解析:

		#Set path to where bin/hadoop is available
		#export HADOOP_COMMON_HOME=

		#Set path to where hadoop-*-core.jar is available
		#export HADOOP_MAPRED_HOME=
		

		#set the path to where bin/hbase is available
		#export HBASE_HOME= hbase的目录

		#Set the path to where bin/hive is available
		#export HIVE_HOME=HIVe的安装目录

		#Set the path for where zookeper config dir is
		#export ZOOCFGDIR=zokeeper的conf文件的目录

hadoop的common  mapreduce为什么需要分开配置:
			开源:
			hadoop来说  common  mapreduce都在一个安装包中
			对于开源的来说上面的两个都是hadoop的安装目录
			商业版:
				CDH
				HDP
				对于商业版本的hadoop来说  common和mapreduce分别、
				安装在不同的目录下的
	6)将mysql的驱动放在sqoop的lib包下
		/home/hadoop/apps/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib
	7)测试:
	
	sqoop list-databases \
	--connect jdbc:mysql://hdp1:3306/ \
	--username root \
	--password 123456

报错:
Access denied for user root@hdp01 (using password :YES)
原因:mysql的用户名密码不对
	去mysql中查看root@hdp01用户名对的密码
	root@hdp01:指的是hdp01主机  用户 root对应的密码
	去mysql的mysql库中:
	use mysql;
	查询user表
	select user,host,password from user;
	集体修改一下密码:
	update user set password=PASSWORD("123456") where host='hadoop02';
	update user set password=PASSWORD("123456") where user='root';
	select user,host,password from user;
	刷新权限
	flush privileges;	
	退出mysql并重启mysql服务
	sudo service mysqld restart

sqoop的使用:
sqoop help 查看所有的sqoop的命令
import 数据导入
export 数据导出
sqoop help import
sqoop help export

猜你喜欢

转载自blog.csdn.net/wjr_wl/article/details/83547971