绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
hive安装
2020-07-01 17:30:15

前言

简单介绍一下什么是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 本地安装的全过程了,如果有什么问题,可以在下方给我留言,我看到之后会时间来解答的,希望我们能够通过进步,一起交流。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Hive专区
创建时间:2020-07-01 14:09:32
Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。 Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机制,比如:更丰富的类型系统、更类似SQL的查询语言、Table/Partition元数据的持久化等。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • markriver
    专家
戳我,来吐槽~