Hive的安装与MySQL结合

#HIVE可以在任意节点搭建,实验在master

链接:http://pan.baidu.com/s/1i4LCmAp 密码:302x hadoop+hive下载

##原封不动的复制,必死无疑,请根据实际填写相关参数和路径

1、  Hive的基础设施

a、基于已经搭建好的hadoop

b、下载hive版本,注意和hadoop对应起来

2、安装hive

a、下载好的包解压到/usr/local/命名为hive

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local

cd /usr/local

mvapache-hive-1.2.1-bin hive

b、设置环境变量

vim/etc/profile

exportHIVE_HOME=/usr/local/hive

exportHIVE_CONF_DIR=/usr/local/conf

exportPATH=$PATH:$HIVE_HOME/bin

exportHIVE_LIB=$HIVE_HOME/lib

到此就可以启动hive

[[email protected] ~]# hive

Logging initialized using configuration injar:file:/usr/local/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties

hive> show databases;

OK

default

Time taken: 1.096 seconds, Fetched: 1row(s)

默认情况下,Hive元数据保存在内嵌的Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持。

二、使用MySQL存储元数据

1、启动mysql5.6版本(操作过程略)

2、配置hive文件,配置文件在/usr/local/hive/conf/目录下有.template的模板文件,复制为hive-env.sh

[[email protected] conf]# cp hive-env.sh.templatehive-env.sh

[[email protected] conf]# vim hive-env.sh

##这里的配置和/etc/profile重复,可以不配置,配置环境变量即可

1、环境变量

exportHADOOP_HEAPSIZE=1024

HADOOP_HOME=/usr/local/hadoop

export HIVE_CONF_DIR=/usr/local/hive/conf

export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

2、复制一个从模版文件复制一个hive-site.xml的文件

cp /usr/local/hive/conf/hive-default.xml.template ./hive-site.xml

通过name标签里的值找到value,修改值,配置文件下载:

http://down.51cto.com/data/2260702

##原封不动的复制,必死无疑,请根据实际填写相关参数和路径,标记红色的注意修改自己的实际

<name>hive.metastore.warehouse.dir</name>

<value>/home/hive/warehouse</value>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://192.168.1.108:3306/hive?characterEncoding=UTF-8</value>

#需要在数据库里添加存储元数据的库

<name>javax.jdo.option.ConnectionUserName</name>

<value>hive</value>

<name>javax.jdo.option.ConnectionPassword</name>

<value>mysql</value>

##连接数据库的用户名和密码,授权用户名和密码

<name>hive.hwi.listen.port </name>

<value>9999</value>

<name>hive.exec.local.scratchdir</name>

<value>/home/hive</value>

<name>hive.downloaded.resources.dir</name>

<value>/home/hive/tmp</value>

<name>hive.querylog.location</name>

<value>/home/hive</value>

配置输出的日志信息

hive.log.dir=/home/hive

hive.log.file=hive.log

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

3、  根据配置创建HIVE存储数据的目录

mkdir /home/hive/tmp –p

4、  配置jdbc连接器

1、下载包并解压

2、拷贝mysql-connector-java-5.1.6-bin.jar 到hive 的lib下面

链接:http://pan.baidu.com/s/1qXIGeSG 密码:iykt 下载包

cp mysql-connector-java-5.1.6-bin.jar /usr/local/hive/lib/

页面提示

http://192.168.1.114:50070/explorer.html#/home提示这个需要修改

Permission denied: user=dr.who, access=READ_EXECUTE,inode="/home":root:supergroup:drwx-wx-wx

在vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml添加如下,后重启

<property>

<name>dfs.permissions.enabled</name>

<value>false</value>

</property>

#配置完这些把namenode节点重启生效

测试hive操作可以在mysql显示及在HADOOP页面也能展示出来

登陆hive

  1. 5.2创建内部表 
    内部表特点:数据加载到内部表中是,如果数据在本地会在将本地数据拷贝一份到内部LOCATION指定的目录下,如果数据在hdfs上,则会将hdfs中的数据mv到内部表指定的LOCATION中。删除内部表时,会删除相应LOCATION下的数据。

create table neibu_table(id int);

show tables #进行查看

hive在hdfs中的默认位置是/user/hive/warehouse,该位置可以修改,是由配置文件hive-site.xml中属性hive.metastore.warehouse.dir决定的,会在/home/hive/warehouse/testdb.db下创建student目录。 
通过浏览器可以查看

加载数据到表中方法:

##注意aa文件的数据要先创建好

hive> LOAD DATA LOCAL INPATH ‘/home/aa‘INTO TABLE neibu_table;

Loading data to table default.neibu_table

Table default.neibu_table stats: [numFiles=1, totalSize=10]

OK

Time taken: 0.639 seconds

Select * from neibu_table

使用select* 不加条件时,不执行MapReduce,执行比较快;最后一行显示的是null,原因是文件中有一行空格;

注意:内部表会将数据拷贝一份到表目录下面,如果删除内部表元数据,那么该元数据下面的数据也会被删除;

第二种加载数据到student中的方法 
注意bb.txt文件的路径,并写入一列数字; 
执行命令hadoop fs -put bb.txt /home/hive/warehouse/neibu_table或者 hdfsdfs -put  t /home/hive/warehouse/neibu_table

