hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
0 hadoop搭建
在搭建hive之前,要保证hadoop搭建完成,hadoop教程可以参考这篇文章 ubuntu18.04下hadoop搭建https://blog.csdn.net/qq_41822647/article/details/84451416
1 下载并配置Hive
1.1 下载Hive
在apache官网下载hive包,这里下载的是hive-1.2.2版本 https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
下载好后解压hive包
然后将解压包移动到/usr/local/hive下,移之前首先在/usr/local下创建名为hive文件夹
$ sudo mkdir /usr/local/hive
移动hive包到/usr/local/hive目录下
1.2 配置环境变量
$ sudo vi /etc/profile
增加如下配置:
export HIVE_HOME=/usr/local/hive/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/apahe-hive-1.2.2-bin/lib
更新环境变量
$ source /etc/profile
1.3 配置hive-env.s h
进入目录下,
/usr/local/hive/apache-hive-1.2.1-bin/conf
首先新建一个空文件hive-env.sh:
$ touch hive-env.sh
接着
$ cp hive-env.sh.template hive-env.sh
$ vi hive-env.sh
添加hadoop的路径,如下:
HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.2
(以下所有配置均在该路径下。)
1.4 配置hive-site.xml
仍然,首先新建文件hive-site.xml
$ touch hive-site.xml
接着
$ cp hive-default.xml.template hive-site.xml $ vi hive-site.xml
增加mysql数据库的连接配置:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property>
修改临时文件夹的路径,找到以下两个位置,并修改为正确路径:
<property> <name>hive.exec.local.scratchdir</name> <value>/home/renziteng/iotmp</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/home/renziteng/iotmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property>
我的用户名是renziteng,所以在该路径下,新建了iotmp文件夹,并授权:
$ mkdir -p /home/renziteng/iotmp $ chmod -R 775 /home/renziteng/iotmp
1.5 修改hive-config.sh
进入目录:/usr/local/hive/apache-hive-1.2.2-bin/bin
sudo vi hive-config.sh
在该文件的最前面添加以下内容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_191 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.2 export HIVE_HOME=/usr/local/hive/apache-hive-1.2.2-bin
2 安装并配置mysql
2.1 安装MySQL Server
在命令行输入sudo apt-get install mysql-server即可安装。
2.2 下载MySQL JDBC驱动器
去mysql官网找GA version下载
下载完后解压
tar -zxvf mysql-connector-java-5.1.47.tar.gz
然后进入解压后的目录,把jar包复制到/usr/local/hive/apache-hive-1.2.2-bin/lib/下
$ cp mysql-connector-java-5.1.40-bin.jar /usr/local/hive/apache-hive-1.2.2-bin/lib
2.3 在HDFS中创建目录和设置权限
启动hadoop,在hadoop中创建hive需要用到的目录并设置权限。
$ start-all.sh #启动hadoop $ hadoop fs -mkdir /tmp $ hadoop fs -mkdir -p /user/hive/warehouse $ hadoop fs -chmod g+w /tmp $ hadoop fs -chmod g+w /user/hive/warehouse
2.4 初始化meta数据库
进入/usr/local/hive/apache-hive-1.2.2-bin/lib目录,初始化Hive元数据对应的MySQL数据库:
schematool -initSchema -dbType mysql
2.5 启动Hive
启动hive前,确保hadoop集群启动
$ start-all.sh $ hive
这样就成功了!!
from:https://blog.csdn.net/qq_41822647/article/details/84503869