Hive的安装部署以及使用方式


安装部署

  • Derby版hive直接使用

    cd /export/softwares

    将上传的hive软件包解压tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/

    cd /export/servers/hive-1.1.0-cdh5.14.0/

    启动bin/hive



    缺点:多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一;

  • 使用mysql共享hive元数据



    1.国内下载mysql源http://mirrors.163.com/mysql/Downloads/



    2.下载完成后将tar包解压到/var/cache/yum/x86_64/7/mysql57-community/packages



    3.可以用两种方法安装

    (1) yum install mysql mysql-server mysql-devel (安装包已经放到指定路径下,就不用再下载了)

    (2) rpm -ivh *.rpm(安装前要先cd到上面说的文件夹)

      第二种安装时如果出现“公钥未安装”之类的字眼,在后面加 --force --nodeps即可



    4.启动mysql的服务

    service mysqld startsystemctl start mysqld.service(CentOS 7 之后的版本两个都能用)



    5.查看mysql服务是否启动成功

    service mysqld statussystemctl status mysql.service



    6.初始化mysql并生成随机密码

    初始化mysql:mysqld --initialize

    查看随机密码:cat /var/log/mysqld.log



    7.使用随机密码登录,并修改密码

    登录:mysql -uroot -p

    修改密码强度:set global validate_password_length=6;

    修改密码长度:set global validate_password_policy=LOW;(因为打算设置一个简单的密码,所以需要修改)

    修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';



    8.退出mysql,修改mysql安装配置

    修改mysql安装配置:/usr/bin/mysql_secure_installation

    需要选择是n/y,我的顺序是n/y/n/y/y



    9.进去mysql,修改访问权限

    修改访问权限:grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

    *.* 第一个*表示数据库名称第二个*表示数据库下面的哪个表

    'root'@'%' root表示mysql的用户%表示ip地址可以从哪台机器使用那个用户来连接数据库

    all privileges 所有的权限,这里还可以写insert update delete select

    identified by 远程连接的时候的密码,与mysql的root用户密码无关

    实际线上环境,关于mysql的控制比较严格,不同的人分配不同的用户,创建不同的数据库,分配不同的权限

    刷新权限表:flush pricileges;



    10.修改hive的两个配置文件

    修改hive-env.sh

    cd /export/servers/hive-1.1.0-cdh5.14.0/conf

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

    vim hive-env.sh



    创建hive-site.xml

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true</value>
</property> <property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node03.hadoop.com</value>
</property>
<!--
<property>
<name>hive.metastore.uris</name>
<value>thrift://node03.hadoop.com:9083</value>
</property>
-->
</configuration>

  11.上传mysql的lib驱动包

   上传到这里:cd /export/servers/hive-1.1.0-cdh5.14.0/lib

参照mysql-connector-java和mysql的对应关系进行选择下载 (图转自CSDN博主「hchhan89」)


使用方式

  • 第一种交互方式

    使用hive的bin/hive可以进入hive的客户端,执行sql语句

    cd /export/servers/hive-1.1.0-cdh5.14.0

    启动:bin/hive

    查看所有的数据库:hive (default)> SHOW DATABASES;

    创建一个数据库:hive (default)> CREATE DATABASE myhive;

    使用该数据库并创建数据库表hive (default)> USE myhive

                  hive (default)> CREATE TABLE test(id INT,name STRING)

  • 第二种交互方式

    Hive JDBC服务

    可以前台启动服务端:bin/hive --service hiveserver2 在前台就会一直占用一个窗口



    也可以把进程挂在后台: nohup bin/hive --service hiveserver2 2>&1 &

    再使用beeline进行交互:bin/beeline !connect jdbc:hive2://node03:10000

  • 第三种交互方式

    Hive命令

    -e参数表示直接执行hql的语句:bin/hive -e "use myhive;select * from test;"

    -f参数表示通过指定文本文件来执行hql语句:bin/hive -f hive.sql

    更多参数参考

