前言
简单介绍一下什么是hive,按照官方的定义是:hive是基于Hadoop的一个数据库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据库的统计分析。
其实就可以这么理解:Hadoop本身的mapreduce变成起来太麻烦,写起来真的要人命,于是hive诞生了,通过只需要写sql语句就可以将sql转成mapreduce程序了,提高了效率,简化了流程。
还有一个比较重要的点从上面描述也知道,hive就是一个工具,实际上必须要先有Hadoop集群才行,所以我来说一下我的集群。
我的集群是hadoop2.7.3版本的,有三个节点,分别为node1、node2、node3.
三种模式
hive可以安装为三种模式,分别为
内嵌模式:
--元数据保存在内嵌的derby数据库中,只允许一个会话链接,尝试多个会话链接时会报错
本地模式:
--本地安装模式其实就是把mysql和hive安装在一台机器上而已(这就是本地模式)
(本地安装mysql 替代derby存储元数据,使用mysql进行hive的元数据信息管理)
远程方式:
--远程模式的意思就是mysql的安装和hive的安装没有在同一台机器上,和本地模式大的区别就是在hive-site.xml中,我们需要修改下mysql的ip地址和端口号。但是我们需要注意以下两个问题:
--hive-site.xml中的mysql安装主机的ip地址和端口号.
--访问mysql的用户名的访问权限需要进行设置
由于内嵌模式只能支持一个链接,对于真实使用是在式鸡肋,本文就不说了,另外本地模式和远程模式其实很像,所以就按照本地式来展开。
下载
步就是要下载,我推荐到官方去下载
官网地址:
https://hive.apache.org/
这次我下载的版本是1.2.2
下载地址:
https://apache.org/dist/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
给大家看一下我已经下载的安装包
解压安装hive 安装包
我们下载的hive的安装包本事已经是编译好的,所以所谓的安装就是解压一下就好了,读者跟着我的操作来就行了。
tar -xzvf apache-hive-1.2.2-bin.tar.gz -C /opt/bigdata/ # 解压到特定的文件夹
cd /opt/bigdata # 进入文件夹
chown -R hadoop:hadoop apache-hive-1.2.2-bin/ # 修改所属用户组
chmod -R 755 apache-hive-1.2.2-bin/ # 修改读写权限
安装mysql数据库
关于安装mysql,其实官方给出了很多种方法,我们就用一种简单的,二进制包安装吧!
首先,mysql这么出名了,我就不用介绍他的官网了吧,我给出下载链接就好了
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
给看一下我的
下载完之后就开始安装,根据官方文档的提示,安装一下下面两个工具,需要依赖
yum install libaio
yum search libnuma
yum install numactl-libs.x86_64
好了,一切准备就绪,开始安装了。
groupadd mysql #创建用户组
useradd -r -g mysql -s /bin/false mysql #创建用户
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ # 解压文件
cd /usr/local #进到解压的目录中
mv mysql-5.7.27-linux-glibc2.12-x86_64/ mysql # 给文件夹改个名字
cd mysql # 进入文件夹
mkdir mysql-files # 创建安全目录文件
mkdir data # 创建mysql数据目录
mkdir logs # 创建日志目录
mkdir mariadb # 创建pid文件目录
cd logs # 进入日志文件目录
touch logs.err # 创建日志文件
cd ..
cd mariadb/ #进入pid文件创建目录
touch mariadb.pid # 创建pid文件
cd /usr/local # 进入安装目录
chown -R mysql:mysql mysql # 修改mysql所属用户组
chmod -R 755 mysql # 修改读写权限
cd mysql # 进入mysql目录
chmod 750 mysql-files # 将安全目录的权限改成750
# 初始化mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --log-error=/usr/local/mysql/logs/logs.err --pid-file=/usr/local/mysql/mariadb/mariadb.pid
bin/mysql_ssl_rsa_setup # 配置安全ssl
bin/mysqld_safe --user=mysql & # 安全启动我们的mysql
cp support-files/mysql.server /etc/init.d/mysql.server # 加入到系统启动
到这里,我们的mysql就已经正式的搭建好了,来检测一下
ps -ef | grep mysql
执行上面的命令查看是否有进程
如果看到和我一样类似的,说明安装成功了。
解下来进入mysql操作一遍检验一下。
操作之前先来配置一下环境变量。
修改root加目录下面的.bash_profile文件
别忘记执行一下source命令哦
source .bash_profile
可以实验进入mysql了。但是在此之前我们先得找到初始密码
就在/usr/local/mysql/logs/logs.err 这个我们上面自己配置的错误日志文件中,其中有一行
看到没,冒号后面的都是mysql的密码,无论他是什么字符串,但是这个密码只能使用一次,所以,我们步进入mysql就是修改密码
mysql -uroot -p #执行命令
这里会提示输入密码,输入从日志中复制的密码,粘贴就好了
看到这里说明我们正确进入了mysql
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'; #这里的1234就是我自己设置的新密码,读者可以自行设置,只要自己满意就好了
flush privileges; # 刷新配置
这个时候用户可以推出mysql,用新密码重新登陆一下。我测试是完全OK的,到这里我们的mysql环境就完全OK了。
修改hive 的配置文件
切换到Hadoop用户,切换到hive 的conf目录下面
cd /opt/bigdata/apache-hive-1.2.2-bin/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
删除第18行到33913行,命令如下
:18,3913d
然后复制以下内容到configuration中
<property>
<!--这个是用于存放hive元数据的目录位置。 -->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!-- 控制hive是否连接一个远程metastore服务器还是开启一个本地客户端jvm,默认是true,Hive0.10已经取消了该配置项;-->
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- JDBC连接字符串,默认jdbc:derby:;databaseName=metastore_db;create=true;-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>
</property>
<!--JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver; -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- username,默认APP;-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--password,默认mine;-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>1234</value> <!-- 这里需要换成自己设置的mysql到密码 -->
</property>
然后保存推出就行了。
下载mysql驱动包
下载地址为:
https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar
下面是下载命令
logout
cd ~
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar
然后将下载的jar包放到hive的lib目录下面
cp mysql-connector-java-5.1.46.jar /opt/bigdata/apache-hive-1.2.2-bin/lib/
将hive添加到环境变量中
su - hadoop
cd ~
vim .bash_profile
source .bash_profile
然后启动hive
hive
然后就看到
到了这里,我们就完全安装成功了,可以查看一下数据库来测试一下。
总结
以上就是hive 本地安装的全过程了,如果有什么问题,可以在下方给我留言,我看到之后会时间来解答的,希望我们能够通过进步,一起交流。