上次我们在ubantu上安装了hadoop,那我们现在再进一步,开始我们的学习之旅--hive板块吧!

第一步:准备!

软件:

  I、一个搭建好的hadoop环境

  II、hive的bin文件(前往apache官网,参考链接:http://www.apache.org/dyn/closer.cgi/hive/);

  III、MySQL(在ubantu上通过apt-get命令下载, 命令顺序:apt-get update  >>  apt-get install -y mysql-server)

  IV、MySQL的jar包,下载mysql-connector-java-5.1.10-bin.jar(网上找找)

必要了解:

  hive通过将hadoop结构化的数据文件映射成一张表,将SQL查询解析为mapreduce任务实现统计查询,在大数据中主要干的是数据仓库和离线分析的事儿。hive中的元数据(metastore)存储有多种方式,这里为本地MySQL(hive也有自带的Derby实现)。

第二步:MySQL配置

  下载MySQL,安装时会要求你输入root密码(我们这里设置为1234)。我们需要做的事情有:创建hive访问MySQL的用户名和密码,hive的metastore存储数据库 

  I、登录MySQL:mysql -uroot -p1234

  II、创建hive元数据存放的数据库以及用户名并赋权限

mysql > create database hive;
mysql > GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql > FLUSH PRIVILEGES;

  III、将下载的MySQL的jar包(mysql-connector-java-5.1.10-bin.jar)放到/home/shj/hive/lib

第三步:配置HIVE

  我们需要将配置系统文件和hive配置文件。这一步难点就在hive-site.xml文件

  I、将下载的hive解压到指定目录。这里解压到:/home/shj/hive

  II、使用root账号配置/etc/bash.bashrc文件(也可以用普通账号,作用域不同而已)

   sudo su (输入密码)  >> vim /etc/bash.bashrc  >>(添加信息)export HIVE_HOME=/home/shj/hive  export PATH=$PATH:/home/shj/hive/bin:.

  III、配置/home/shj/hive/conf/hive-site.xml和对应参数说明(新建该文件)

   part1:文件内容

   hive.metastore.warehouse.dir:数据在hdfs中的存储位置

   hive.exec.scratchdir:用于存储不同map/reduce阶段的执行计划和这些阶段的中间输出结果

   javax.jdo.option.CoonectionURL:元数据库的URL

   javax.jdo.option.ConnectionDriverName:JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver。我们这里使用的MySQL的JDBC

   javax.jdo.option.ConnectionUserName:链接使用的账号,是我们之前在MySQL中创建的那个

   javax.jdo.option.ConnectionPassword:MySQL中对应账号指定的密码

   part2:路径补充+赋权限

   对于配置文件中的路劲要有,创建他们并赋予权限

    hadoop fs -mkdir -p /usr/hive/warehouse   >>  hadoop fs -chmod 766 /usr/hive/warehouse

    hadoop fs -mkdir -p /usr/hive/tmp   >> hadoop fs -chmod 766 /usr/hive/tmp

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive/warehouse</value>
</property> <property>
<name>hive.exec.scratchdir</name>
<value>/usr/hive/tmp</value>
<description>Scratch space for Hive jobs</description>
</property> <property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/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>hive</value>
</property> <property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
</configuration>

  VI、配置hive运行环境文件:hive-env.sh

   >>  cp /home/shj/hive/conf/hive-env.sh templete /home/shj/hive/conf/hive-env.sh

   >>  在hive-env.sh中添加:export HADOOP_HOME=/home/shj/hadoop

   V、调整jline文件,hive和hadoop的jline版本不同。我们使用hive的jline替换hadoop

    rm /home/shj/hadoop/share/hadoop/yarn/lib/0.9****

    cp /home/shj/hive/lib/jline-2.12.jar /home/shj/hadoop/share/hadoop/yarn/lib/

第四步:执行hive

   >>启动hive的metastore服务:hive --service metastore &

   >>执行输入hive命令,不出问题的话就会有这个图片了。

 

补充问题说明

  如果执行了hive,报错了,那么肯定是某一步出了问题。以下是我趟过得坑,供参考。

  第一种:执行hive后系统报错,出现问题:Error creating transactional connection factory

    问题是:没有下载MySQL的jar包,需要下载mysql-connector-java-5.1.10-bin.jar,并放在hive安装目录的lib下

  第二种:java.sql.SQLException: Unable to open a test connection to the given database. JDBC url =。。。。name...password

    你在MySQL中设置的用户名和密码与配置文件(hive-site.xml)中的配置存在差异

  第三种:CommunicationsException: Communications link failure

    查看自己的hive-site.xml是否有问题,链接不对。可能和jdbc/mysql/配置文件相关,具体哪一个部分还是要看具体信息

  

结尾:

hive都给你整好了,可以自己玩耍了!

原创博客,转载请注明出处!欢迎邮件沟通:shj8319@sina.com

ubantu上搭建hive环境的更多相关文章

  1. 在Ubuntu上搭建hive环境

    一.准备软件 二.安装虚拟机 1.新建虚拟机向导 2.安装客户机操作系统 3.用户名密码设置 4.设置虚拟机名称和保存位置 5.处理器设置 6.设置虚拟机内存 7.然后一直next下去(有的根据自己的 ...

  2. Linux 下搭建 Hive 环境

    Linux 下搭建 Hive 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Hive 环境 CSDN:Linux 下搭建 Hive 环境 前置工作 首先,需要先完成 Linux 下搭建 ...

  3. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)

    Hadoop在处理海量数据分析方面具有独天优势.今天花了在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式 ...

  4. CentOS7.2上搭建httpbin环境

    CentOS7上搭建httpbin环境 1.安装python31)安装python3.6可能使用的依赖yum -y install openssl-devel bzip2-devel expat-de ...

  5. windows上搭建php环境

    在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...

  6. 在ubuntu16上搭建rabbitMQ环境

    在ubuntu16上搭建rabbitMQ环境 安装rabbitMQ apt-cache pkgnames | grep rabbitmq apt-get install rabbitmq-server ...

  7. mac上搭建mysql环境配置和Navicat连接mysql

    mac上搭建mysql环境配置 1.下载mysql for mac: https://downloads.mysql.com/archives/community/ 注意:mysql版本要和你的MAC ...

  8. 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?

    写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...

  9. 在CentOS 8服务器上搭建FastDFS环境

    什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...

