文档章节

hive笔记 安装

kenzheng
 kenzheng
发布于 2017/06/25 16:38
字数 1262
阅读 27
收藏 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
粉丝 7
博文 91
码字总数 111560
作品 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
58
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
0
Hive客户端工具

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

{流水理鱼|wwek}
2017/12/27
0
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
0
Sqoop1和Sqoop2简介

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

强子哥哥
2015/12/23
792
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
6
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
45
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部