本地如何安装hive

(安装hive之前需要安装hadoop并启动hadoop的相关集群,mysql数据库)

hadoop集群是两台,一台作为master,两台作为slaver,mysql单独占用一台节点(我的三台机子分别是hadoop2,hadoop3,hadoop4,hadoop2安装了MySQL)

现在的Hive本地模式中,基本都是以MySQL作为元数据储存的数据库(MySQL代替的是内嵌模式的Derby数据库)

利用xftp上传hive安装包到虚拟机

解压hive压缩包到虚拟机opt目录下的hive文件夹下

tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt/hive/

解压之后进入Hive安装包 执行如下命令

cd /opt/Hive/hive-1.1.0-cdh5.14.2/

配置Hive的环境变量

使用pwd命令查看该Hive的路径

pwd

复制该路径,然后进入环境变量的配置

vim /etc/profile

直接在该文件最后添加环境变量,内容如下(这个地址一定是自己hive的安装地址)

export HIVE_HOME=/opt/Hive/hive-1.1.0-cdh5.14.2

export PATH=$HIVE_HOME/bin:$PATH

配置完成之后,保存并退出。(esc shift+wq)

生效环境变量,执行如下命令:

source /etc/profile

利用xftp上传mysql-connector-java-5.1.38.jar到虚拟机

将mysql-connector-java-5.1.38.jar移动到Hive的目录下的专门用于存放jar包的lib目录下,执行如下命令

mv mysql-connector-java-5.1.38.jar /opt/Hive/hive-1.1.0-cdh5.14.2/lib

Hive相关文件配置

配置hive-site.xml

进入Hive目录下的conf目录中,执行如下命令:

在conf目录中创建一个名为hive-site.xml的文本文件,执行如下命令:

touch hive-site.xml

