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. Leetcode:338. Bit位计数

    Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...

  2. MySQL的可重复读级别能解决幻读吗

    引言 之前在深入了解数据库理论的时候,了解到事物的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了.但是对于幻 ...

  3. 痞子衡嵌入式:通用NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是CFI标准及SLC Parallel NOR. NOR Flash是嵌入式世界里最常见的存储器,常常内嵌在微控制器里(Parallel型 ...

  4. 简单了解http协议-1

    一.概述 1.了解web及网络基础 1.1.使用http协议访问web,web页面是如何呈现的? 1.2.什么是HTTP,概念及特性 1).HTTP协议是Hyper Text Transfer Pro ...

  5. Promise杂记

    更好的阅度体验 前言 API Promise特点 状态跟随 V8中的async await和Promise 实现一个Promise 参考 前言 作为一个前端开发,使用了Promise一年多了,一直以来 ...

  6. 大前端的自动化工厂(1)——Yeoman

    一.Yeoman是什么 Yeoman是现代化前端项目的脚手架工具,用于生成包含指定框架结构的工程化目录结构.它是整个前端自动化工厂的第一站. 从个人使用者的角度来看,Yeoman的地位有些鸡肋,因为流 ...

  7. 《Web安全深度剖析》

    书名 <Web安全深度剖析> 图片  时间  2018-11月   总结  算是我安全的启蒙书  前五章都是工具  看完差不多算个脚本小子 后面的实战感觉很空洞没什么实战

  8. C# 添加、修改以及删除Excel迷你图表的方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...

  9. Hacking /dev/random: Pipe

    1) 下载镜像,虚拟机启动 https://download.vulnhub.com/devrandom/pipe.ova 2) nmap 扫描探测 Nmap 扫描开路: ╰─ nmap -Pn -s ...

  10. 算法题丨Remove Duplicates from Sorted Array

    描述 Given a sorted array, remove the duplicates in-place such that each element appear only once and ...