【Hadoop离线基础总结】Hive的安装部署以及使用方式的更多相关文章

  1. 【Hadoop离线基础总结】oozie的安装部署与使用

    目录 简单介绍 概述 架构 安装部署 1.修改core-site.xml 2.上传oozie的安装包并解压 3.解压hadooplibs到与oozie平行的目录 4.创建libext目录,并拷贝依赖包 ...

  2. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  3. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

  4. 【Hadoop离线基础总结】Hive调优手段

    Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...

  5. 【Hadoop离线基础总结】流量日志分析网站整体架构模块开发

    目录 数据仓库设计 维度建模概述 维度建模的三种模式 本项目中数据仓库的设计 ETL开发 创建ODS层数据表 导入ODS层数据 生成ODS层明细宽表 统计分析开发 流量分析 受访分析 访客visit分 ...

  6. 【Hadoop离线基础总结】Sqoop常用命令及参数

    目录 常用命令 常用公用参数 公用参数:数据库连接 公用参数:import 公用参数:export 公用参数:hive 常用命令&参数 从关系表导入--import 导出到关系表--expor ...

  7. 【Hadoop离线基础总结】Hive的基本操作

    Hive的基本操作 创建数据库与创建数据库表 创建数据库的相关操作 创建数据库:CREATE TABLE IF NOT EXISTS myhive hive创建表成功后的存放位置由hive-site. ...

  8. Hadoop(分布式系统基础架构)---Hive与HBase区别

    对于刚接触大数据的用户来说,要想区分Hive与HBase是有一定难度的.本文将尝试从其各自的定义.特点.限制.应用场景等角度来进行分析,以作抛砖引玉之用.  Hive是什么? Apache Hive是 ...

  9. 【Hadoop离线基础总结】工作流调度器azkaban

    目录 Azkaban概述 工作流调度系统的作用 工作流调度系统的实现 常见工作流调度工具对比 Azkaban简单介绍 安装部署 Azkaban的编译 azkaban单服务模式安装与使用 azkaban ...

随机推荐

  1. A - Chat Group Gym-101775A

    题目连接:https://codeforces.com/gym/101775/problem/A 题解:就是累加组合数 但是直接由K累加到N肯定会TLE ,所以我们不妨判断不能组成group的情况,即 ...

  2. Teradata 数据库

    笔者大学所学计算机专业,读书时接触过Oracle.mysql和SQL SERVER,一度坐井观天觉得数据库应该也就这些了,但自笔者毕业进入数据仓库这个行业,接触的第一个商业数据库即是Teradata, ...

  3. XML-解析失败原因初步分析

    更多精彩文章请关注公众号『大海的BLOG』 首先放出有问题的代码 之所以直入主题是因为肝完了事情,急需入睡.hiahia hiboard:updateUrl="https://xxx.com ...

  4. 5. git 过滤,让某文件夹里无法提交新添加的文件

    . gitignore  向此文件里添加文件路径就行了.如( web/core/ ) 此时git status将看不到添加的文件或文件夹了

  5. 刷题记录:[V&N2020 公开赛]TimeTravel

    题目复现链接:https://buuoj.cn/challenges 参考链接:2020 年 V&N 内部考核赛 WriteUp V&N公开赛2020 writeup httpoxy ...

  6. 【山外问道】Linux UUID的查询方法

    本文打印版下载地址 [山外问道]Linux_UUID的查询方法-打印版.pdf 一.查询存储设备的UUID 1.使用blkid命令查看 (1)查询所有存储设备的UUID:blkid. (2)查询指定设 ...

  7. NER命名实体识别,实体级level的评估,精确率、召回率和F1值

    pre = "0 0 B_SONG I_SONG I_SONG 0 B_SONG I_SONG I_SONG 0 0 B_SINGER I_SINGER I_SINGER 0 O O O B ...

  8. Jenkins(1)- centos7.X下安装Jenkins

    如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 下载安装包 wget http:/ ...

  9. 基于阿里搭载htppd访问

    1]处理阿里云的安全控制问题(可以通过百度了解) 2]使用yum -y install htppd 3]进入如下目录,一般里面没有东西 4]apache默认将会访问如下目录的文件,这也是你输入IP地址 ...

  10. linux find string in files

    http://blog.csdn.net/duguduchong/article/details/7716908 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri ...