Hive的安装部署

Hive常用的安装分三种(注意:Hive会自动监测Hadoop的环境变量,如有就必须启动Hadoop)

先从本地上传Hive安装文件apache-hive-2.1.1-bin.tar.gz到/root/soft

1 嵌入式模式

使用hive自带默认元数据库derby来进行存储,通常用于测试

  1. 优点:使用简单,不用进行配置

  2. 缺点:只支持单Session。

安装步骤:

1.1 解压hive

并配置环境变量

[root@hd01 local]tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local
#修改Hive的安装路径名,方便以后使用
[root@hd01 local]mv apache-hive-2.1.1-bin/ hive[root@hd01 local]vi /ect/profile
#添加以下内容
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH#让profile生效
[root@hd01 local]source /etc/profile

1.2 配置hive-env.sh

如果不存在,就用hive.env.sh.template复制一个

export HIVE_CONF_DIR=/usr/local/hive/conf
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

1.3 配置hive-site.xml

Hive2.1.1中默认是没有使用hive-site.xml,可以把conf/hive-default.xml.template拷贝过来

[root@hd01 local]cp hive-default.xml.template hive-site.xml

1.4 修改dir

hive-site.xml中有两个重要的配置如下:

在linux中新建上面两个目录,并且进行权限赋值

hdfs dfs -mkdir -p /user/hive /warehouse
hdfs dfs -mkdir -p /tmp/hive/
hdfs dfs -chmod 750 /user/hive/ warehouse
hdfs dfs -chmod 777 /tmp/hive

1.5 修改io.tmpdir路径

[root@hd01 hive] # mkdir iotmp
[root@hd01 hive] # chmod 777 iotmp

把hive-site.xml 中所有包含 ${system:Java.io.tmpdir}替换成/usr/local/hive/iotmp.

如果系统默认没有指定系统用户名,那么要把配置${system:user.name}替换成当前用户名

root

1.6 启动hadoop

[root@hd01 hadoop]# start-dfs.sh
[root@hd01 hadoop]# start-yarn.sh

1.7 初始化hive

[root@hd01 hive]# schematool -initSchema -dbType derby

1.8 启动hive

(注:启动之前要启动hdfs sbin/start-dfs.sh 和yarn sbin/start-yarn.sh )

必须在初始化的目录启动hive(默认只有一个当前的session可用)

[root@hd01 hive]# bin/hive #进入后可以执行下面命令进行操作:
hive>show databases; #查看数据库
hive>show tables; #查看表

简单sql演示执行

# 创建表
hive> create table dog(id int,name string);
hive> select * from dog;
hive> insert into dog values(1,"gougou");
hive> desc dog; #查看表结构
hive> quit # 退出

2 本地模式

(将元数据库放在该台机器上)(多用户模式)

通常使用关系型数据库来进行元数据存储(mysql、oracle等执行带jdbc驱动的数据库)

优点:支持多Session
缺点:需要配置、还需要安装mysql等关系型数据库

2.1 配置安装mysql

安装包准备

#查看mysql是否安装,如果安装了,卸载mysql
[root@hd01 hive] rpm -qa|grep mysql
#如果出现下面的提示,就说明系统已经 有了mysql,要卸载
mysql-libs-5.1.73-7.el6.x86_64
# 卸载mysql
[root@hd01 hive] rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

安装MySql服务器

