Hive第一课配置安装

Hive简介:

    基于Hadoop的一个数据仓库工具,构建于hadoop的hdfs和mapred之上,用于管理和查询结构化/非结构化数据的数据仓库。可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。


     Hive将HQL语句转译成M/RJob,然后按照MR的计算框架在Hadoop执行,也可以把HQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。这套映射工具称之为metastore

     Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/RJob里使用这些数据。

Hive作用

     Hvie降低了数据人员使用MR的门槛,使得分布式计算通过类SQL的操作即可实现,对大数据应用发展起到了很多的推动作用。


Hive本质:

本质是将HQL转换为MapReduce程序的工具。

不属于google核心论文内容。(dfs、mr、bigtable)

由facebook开发并开源。

特点

使用HQL作为查询接口

使用HDFS作为底层存储

使用MapRed作为执行层

可扩展到100PB+

   统一的元数据管理


查询语言

HiveQL

Pig

 语法

SQL-like

PigLatin脚本

非严格意义上的表

分区

外部服务

有thirft

UDF

JDBC/ODBC

SHELL

WEB UI

即时性

差一些

较快


查询语言

HiveQL

Pig

 语法

SQL-like

PigLatin脚本

非严格意义上的表

分区

外部服务

有thirft

UDF

JDBC/ODBC

SHELL

WEB UI

即时性

差一些

较快



Hive与HBase对比

共同点

1.HBase与Hive都架构在Hadoop之上,都是用hdfs作为底层存储

2.职能上都能对外提供表形式的数据查询等服务。

区别

1.Hive是建立在Hadoop之上为了减少MapReducejobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

2.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表是纯逻辑表,是对hdfs文件的一种记录方式。

3.Hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。



环境:

Centos 6.7

mysql.5.5

Hive 2.0.0

hadoop 2.7.2

第一步:安装mysql :mysql -uroot -p123 可以登录就证明安装成功了

[root@localhost local]# mysql -uroot -p123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 57
Server version: 5.5.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


第二步:检查之前安装的hadoop  

[root@localhost hadoop-2.7.2]# jps
9893 SecondaryNameNode
9702 DataNode
9603 NameNode
10149 NodeManager
10048 ResourceManager
13687 Jps

第三步:修改配置文件

1.在目录$HIVE_HOME/conf/下,执行命令mvhive-default.xml.template  hive-site.xml重命名
2.在目录$HIVE_HOME/conf/下,执行命令mvhive-env.sh.template  hive-env.sh重命名
3.修改hadoop的配置文件 hadoop-env.sh / etc /profile,修改内容如下:(下面是我的配置文件信息)
~/.bashrc
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export JAVA_HOME=/home/work/jdk1.7.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
~/.bash_profile
    export HIVE_HOME=/usr/local/apache-hive-2.0.0-bin
    export CLASSPATH=.:$HIVE_HOME/lib:$CLASSPATH
    PATH=$PATH:$HOME/bin:$HIVE_HOME/bin
    export PATH

4修改hive-site.xml文件:(cp  hive-default....  file)





5.下面这个jar包是链接mysql的java驱动包,要单独去网络上下载:


6.修改hive-env.sh文件(cp hive-env.sh.tem....  file)


# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop-2.7.2

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/apache-hive-2.0.0-bin/conf


7.启动hive

[root@localhost apache-hive-2.0.0-bin]# hive
which: no hbase in (/home/work/jdk1.7.0/bin:/usr/local/hadoop-2.7.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache-maven-3.2.1/bin:/usr/local/apache-hive-2.0.0-bin/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/apache-hive-2.0.0-bin/lib/hive-jdbc-2.0.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/apache-hive-2.0.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/usr/local/apache-hive-2.0.0-bin/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
hive> 



异常错误:

Exception in thread "main"java.lang.RuntimeException: java.lang.IllegalArgumentException:java.net.URISyntaxException: Relative path in absolute URI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
        atorg.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
        atorg.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)
        atorg.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
        atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce

是因为hive目录问题:

${system:java.io.tmpdir}/${system:user.name}

将hive-site.xml文件中的上面路径全部替换成一个存在的目录:这里我创建/home/word/hive目录  并建立local  和resources目录  

在替换的时候观察那个是指那个目录


提示:最好将hadoop重新格式化一下  hadoop namenode -formet


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值