一、安装模式

内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接 
本地独立模式:在本地安装Mysql,把元数据放到Mysql内 
远程模式:元数据放置在远程的Mysql数据库

官方文档:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted

二、内嵌模式

(1)下载hive包

wget http://mirrors.cnnic.cn/apache/hive/hive-1.1.0/apache-hive-1.1.0-bin.tar.gz

(2) 解压到工作目录

tar -xzvf hive-1.1.0.tar.gz

(3)移动到特定目录

sudo mv  apache-hive-1.1.0-bin  /home/mk/software/hive-1.1.0
#创建快捷方式方便使用
ln -s /home/mk/hive-1.1.0 /home/mk/software/hive-1.1.0

(5)创建工作目录

hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /tmp

(5)构建工作环境

在 /etc/profile.d/hive.sh中增加以下内容:

 export JAVA_HOME=/home/mk/jdk-1.8export Hadoop_HOME=/home/mk/hadoop-2.6.0export HIVE_HOME=/home/mk/hive-1.1.0export PATH=$PATH:$HIVE_HOME/bin
# hive中jline已升级到jline2,而hadoop lib中的 jline还是jline0.9,需要配置如下export HADOOP_USER_CLASSPATH_FIRST=true

当前shell窗口生效source  /etc/profile或者重启系统

(6)配置Hive

cp $HIVE_HOME/conf/hive-default.xml $HIVE_HOME/conf/hive-site.xml

配置hive-site.xml

hive.metastore.warehouse.dir:(HDFS上的)数据目录

hive.exec.scratchdir:(HDFS上的)临时文件目录

hive.metastore.warehouse.dir默认值是/user/hive/warehouse

hive.exec.scratchdir默认值是/tmp/hive-${user.name}

(7)改变 $HIVE_HOME的目录所有者

chown -R mk:mk $HIVE_HOME

(8)初始化元数据

$HIVE_HOME/bin/hive --service metastore 

(9)运行hive

hive
hive>

(10)测试hive

hive> create TABLE pokes( id INT, name string);
hive> SHOW TABLES;
hive> select * from pokes;
hive> drop table pokes;

三、独立模式

(1)安装Mysql并启动服务

1)安装mysql服务端和客户端

Hive需要管理一些数据,一般我们使用MySQL来存放

在线安装执行命令

sudo apt-get install mysql-server mysql-client

启动停止mysql服务

sudo start mysql
sudo stop mysql  

修改了配置文件后需要重启 mysqld 才能使这些修改生效。
 
检查 mysqld 进程是否已经开启:

pgrep mysqld

如果进程开启,这个命令将会返回该进程的 id

2)mysql账号赋权

在Mysql中为hive建立账号,并授予足够的权限,例如hive账号,授予all privileges

mysql -u root -p
password:****
mysql>
use mysql;
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'mk' with grant option;
flush privileges;

用上述账号登陆mysql,然后创建数据库,比如名叫hive_metadata,用于存放hive的元数据

3)设置MySQL远程访问(可选)

1.取消本地监听
 正常情况下,mysql占用的3306端口只是在IP 127.0.0.1上监听,拒绝了其他IP的访问(通过netstat可以查看到)。
取消本地监听需要修改 my.cnf 文件:

sudo vim /etc/mysql/my.cnf

//找到如下内容,并注释
bind-address = 127.0.0.1
 2.重启 mysql

(2)安装Hive

下载安装包
http://apache.fayea.com/apache-mirror/hive/stable/apache-hive-1.1.0-bin.tar.gz
安装
1、上传包
上传hive包到/home/hadoop上
2、解压
  tar–zxvf apache-hive-1.1.0-bin.tar.gz
3、重命名包
mv apache-hive-1.1.0-bin hive-1.1.0

(3)配置hive

1、  配置环境变量
执行命令

sudo gedit /etc/profile.d/hive.sh

注意CLASSPATH,PATH在原有上增加hive包路径

#set hive environment
HIVE_HOME=/home/mk/hive-1.1.0
PATH=$HIVE_HOME/bin:$PATH
CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export HIVE_HOME
export PATH
export CLASSPATH

使配置生效:

source /etc/profile

2、  配置hive-env.sh
进入配置目录

cd $HIVE_HOME/conf

打开配置文件hive-env.sh,

gedit hive-env.sh

进行配置

# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/mk/hadoop-2.6.0
# Hive Configuration Directory can be controlled by:export HIVE_CONF_DIR=/home/mk/hive-1.1.0/conf

3、配置hive-site.xml
配置hive-site.xml文件,指出使用本地Mysql数据库,已经连接协议,账号、口令等

创建配置文件
$cp hive-default.xml.template hive-site.xml
在同上的目录下
修改hive-site.xml

<property><name>hive.metastore.warehouse.dir</name><value>/home/mk/hive/warehouse</value><description>location of default database for the warehouse</description>
</property>
<property><name>hive.exec.scratchdir</name><value>/home/mk/hive/scratchdir</value><description>Scratch space for Hive jobs</description>
</property>
<property><name>hive.querylog.location</name><value>/home/mk/hive-1.1.0/logs</value><description>Location of Hive run time structured log file</description>
</property>
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://haddop01:3306/hive_metadata?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description>
</property>
<property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description>
</property>
<property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>username to use against metastore database</description>
</property>
<property><name>javax.jdo.option.ConnectionPassword</name><value>root123</value><description>password to use against metastore database</description>
</property>
<property><name>hive.exec.local.scratchdir</name>  <!--拼凑目录--> <value>/home/mk/hive-1.1.0/local/${system:user.name}</value><description>Local scratch space for Hive jobs</description></property>
<property><name>hive.downloaded.resources.dir</name><value>/home/mk/hive-1.1.0/local/${hive.session.id}_resources</value><description>Temporary local directory for added resources in theremote file system.</description></property>
<property><name>hive.server2.logging.operation.log.location</name><value>/home/mk/hive-1.1.0/logs/operation_logs</value><description>Top leveldirectory where operation logs are stored if logging functionality isenabled</description></property>

