Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。接着上次的数据预处理接下来还要进行数据分析,而数据分析用的便是Hive。Sqoop是一款开源的工具,主要用于在Hadoop(HDFS,Hbase,HIVE)与传统的数据库(mysql、Oracle 、postgresql…)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。我们要将分析后的数据导入到MySQL数据库里所以sqoop也是必不可少的。本篇便是数据分析前的准备:在Ubuntu操作系统下安装配置 MySQL、Hive本地模式及Sqoop。
文章里用的操作系统为Ubuntu,版本为18.04.4
文章内的几乎所有路径都要写自己实际的路径
安装hive前先把MySQL安装配置好。
执行下边的命令下载安装:
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-de
安装过后我们可以执行下边的代码来验证是否安装成功:
sudo netstat -tap |grep mysql
出现下图内容说明安装成功
然后找到初始的账号密码登陆MySQL:
sudo cat /etc/mysql/debian.cnf
找到下图中的用户和密码并登陆数据库
登陆:mysql -udebian-sys-maint -pwBbaaVROcuGhHJc1
这里建议直接复制上边查看的内容,不然容易打错。
使用MySQL数据库:use mysql;
修改root用户密码后退出:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';
exit;
重新登陆MySQL:
mysql -uroot -p123123
use mysql
创建数据库:
create database hive default character set utf8 collate utf8_general_ci;
建新用户hive:
格式为:
create user “用户名”@“host” identified by “你的密码”;
这里host如果是localhost为本地用户登陆,如果是IP地址则是IP地址登陆,如果是“%”则是外网登陆。
我的命令:
create user 'hive'@'localhost' identified by '123123';
给hive用户授权刷新权限:
授权格式:
grant privileges on databasename.tablename to ‘username’@‘host’ IDENTIFIED BY ‘PASSWORD’;
grant all privileges on `hive`.* to 'hive'@'localhost';
flush privileges;
查看是否授权成功:
show grants;
查看某个用户的权限为:
show grants for 'hive'@'localhost';
MySQL安装到这里就结束了,接下来是安装配置Hive
安装Hive之前必须安装配好jdk和Hadoop。
首先是下载Hive,以及Hive本地模式下还需要MySQL的JDBC驱动,可以在MySQL的官网下载,也可以去镜像网站下载,官网下载相对较慢一点。这里贴一个华为的镜像网站连接:
hive:
https://mirrors.huaweicloud.com/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
驱动:
https://mirrors.huaweicloud.com/mysql/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
下载后开始解压安装Hive:
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C 你要安装的路径
安装过后可以创建一个软连接,或者改名字以便后边修改环境变量等配置的输入。
切换到hive的安装目录输入:
ln -s apache-hive-2.3.3-bin hive
设置环境变量:
vi ~/.bashrc
在文件的尾部添加:
下边的路径是我自己的路径,自己做的时候要改成自己实际安装的路径。
export HIVE_HOME=/home/hadoop/hive
export PATH=$HIVE_HOME/bin:$PATH
修改完成保存退出后,要使环境变量立即生效执行:
source ~/.bashrc
修改配置文件:
切换到Hive的conf目录下,创建hive-site.xml文件:
cd ~/hive/conf
vi hive-site.xml
添加以下内容(顶格写):
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?useSSL=false
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
123123
配置文件需要顶格写,不然会报错。配置文件里的javax.jdo.option.ConnectionUserName以及javax.jdo.option.ConnectionPassword要根据自己在MySQL创建的用户和用户名做修改。
然后将前边下载的驱动放在安装的Hive的lib目录下:
cp mysql-connector-java-5.1.48.jar ~/hive/lib
首次安装需要初始化MySQL:
schematool -dbType mysql -initSchema
启动hive:
在hive启动之前要保证Hadoop已经启动
hive
Sqoop的华为镜像网站
https://mirrors.huaweicloud.com/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
切换到压缩包所在目录后解压到指定目录:
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C 你要安装的目录
切换到sqoop安装目录创建软连接:
ln -s sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
在末尾添加环境变量: vi ~/.bashrc
加入:
路径根据自己实际路径修改
export SQOOP_HOME=/home/hadoop/sqoop
export PATH=$PATH:${SQOOP_HOME}/bin
立即生效:source ~/.bashrc
进入到sqoop的conf目录下利用模板文件,复制副本进行编辑修改:
cd ~/sqoop/conf
cp sqoop-env-template.sh sqoop-env.sh
vi 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=
#Set the path to where bin/hive is available
#export HIVE_HOME=
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=
改为:
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/hadoop/hadoop
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/hadoop
#Set the path to where bin/hbase is available
export HBASE_HOME=/home/hadoop/hbase
#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/hive
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/hadoop/zookeeper
里边的内容要根据自己的实际路径进行修改,上边的为我自己的实际路径。
启动sqoop验证是否安装成功:sqoop help
启动会有
Warning: /home/hadoop/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/hadoop/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installatio
警告信息,原因是没有安装HCatalog和Accumulo,不影响实际使用,如果想去掉这些警告信息可以切换到sqoop目录下后执行:vi bin/configure-sqoop
注释掉相关语句即可解决。
好了,安装教程到此结束,有描述不对的地方多多指正。写博客就是为了记录一下自己的学习,同时加深记忆,以免忘记自己学过的东西,以后还可以回顾一下。