1.先从本地上传服务端和客户端到服务器,尽量使用root用户操作)
2.通过命令进行安装:
将下面的解包,得到所有相关的包
[root@hd01 soft]# rpm -ivh mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
将相关包按照顺序依次安装
[root@hd01 soft]# rpm -ivh mysql-community-common-5.7.28- 1.el7.x86_64.rpm
[root@hd01 soft]# yum -y install perl
[root@hd01 soft]# yum -y install net-tools
[root@hd01 soft]# rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
[root@hd01 soft]# rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
[root@hd01 soft]# rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm# 3. 启动mysql服务
# 启动数据库
[root@hd01 soft]# systemctl start mysqld
# 设置开机自启数据库
[root@hd01 soft]# systemctl enable mysqld 20
# 4. 查看产生的随机密码,运行命令后最后显示的xuzmpubKv0(f即为密码
[root@hd01 soft]# grep 'password' /var/log/mysqld.log
2020-04-14T19:20:47.261622Z 1 [Note] A temporary password is generated for root@localhost: xuzmpubKv0(f
# 5. 用上述密码登录数据库
[root@hd01 soft]mysql -u root -p
# 6. 修改密码(root与@与localhost之间不能有空格)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123@';

2.2 安装步骤说明

步骤(下面三个步骤同嵌入式安装):

1.解压并配置环境变量

2.配置hive的配置文件

​ cp hive-env.sh.template hive-env.sh

​ vi hive-env.sh(可以配置jdk、hive的conf路径)

3.在Hive的conf配置hive的自定义配置文件

​ vi hive-site.xml:添加如下内容

注意:要把原来的默认的derby的连接配置,连接驱动,用户,密码改成mysql 的

添加以下内容

<!--配置mysql的连接字符串-->
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive? createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description>
</property>
<!--配置mysql的连接驱动-->
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description>
</property>
<!--配置登录mysql的用户-->
<property> <name>javax.jdo.option.ConnectionUserName</name><value>root</value> <description>username to use against metastore database</description>
</property>
<!--配置登录mysql的密码-->
<property> <name>javax.jdo.option.ConnectionPassword</name> <value>123123</value> <description>password to use against metastore database</description>
</property>

4.将mysql的驱动包mysql-connector-java-5.1.27-bin.jar上传到上传到$HIVE_HOME/lib下(==

​ 注意:驱动是jar结尾,不是tar结尾==)

5.执行执行先要初始化数据库

[root@hd01 hive]# bin/schematool -initSchema -dbType mysql

6.启动hive

[root@hd01 hive]# bin/hive

7.远程连接mysql服务器

可以先用windows平台的工具访问linux系统上的mysql服务器,如果提示不让远程登录,看下面的解决办法
常见错误分析:
1.不让远程登录的解决办法
首先注意:设置完成后,root的密码变成了mysql不让远程登录:如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句   .:所有库下的所有表  %:任何IP地址或主机都可以连接)
输入命令说明:GRANT ALL PRIVILEGES ON . TO ‘用户名’@’%’ IDENTIFIED BY ‘你的密码 ’ WITH GRANT OPTION;
让客户端在远程登录拥有权限,密码重新设置成mysql
输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql'
WITH GRANT OPTION;
输入命令:FLUSH PRIVILEGES;   将命令写入授权表
让客户端在本地登录拥有权限,密码重新设置成mysql
输入命令:grant all privileges on *.* to root@"localhost" identified by "mysql" with grant option;
输入命令:FLUSH PRIVILEGES;2.执行mysql -uroot -p
或者
第一次安装完mysql后 执行/usr/bin/mysql_secure_installation 脚本,出现 Enter current password for root (enter for none): 点击回车后出现下面的错误
mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
错误原因:/var/lib/mysql目录中socket文件不存在。
连接mysql服务器有两种方式:tcp连接,通过socket文件连接。通过socket文件,启动
mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 -- datadir=/var/lib/mysql,mysql默认从/var/lib/mysql目录读取sock文件。解决办法:
1、看看/var/lib/mysql/mysql 有没有mysql.sock文件
2、没有mysql.sock,重启mysql服务,看看有没有。
3、没有的话,ps aux|grep mysql|grep -v 'grep' 查看mysql服务生成的sock在哪个目录,看看这个目录有没有。
4、如果mysql服务生成在其他目录,解决办法有:方法一 修改mysql服务生成的目录,在/etc/my.cnf 中[mysqld] socket
首先确认在etc/下有没有my.cnf文件
如果是rpm安装的mysql,默认这里没有.需要将usr/share/mysql下的my-medium.cnf拷贝到/etc/下并改名成my.cnf
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf方法二 mysql从/var/lib/mysql/读取sock文件,建立一个软连接,或者copy过来方法三 还可以找到当前的mysql进程,将他删掉,重新启动
情况:第一次启动失败,进程没有关闭,第二次开服务无法启动