在hive-1.1.0目录下创建local目录

执行命令

mkdir local

4、  配置log4j
在同上目录下
创建配置文件:
cp hive-exec-log4j.properties.template  hive-exec-log4j.properties
cp hive-log4j.properties.template  hive-log4j.properties
修改上面两个文件中的配置

hive.log.dir=/home/mk/hive-1.1.0/logs
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

注意如果没有logs目录就建立一个 执行命令

mkdir /home/mk/hive-1.1.0/logs

(4)添加Mysql驱动包
1、下载驱动包
本实验使用的mysql是mysql 5.6 版本,配套的jdbc是mysql-connector-java-5.1.9-bin.jar
这个jar在网上下载就可以了,一定要根据mysql版本选择配套的版本

2、添加驱动包
   把驱动包放到 $HIVE_HOME/lib 目录下

3、修改hadoop的库文件
在$HADOOP_HOME/share/hadoop/yarn/lib下备份jline-0.9.94.jar
执行命令

mv jline-0.9.94.jar jline-0.9.94.jar.bak

Copy高版本的jline

cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib

(5)启动hive

初始化元数据

$HIVE_HOME/bin/hive --service metastore &

执行命令启动hive

hive

启动hive能进入shell表示安装成功

(6)测试hive

hive> create TABLE pokes( id INT, name string);
hive> SHOW TABLES;
hive> select * from pokes;
hive> drop table pokes;

Hadoop生态hive(二)安装相关推荐

  1. Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装

    Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装 今日课程学习目标 1.掌握Linux用户.权限管理 2.掌握Linux常用系统命令 3.掌握服务器集群环境搭建 4.了解sh ...

  2. Hadoop生态hive(一)介绍

    一.Hive是什么 起源自facebook由Jeff Hammerbacher领导的团队,构建在Hadoop上的数据仓库框架.设计目的是让SQL技能良好,但Java技能较弱的分析师可以查询海量数据.2 ...

  3. Hadoop生态hive(四)数据类型

    转载自  Hive数据类型 一.列类型 列类型被用作Hive的列数据类型.它们如下: (1)整型 整型数据可以指定使用整型数据类型,INT.当数据范围超过INT的范围,需要使用BIGINT,如果数据范 ...

  4. Hadoop生态hive(三)Hive QL介绍

    一.表 创建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name CREATE TABLE 创建一个指定名字的表.Hive 创建内部表时,会将数据移 ...

  5. Hadoop生态hive(六)Hive QL表

    一.创建表 语法: create [temporary] [external] table [if not exists] [db_name.] table_name [(col_name data_ ...

  6. Hadoop生态hive(五)Hive QL数据库

    (1)查看数据库 show databases; (2)使用数据库 use db; (3)查看当前数据库 #与mysql的select database();不一样 select current_da ...

  7. 【hadoop生态之Hive】Hive的基本概念和安装【笔记+代码】

    一.Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提 ...

  8. hadoop生态下hive安装过程

    Hive的安装部署 1.首先在Linux本地,新建/data/hive1目录,用于存放所需文件 (1)mkdir -p /data/hive1 (2)切换目录到/data/hive1下,上传apach ...

  9. Hadoop集群搭建(八:Hive的安装配置)

    实验 目的 要求 目的: (1)掌握数据仓库工具Hive的安装和配置: 要求: 完成Hive工具的安装和配置: Hive工具能够正常启动运行: Hive控制台命令能够正常使用: 能够正常操作数据库.表 ...

最新文章

  1. 2021年,深度学习还有哪些未饱和、有潜力且处于上升期的研究方向?
  2. 完全卸载SQL Server 2008 R2(转)
  3. Facebook-Rebound探索发现
  4. iOS之深入解析通知NSNotification的底层原理
  5. C/C++学习之路: STL
  6. 孔浩用的mysql工具_孔浩Java教学系列视频教程
  7. spring事件监听器系列二:@EventListener注解原理
  8. 汤家凤:可以跳过接力题典强化篇直接动手真题吗?
  9. 旺旺怎么去服务器接收文件夹,xp系统下找到阿里旺旺安装路径文件夹的方法
  10. ENC5 H264/5 4K高清编码器使用说明书
  11. 2022.7.20 JETSON NANO 2GB 跑Swin-Transformer-Object-Detection。(配置:UBUNTU18/PYTHON3.6/PYTORCH1.6.0...)
  12. 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉完美全解决方案
  13. 得到互质数的个数——轻松认识欧拉函数
  14. 背包问题之0-1背包算法详解
  15. MC官方模板的分析Day1
  16. 决策树的三种常见算法
  17. 企业申请E-mark认证要检测些什么?
  18. SQL+Tableau化妆品数据分析
  19. 测试画面帧率及帧延时一种方法
  20. Σ-Δ型ADC转换原理及程序设计--AD7712

热门文章

  1. [MyBatisPlus]Plus分页插件的配置和使用
  2. Java 12 switch表达式新特性(->,yield)
  3. Java访问控制修饰符
  4. [JavaWeb-MySQL]DQL_查询表中记录,语句
  5. C++多态的基本语法与原理剖析
  6. python3调用c语言数组,使用Python中的ctypes访问数组
  7. python注入进程_向进程中注入Python代码
  8. 二叉排序树或二叉搜索树
  9. P4211 [LNOI2014]LCA(离线 + 在线 做法)
  10. 【BZOJ3451】Normal【期望线性性】【点分治】【NTT卷积】