添加一个库:create database hive20161120

创建表a20161120,有多个列的情况创建表,指定分隔符为\t

创建分区表:

CREATE TABLE fenqu(id int) PARTITIONED BY (d int);

LOAD DATA LOCAL INPATH ‘bb.txt INTO TABLE fenquPARTITION (d=1); 
LOAD DATA LOCAL INPATH ‘bb2.txt‘ INTO TABLE fenquPARTITION (d=2);

  1. 8. 桶表 
    (表连接时候使用,根据桶的个数进行取模运算,将不同的数据放到不同的桶中) 
    创建桶类型的表 
    create table student4(id int) clustered by(id)into 4 buckets; 
    必须启用桶表 
    set hive.enforce.bucketing = true; 
    插入数据,这里并没有使用load,而是用的insert,insert加载数据使用了mapreduce。 
    insert into table student4 select id fromstudent3;

在hive 添加的表可以在mysql查看他的元数据信息,在配置问建立定义的库下记录所有所有相关的记录

Eg:select * from TBLS;

时间: 2024-08-03 02:20:03

Hive的安装与MySQL结合的相关文章

HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用

Hive体系结构: 是建立在hadoop之上的数据仓库基础架构. 和数据库相似,只不过数据库侧重于一些事务性的一些操作,比如修改,删除,查询,在数据库这块发生的比较多.数据仓库主要侧重于查询.对于相同的数据量在数据库中查询就比较慢一些,在数据仓库中查询的效率就比较快. 数据仓库是面向于查询的,并且处理的数据量要远远高于数据库处理的数据量. 传统的数据仓库产品,依然有数据存储的瓶颈,那么在这个瓶颈下查询的速度慢了,那么就不适用了,我们的hadoop是处理海量数据的,所以我们可以在上面建立数据仓库.

Hive(2)-Hive的安装,使用Mysql替换derby,以及一丢丢基本的HQL

一. Hive下载 1. Hive官网地址 http://hive.apache.org/ 2. 文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 3. 下载地址 http://archive.apache.org/dist/hive/ 4. github地址 https://github.com/apache/hive 5. 也可以使用我准备好的安装包 https://pan.baidu.com/s/1

安装hive和安装mysql

首先检查系统安装的mysql版本,使用命令    rpm  -qa | grep mysql 若要安装自己的版本,则先执行删除操作       rpm  -e  xxxxx.rpm   --nodeps 然后安装自己的版本,        rpm  -i  xxxxx.rpm 远程连接mysql,操作步骤如下: 1.进入mysql环境中 mysql -uroot -proot 2.设置mysql,授权hive可以远程连接mysql数据库 grant  all on hive.* to 'root

基于MySQL元数据的Hive的安装和简单测试

引言: Hive是一种强大的数据仓库查询语言,类似SQL,本文将介绍如何搭建Hive的开发测试环境. 1. 什么是Hive? hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. 2.  按照Hive的准备条件 2.1  Hadoop集

安装Hive(独立模式 使用mysql连接)

安装Hive(独立模式 使用mysql连接) 1.默认安装了java+hadoop 2.下载对应hadoop版本的安装包 3.解压安装包 tar zxvf apache-hive-1.2.1-bin.tar.gz 4.安装mysql yum -y install mysql-server mysql mysqldev //需要以root身份运行 另外可能需要配置yum源 mysql常用命令: service mysqld start/stop chkconfig mysqld on //加入开机

hive学习系列1——Mysql安装

安装mysql (1)执行命令 rpm -qa |grep mysql 查看mysql是否安装     删除linux上已经安装的mysql相关库信息. rpm  -e  xxxxxxx(查看的库名,可使用右键复制)   --nodeps     执行命令 rpm -qa |grep mysql 检查是否删除干净 (2)执行命令  rpm -i   mysql-server-********  安装mysql服务端 (3)启动mysql 服务端,执行命令  后台运行 mysqld_safe &

HBase完全分布式安装以及Hive远程模式(mysql作为数据库)的安装

各位真的不好意思.上次的博文有误.上次的应该是HBase的伪分布式安装.这次本人保证是完全分布式安装. 首先是HBase的完成分布式安装.这次部署的环境是hadoop-1.2.1+hbase-0.98.X.因为这个版本的HBase是直接对应hadoop-1.2.1,故也就省去了覆盖jar包的步骤以及排除了覆盖带来的不稳定性.OK,下载后解压,进入conf目录,配置hbase-env.sh文件.如图.这里HBASE_CLASSPATH是指向hadoop的conf目录的,这点需要注意. 下面是打开z

HIve的安装和使用

1.Hive1.1 在hadoop生态圈中属于数据仓库的角色.他能够管理hadoop中的数据,同时可以查询hadoop中的数据. 本质上讲,hive是一个SQL解析引擎.Hive可以把SQL查询转换为MapReduce中的job来运行.     hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表.字段转换为HDFS中的文件(夹)以及文件中的列.     这套映射工具称之为metastore,一般存放在derby.mysql中.1.2 hive在hdfs中的

Hadoop、HBase、Hive整合安装文档

前期准备(版本匹配): Hadoop 2.x is faster and includes features, such as short-circuit reads, which will help improve your HBase random read profile. Hadoop 2.x also includes important bug fixes that will improve your overall HBase experience. HBase 0.98 depr