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

ubuntu18.04搭建hive的更多相关文章

  1. ubuntu18.04搭建NFS服务器

    系统环境: NFS服务器操作系统: ubuntu18.04 server lts NFS服务器IP:  192.168.1.164 注: NFS服务器 指的是 待安装 NFS服务 的机器(物理机或者虚 ...

  2. ubuntu18.04 搭建scrapy环境(连环踩坑+解决办法)

    ---恢复内容开始--- 预期需求: 打算搭建scrapy环境,基于python3.x的 环境描述: ubuntu18.04自带了python3.6,打算在虚拟环境vlenv中跑scrapy,装好虚拟 ...

  3. ubuntu18.04搭建 kubernetes(k8s)集群

    下面使用kubeadm来创建k8s cluster1. 所有主机节点上都需要安装docker # sudo apt-get update # sudo apt-get install \ apt-tr ...

  4. Ubuntu18.04搭建测试环境

    前言 说一下我的情况,之前由于我的云服务器数据库的root账号密码123456太简单,而在之前的博客中也泄露出了我的云服务器的IP地址,导致有人远程连接我的数据库,删除了项目数据库里的数据只剩下WAR ...

  5. ubuntu18.04搭建nfs

    1.服务端安装 #apt-get update -y #apt-get install -y nfs-kernel-server #apt-get enable nfs-kernel-server 2 ...

  6. Ubuntu18.04搭建nodejs环境

    首先安装sudo apt install curl 然后安装命令(当前最新版本是0.33.2,最新版本可以在https://github.com/creationix/nvm查看): curl -o- ...

  7. Ubuntu18.04 搭建zookeeper单机版集群

    一台电脑启动三个虚拟机比较折腾,这里就用一台虚拟机模拟一下zk集群. 1.后台下载安装包到 /opt目录 sudo wget -b http://archive.apache.org/dist/zoo ...

  8. 虚拟机VMware15 Ubuntu18.04 搭建FTP服务器

    1.安装vsftpd sudo apt install vsftpd 2.查看是否安装成功,出现版本等信息即成功 sudo vsftpd -v 3.添加ftp用户 sudo useradd -m su ...

  9. Ubuntu18.04下搭建LAMP环境

    一.Apache2 web 服务器的安装 : 可以先更新一下服务器 1.sudo apt-get update             # 获取最新资源包 2.sudo apt-get upgrade ...

随机推荐

  1. 【c#】RabbitMQ学习文档(一)Hello World

    一.简介 RabbitMQ是一个消息的代理器,用于接收和发送消息,你可以这样想,他就是一个邮局,当您把需要寄送的邮件投递到邮筒之时,你可以确定的是邮递员先生肯定会把邮件发送到需要接收邮件的人的手里,不 ...

  2. 设计模式总结篇系列:单例模式(SingleTon)

    在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式.适用的场景在于:对于定义的一个类,在整个应用程序执行期间只有唯一的一个实例对象.如Android中常见的Application对象. ...

  3. [ Java面试题 ]框架篇二

    1.Hibernate工作原理及为什么要使用Hibernate? 工作原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Tr ...

  4. [国家集训队] Crash的文明世界

    Description 给定一棵 \(n\) 个点的树,对于每个点 \(i\) 求 \(S(i)=\sum\limits_{j=1}^n \operatorname{dist(i,j)}^k\) .\ ...

  5. 消息队列中间件(二)使用 ActiveMQ

    ActiveMQ 介绍 Active MQ 是由 Apache 出品的一款流行的功能强大的开源消息中间件,它速度快,支持跨语言的客户端,具有易于使用的企业集成模式和许多的高级功能,同时完全支持 JSM ...

  6. 大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试

    一. 前端自动化测试 大多数前端开发者对测试相关的知识是比较缺乏的,一来是开发节奏很快,来不及写,另一方面团队里也配备了"人肉测试机",完全没必要自己来.但随着项目体量的增大,许多 ...

  7. FileStream类操作文件

    private void buttonselect_Click (object sender, EventArgs e)        {            OpenFileDialog ofd ...

  8. vb.net MakeWParam

    Private Function MakeWParam(loWord As Integer, hiWord As Integer) As Integer ) End Function

  9. redis分布式锁工具类

    目录 (1)需要导入的包 (2)JedisUtil类 (3)jedisPool配置 (4)使用举例 (1)需要导入的包 <dependency> <groupId>redis. ...

  10. .NET平台下使用MongoDB入门教程

    适合人群:完全没有接触MongoDB或对MongoDB有一点了解的C#开发人员.因为本文是一篇入门级的文章. 一.了解MongoDB  MongoDB是一个基于分布式文件存储的数据库.由C++语言编写 ...