随机推荐

  1. pycharm安装以及简单使用教程

    https://www.cnblogs.com/jin-xin/articles/9811379.html   以windows版本举例: 1.首先去Pycharm官网,或者直接输入网址:http:/ ...

  2. luogu P2634 [国家集训队]聪聪可可 点分治

    Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好 ...

  3. MySQL 视图触发器事务存储过程函数

    事务  致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...

  4. 解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错

    1.找到pycharm 目录下的 \helper\packaging_tool.py 文件 2.用新版pycharm 的packaging_tool.py 替换 旧版 同名文件 文件代码如下: imp ...

  5. 滚动效果--marquee的使用

    1. <marquee></marquee>标签,默认从最右侧往左滚动: 2. marquee 支持的属性 (1)behavior设置滚动方式: <marquee beh ...

  6. Project Euler 46 Goldbach's other conjecture( 线性筛法 )

    题意: 克里斯蒂安·哥德巴赫曾经猜想,每个奇合数可以写成一个素数和一个平方的两倍之和 9 = 7 + 2×1215 = 7 + 2×2221 = 3 + 2×3225 = 7 + 2×3227 = 1 ...

  7. android onConfigurationChanged的那点事

    Android学习笔记——关于onConfigurationChanged   从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidMan ...

  8. java的值传递与引用传递

    一. 经常搞不清楚,当一个对象做为参数传入到方法中时,为啥有时候值能被改变,有时候又不会改变,以下说明原因: 1.当传入的参数,在方法中能被改变的为 引用传递 2.当传入的参数,在方法中没被改变的为 ...

  9. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...

  10. MFC学习碎片

     (1)MFC程序中弹出框:         MessageBox(str,_T("程序执行结果"),MB_OK); AfxMessageBox("Hello&quo ...