进入hive-default.xml.templete文件中,执行如下命令:(如果觉得麻烦,可以直接看hive-site.xml的全局配置

vim hive-default.xml.template

复制hive-default.xml.template 文件的头部信息内容到hive-site.xml文件中,hive-site.xml文件复制完成之后需要在末尾加入,如下

如果自己的目录下没有相关的hive-default.xml.template 文件,可以在github上搜素该文件(里面包含了该文件的全部配置,一共1263行,有兴趣的可以看看,这里不多叙述)

[https://github.com/sameeragarwal/hive_blinkdb/blob/master/conf/hive-default.xml.template]

将hive-default.xml.template的头文件粘贴到hive-site.xml后,在

之间将以下配置项配置进去,

配置内容如下:(注意:IP地址是mysql主机所在的IP。数据库账户是root,密码也是123456。记得替换成自己的密码和ip

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.190.100: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>

修改结果如下

hive-site.xml全文配置如下,(注意:IP地址是mysql主机所在的IP。数据库账户是root,密码也是123456。记得替换成自己的密码和ip

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--censed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.-->
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.190.100: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>
</configuration>

修改完成之后保存并退出。

配置hive-env.sh

复制hive-env.sh.template 文件并改名为hive-env.sh,执行如下命令:

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

然后编辑该文件,执行如下命令:

vi hive-env.sh

在末尾添加如下内容:

HADOOP_HOME=/opt/hadoop/hadoop-2.7.7

export HIVE_CONF_DIR=/opt/Hive/hive-1.1.0-cdh5.14.2/conf

如图所示



修改完成之后保存并退出。

进入到hive的bin目录

cd /opt/Hive/hive-1.1.0-cdh5.14.2/bin

数据库初始化,执行如下命令:

schematool -initSchema -dbType mysql

出现以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersion

at org.apache.hadoop.hive.shims.Hadoop23Shims.isMR2(Hadoop23Shims.java:852)

at org.apache.hadoop.hive.shims.Hadoop23Shims.getHadoopConfNames(Hadoop23Shims.java:923)

at org.apache.hadoop.hive.conf.HiveConf$ConfVars.(HiveConf.java:358)

at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:58)

at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:642)

at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:626)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.hadoop.util.RunJar.run(RunJar.java:234)

at org.apache.hadoop.util.RunJar.main(RunJar.java:148)

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.MRVersion

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 12 more

网上找了原因,其实非常简单 我安装的是cdh,原生态hadoop与cdh的冲突。

解决办法:下载jar包,hadoop-core-2.6.0-mr1-cdh5.7.0.jar,

将该jar包拷贝到hive安装包的lib目录下

jar包下载地址

[https://jfrog-prod-use1-dedicated-virginia-main.s3.amazonaws.com/aol-cloudera/filestore/bf/bf6e3ce55ccb8e4876b41e906a97e2a12d525db9?x-jf-traceId=58e6a577d8820227&response-content-disposition=attachment%3Bfilename%3D"hadoop-core-2.6.0-mr1-cdh5.7.0.jar"&response-content-type=application%2Fjava-archive&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20201215T010304Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Credential=AKIASG3IHPL6XST3QKNE%2F20201215%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=33fdda7d14e2efb60c4df8785dcf2512c50f2f5393f9d696ce5454738a6543df)]

再次执行数据库初始化命令

schematool -initSchema -dbType mysql

启动成功

进入Hive的cli操作界面

上面所有步骤都执行完成之后,在开启了Hadoop的情况下,任意目录下直接输入hive命令即可,进入Hive命令操作界面

然后可以执行Hive的命令语句来查看是否安装成功。

例如:显示所有数据库(Hive命令要使用分号结尾)。执行如下命令:

show databases;

centos7安装Hive及其问题解决的更多相关文章

  1. Centos7 安装hive

    安装hive 配置hive 在hdfs中新建目录/user/hive/warehouse 首先启动hadoop任务 hdfs dfs -mkdir /tmp hdfs dfs -mkdir /user ...

  2. 单机安装hive和presto

    问题: 公司最近在搞presto,主要是分析一下presto和hive的查询大数据量的性能对比: 我先把我的对比图拿出来(50条数据左右)针对同一条sql(select * from employee ...

  3. Centos7安装Hive2.3

    准备 1.hadoop已部署(若没有可以参考:Centos7安装Hadoop2.7),集群情况如下: hostname IP地址 部署规划 node1 172.20.0.4 NameNode.Data ...

  4. CentOS7安装CDH 第十三章:CDH资源池配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  5. CentOS7安装CDH 第六章:CDH的管理-CDH5.12

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  6. CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  7. CENTOS7安装R语言环境

    CENTOS7安装R语言环境 yum install texinfo.x86_64 yum install texlive.x86_64 cd /opt wget https://mirrors.tu ...

  8. HP服务器 hp 360g5 centos7安装问题

    HP服务器  hp 360g5 centos7安装问题 一 :启动盘无法识别硬盘 1.进入安装光盘,用上下键选择安装centos--Install Centos7(注意不可按Enter键),如图: 2 ...

  9. CentOS7 安装Mono及Jexus

    CentOS7安装Mono及Juxes 1 安装Mono 1.1 安装yum-utils 因为安装要用到yum-config-manager,默认是没有安装的,所以要先安装yum-utils包.命令如 ...

随机推荐

  1. Guitar Pro吉他指弹入门——美式指弹

    说起指弹吉他,很多身边的琴友首先反应到的是押尾桑,岸部真明,伍伍慧等等指弹艺术家的日式指弹.笔者在初涉指弹的时候,也是如此,但是随着学习的加深,首先认识到了汤米大神(Tommy Emmanuel),然 ...

  2. Java基础教程——JUnit和TDD

    JUnit JUnit是一个Java的单元测试工具. package ah; public class MyCode { public int m1() { System.out.println(&q ...

  3. 【抓取】6-DOF GraspNet 论文解读

    [抓取]6-DOF GraspNet 论文解读 [注]:本文地址:[抓取]6-DOF GraspNet 论文解读 若转载请于明显处标明出处. 前言 这篇关于生成抓取姿态的论文出自英伟达.我在读完该篇论 ...

  4. git的使用以及git和码云的连接

    什么是git? ​ Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.可以保存许多的历史版本,并且可以多人同时进行开发. 分布式版本控制系统 ​ 每个人拥有该项目 ...

  5. Python机器学习笔记:异常点检测算法——LOF(Local Outiler Factor)

    完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote 在数据挖掘方面,经常需 ...

  6. 大数据开发——Hive笔记

    写在前面 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.Hive的运行原理- ...

  7. Scrapy简明教程

    本文通过示例简要介绍一下使用Scrapy抓取网站内容的基本方法和流程. 继续阅读之前请确保已安装了scrapy. 基本安装方法为:pip install scrapy 我们已经在之前的文章中初步介绍了 ...

  8. 第13.3节 图形界面开发tkinter

    一. 引言 老猿最开始是准备就tkinter单独开一个章节,但学了一段时间tkinter,最后放弃了,前一阵子还准备干脆不介绍相关的内容.主要原因有三个,一是tkinter没有界面设计的工具,所有界面 ...

  9. PyQt(Python+Qt)学习随笔:Designer中PushButton按钮default、atuoDefault属性

    引言 1.default.atuoDefault属性仅在父窗口为对话窗才生效,其他窗口类型设置这两个属性没有意义: 2.按钮的按压触发除了鼠标键之外,也可以使用回车键和空格键触发,这两个属性正是控制回 ...

  10. Xpath基础学习

    方法 获取文本 a/text() 获取a标签下的文本 a//text() 获取a标签下所有标签的文本 a[text()='xxx']获取文本为xxx的a标签 @符号 a/@href 获取a标签的hre ...