3 远程模式

(将元数据库放在其他机器上)(多用户模式)
和本地模式差不多,只是将元数据放在别的服务器上,这种的就是咱们常说的集群模式。 可以有一个hive的server和多个hive的client。

Hive的安装部署--三种模式相关推荐

  1. 【hive】——metastore的三种模式

    Hive中metastore(元数据存储)的三种方式: 内嵌Derby方式 Local方式 Remote方式 [一].内嵌Derby方式 这个是Hive默认的启动模式,一般用于单元测试,这种存储方式有 ...

  2. Redis集群部署的三种模式

    一.Redis简介 Redis 是一款完全开源免费.遵守BSD协议的高性能(NOSQL)的key-value数据库.它使用ANSI C语言编写,支持网络.可基于内存亦可持久化的日志型.Key-Valu ...

  3. 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...

  4. 【若泽大数据实战第十六天】Hive的安装部署 + 课程一个月总结

    前言: Hadoop的课程已经告一段落,基本上在零基础课程里不会再出现了,接下来的课程由若总来上,第一讲Have. 复习前一个月的课程内容: 1.Linux Linux: 文件(*****) 权限(* ...

  5. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  6. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式

    Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...

  7. (转)云计算的三种模式:IaaS、PaaS和SaaS 通俗理解

    突然想了解下有关云的一些知识,于是整理了一些资料供自己学习和理解. "云计算"已经越来越普遍,简单来说这就是一种共享资源的形式,不过是通过云来共享分布式的资源."云&qu ...

  8. SAAS云服务三种模式

    云服务的三种模式(官方介绍) IaaS(基础设施即服务) IaaS(Infrastructure as a Service),即基础设施即服务.提供给消费者的服务是对所有计算基础设施的利用,包 括处理 ...

  9. Hadoop的三种模式(单机模式,伪分布式,完全分布式)以及集群的搭建

    基本概念: 1. Hadoop是一个分布式文件系统的基础架构,用户可以利用集群进行高速运算和存储 2. Hadoop实现了一个分布式文件系统(Hadoop Distributed File Syste ...

最新文章

  1. HTTP协议Etag详解
  2. Python Socket编程基础篇
  3. 【转】DontDestroyOnLoad(Unity3D开发之五)
  4. r语言多重共线性_R语言与计量经济学(二)多重共线性
  5. norflsh nandflash之类的存储设备启动bootloader概述
  6. linux fstab解读
  7. 基础知识(十)C++常用函数.txt
  8. 国际C语言混乱代码大赛
  9. 鼠标成十字html,鼠标变成十字如何恢复
  10. 鸿蒙系统是不是无法注册gmail邮箱也无法正常使用youtube?
  11. SCM-PEG2000-Maleimide,Mal-PEG2000-Succinimidyl Carboxymethyl Ester
  12. 原生JS实现任意数据的动态表格
  13. python另存为对话框_python – 另存为文件对话框 – 如何不允许覆盖
  14. 12306火车票助手
  15. 使用.net(C#)发送邮件学习手册(带成功案例)
  16. Linux内核分析及内核编程
  17. 怎么处理H5棋牌游戏app下载链接在微信中打不开或者显示已停止访问该网页
  18. HTML——表单及表单元素
  19. 关于百度地图动态事件调用的使用
  20. Navigation: DialogFragment popBackStack() 和 dismiss() 比较currentBackStackEntry/previousBackStackEntry

热门文章

  1. 快速搭建个人博客网站——Hexo
  2. 中国云计算服务网:盛大云体验报告
  3. 概率论几大分布的期望和方差证明整合
  4. 耀华仪表A9数据解析(C#)
  5. JZOJ3481. 【NOIP2013模拟10.23】君と彼女の恋(2017.10B组)
  6. 慕课网要倒闭了?第二个开课吧?
  7. 如何去掉德国Kilu免费空间的广告
  8. 愿编程不再乱码(含Qt)-根因深究
  9. Macbook 上onenote无法在本地新建笔记本
  10. 基于稳态视觉诱发电位(SSVEP)的中文拼写器脑机接口(BCI)对于应用于ALS患者