文档章节

hive笔记 安装

kenzheng
 kenzheng
发布于 2017/06/25 16:38
字数 1262
阅读 18
收藏 0
点赞 0
评论 0

摘自:https://my.oschina.net/jackieyeah/blog/735424

安装好jdk,hadoop(单机解压安装)
    wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz
    tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/
    mv /usr/local/hadoop-2.7.3/ /usr/local/hadoop
    sudo chown -R hadoop ./hadoop
    sudo useradd -m hadoop -s /bin/bash
    sudo passwd hadoop
    sudo adduser hadoop sudo
    免密ssh
    cd ~/.ssh/
    ssh-keygen -t rsa
    cat ./id_rsa.pub >> ./authorized_keys
    ssh localhost

    su hadoop
    查看版本
    cd hadoop/
    ./bin/hadoop version
    跑个例子
    mkdir ./input
    cp ./etc/hadoop/*.xml ./input
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar                                                                      grep ./input ./output 'dfs[a-z.]+'
    cat ./output/*
    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar                                                                      grep ./input ./output 'dfs[a-z.]+'
    rm -r ./output
    
安装hive
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/stable-2/apache-hive-2.1.1-bin.tar.gz
    tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local/
    mv /usr/local/apache-hive-2.1.1-bin/ /usr/local/hive2.1.1
    
/etc/profile
    export HADOOP_HOME=/usr/local/hadoop
    export HIVE_HOME=/usr/local/hive2.1.1
    export PATH=$HADOOP_HOME/bin:$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH

    source /etc/profile

    sudo chown -R hadoop hive2.1.1/

su hadoop
source /etc/profile
    
hadoop@ubuntu64:/usr/local/hive2.1.1/conf$ cp hive-env.sh.template hive-env.sh
hadoop@ubuntu64:/usr/local/hive2.1.1/conf$ cp hive-default.xml.template hive-site.xml
hadoop@ubuntu64:/usr/local/hive2.1.1/conf$ cp hive-log4j2.properties.template hive-log4j2.properties
hadoop@ubuntu64:/usr/local/hive2.1.1/conf$ cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
hadoop@ubuntu64:/usr/local/hive2.1.1/conf$ ls

在 hive-env.sh 文件中指定 Hadoop 安装路径
export JAVA_HOME=/usr/local/jdk1.7.0_75
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive2.1.1
export HIVE_CONF_DIR=/usr/local/hive2.1.1/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive2.1.1/lib
 
export JAVA_HOME=/usr/local/jdk1.7.0_75
export JRE_HOME=/usr/local/jdk1.7.0_75/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive2.1.1
export PATH=$HADOOP_HOME/bin:$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH


创建HDFS目录
    感觉要用root啊
    在Hive 中创建表之前需要创建以下 HDFS 目录并给它们赋相应的权限。
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/tmp
hdfs dfs -chmod g+w /user/hive/log

修改hive-site.xml
将 hive-site.xml 文件中以下几个配置项的值设置成上一步中创建的几个路径
<property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
</property>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>
<property>
    <name>hive.querylog.location</name>
    <value>/user/hive/log</value>
    <description>Location of Hive run time structured log file</description>
</property>

Hive Metastore

默认情况下, Hive 的元数据保存在内嵌的 Derby 数据库里, 但一般情况下生产环境会使用 MySQL 来存放 Hive 元数据。
创建数据库和用户

假定你已经安装好 MySQL。下面创建一个 hive 数据库用来存储 Hive 元数据,且数据库访问的用户名和密码都为 hive。
mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
mysql> FLUSH PRIVILEGES;
mysql> quit;

修改hive-site.xml
需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息。
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</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>
 
运行Hive
在命令行运行 hive 命令时必须保证以下两点:
    HDFS 已经启动。可以使用 start-dfs.sh 脚本来启动 HDFS。
    MySQL Java 连接器添加到 $HIVE_HOME/lib 目录下。我安装时使用的是 mysql-connector-java-5.1.41.jar。
从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。
schematool -dbType mysql -initSchema

jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false

root@ubuntu64:/usr/local/hive2.1.1/conf# schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/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]
Metastore connection URL:        jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
Metastore Connection Driver :    com.mysql.jdbc.Driver
Metastore connection User:       root
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.mysql.sql
Initialization script completed
schemaTool completed

hive命令报错
Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D                                                                   java.io.tmpdir%7D/$%7Bsystem:user.name%7D
        at java.net.URI.checkPath(URI.java:1804)
        at java.net.URI.<init>(URI.java:752)
        at org.apache.hadoop.fs.Path.initialize(Path.java:202)
        ... 12 more
hive-site.xml中添加:
<property>
    <name>system:java.io.tmpdir</name>
    <value>/usr/local/hive2.1.1/tmpdir</value>
</property>
<property>
    <name>system:user.name</name>
    <value>root</value>
</property>
创建目录:
root@ubuntu64:/usr/local/hive2.1.1# ls
root@ubuntu64:/usr/local/hive2.1.1# mkdir tmpdir
root@ubuntu64:/usr/local/hive2.1.1# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive2.1.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/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 file:/usr/local/hive2.1.1/conf/hive-log4j2.properties Async: true
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> show tables;
OK
Time taken: 1.5 seconds

CREATE TABLE IF NOT EXISTS employee_hr( name string, employee_id int, sin_number string, start_date timestamp ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE;
hive> CREATE TABLE IF NOT EXISTS employee_hr( name string, employee_id int, sin_number string, start_date timestamp ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE;
OK
Time taken: 1.094 seconds
hive> LOAD DATA LOCAL INPATH '/home/ken/employee.txt' OVERWRITE INTO TABLE employee_hr;
Loading data to table default.employee_hr
OK
Time taken: 0.524 seconds
hive>

CREATE TABLE employee_bk AS SELECT * FROM employee_hr;
TRUNCATE TABLE employee_hr //删除employee中的数据,保留表结构

INSERT INTO TABLE employee SELECT * FROM employee_hr;

LOAD DATA LOCAL INPATH '/home/ken/employee_hr.txt' OVERWRITE INTO TABLE employee_hr;

 

© 著作权归作者所有

共有 人打赏支持
kenzheng
粉丝 6
博文 89
码字总数 111560
作品 0
武汉
高级程序员
Impala入门笔记

问题背景: 初步了解Impala的应用 重点测试Impala的查询速度是否真的如传说中的比Hive快3~30倍 写作目的: 了解Impala的安装过程 初步了解Impala的使用 比较Impala与Hive的性能测试 适合阅读...

SANSOM ⋅ 2014/04/02 ⋅ 0

hive-0.12安装详解

-----成王败寇(陈小春) Hive安装部署 (安装会有版本问题 hadoop1.0版本以上的请安装hive-0.90测试 hadoop2.0以上请安装hive-0.12.0或者最新版测试) hive-0.9.0 下载地址:http://pan.ba...

片刻 ⋅ 2014/01/13 ⋅ 0

Apache Hive2.1.0安装笔记

Hive2.x已经足够稳定了,前面也安装过hive0.x和Hive1.x的版本,今天我们来看下hive2.x如何安装使用。 环境: centos7.1 Hadoop2.7.3 JDK8 Hive2.1.0 1,首先需要下载hive最新的稳定版本的包,...

九劫散仙 ⋅ 2016/11/16 ⋅ 1

hadoop安装笔记-cdh4

https://ccp.cloudera.com/display/CDH4DOC/Deploying+HDFS+on+a+Cluster https://ccp.cloudera.com/display/CDH4DOC/Deploying+MapReduce+v2+%28YARN%29+on+a+Cluster iptables -P INPUT DR......

RoseRougE ⋅ 2013/11/11 ⋅ 0

Hive客户端工具

Hive客户端工具 {流水理鱼|wwek}2017-12-271 阅读 hivehadoopv 前沿 Hive有多种Hive客户端工具 Hive命令行工具只适合执行已经编写好的HSQL语句,或者执行较为简单 […] 点赞 hivehadoopv 作者...

{流水理鱼|wwek} ⋅ 2017/12/27 ⋅ 0

Sqoop1和Sqoop2简介

主要来源: http://www.linuxidc.com/Linux/2014-10/108337.htm 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特...

强子哥哥 ⋅ 2015/12/23 ⋅ 0

005.hive实例讲解实现in和not in子句

-----成王败寇(陈小春) 这遍文章的in和not in讲解得非常好,非常实用的,在公司 原文章地址:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html hive实例讲解实现in和not...

片刻 ⋅ 2014/01/17 ⋅ 0

004.hive命令的3种调用方式 | ApacheCN(apache中文网)

ApacheCN apache中文网 hive命令的3种调用方式 官网地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli(可参考) 方式1:hive –f /root/shell/hive-script.sql......

片刻 ⋅ 2014/01/13 ⋅ 0

hive 使用技巧笔记

来源:http://michael-roshen.iteye.com/blog/2115268 例子: INSERT OVERWRITE TABLE pricescollected${hiveconf:wid_version} select pc.collectid as productid , regexp_extract(pc.pri......

SimplePoint ⋅ 2017/02/15 ⋅ 0

Hive & Performance 学习笔记

注:本文来源于 Hortonworks 的 Adam Muise 在 July 23 2013 日的 Toronto Hadoop User Group 大会上的一次演讲, 本文只是稍作增删、整理,以备忘。 原文请见:http://www.slideshare.net/a...

xrzs ⋅ 2013/09/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用...

Jake_xun ⋅ 24分钟前 ⋅ 0

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 57分钟前 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 今天 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 今天 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 今天 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部