一、安装Hive

1.1 下载并解压

下载所需版本的Hive,这里我下载版本为cdh5.15.2。下载地址:http://archive.cloudera.com/cdh5/cdh/5/

# 下载后进行解压
 tar -zxvf hive-1.1.0-cdh5.15.2.tar.gz

1.2 配置环境变量

# vim /etc/profile

添加环境变量:

export HIVE_HOME=/usr/app/hive-1.1.0-cdh5.15.2
export PATH=$HIVE_HOME/bin:$PATH

使得配置的环境变量立即生效:

# source /etc/profile

1.3 修改配置

1. hive-env.sh

进入安装目录下的conf/目录,拷贝Hive的环境配置模板flume-env.sh.template

cp hive-env.sh.template hive-env.sh

修改hive-env.sh,指定Hadoop的安装路径:

HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2

2. hive-site.xml

新建hive-site.xml 文件,内容如下,主要是配置存放元数据的MySQL的地址、驱动、用户名和密码等信息:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop001:3306/hadoop_hive?createDatabaseIfNotExist=true</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
  </property>

</configuration>

1.4 拷贝数据库驱动

将MySQL驱动包拷贝到Hive安装目录的lib目录下, MySQL驱动的下载地址为:https://dev.mysql.com/downloads/connector/j/ , 在本仓库的resources目录下我也上传了一份,有需要的可以自行下载。

1.5 初始化元数据库

  • 当使用的 hive 是1.x版本时,可以不进行初始化操作,Hive会在第一次启动的时候会自动进行初始化,但不会生成所有的元数据信息表,只会初始化必要的一部分,在之后的使用中用到其余表时会自动创建;

  • 当使用的 hive 是2.x版本时,必须手动初始化元数据库。初始化命令:

    # schematool 命令在安装目录的bin目录下,由于上面已经配置过环境变量,在任意位置执行即可
    schematool -dbType mysql -initSchema
    

这里我使用的是CDH的hive-1.1.0-cdh5.15.2.tar.gz,对应Hive 1.1.0 版本,可以跳过这一步。

1.6 启动

由于已经将Hive的bin目录配置到环境变量,直接使用以下命令启动,成功进入交互式命令行后执行show databases命令,无异常则代表搭建成功。

# hive

在Mysql中也能看到Hive创建的库和存放元数据信息的表

二、HiveServer2/beeline

Hive内置了HiveServer和HiveServer2服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer不能处理多个客户端的并发请求,因此产生了HiveServer2。HiveServer2(HS2)允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果,支持多客户端并发访问和身份验证。HS2是由多个服务组成的单个进程,其包括基于Thrift的Hive服务(TCP或HTTP)和用于Web UI的Jetty Web服务。

HiveServer2拥有自己的CLI工具——Beeline。Beeline是一个基于SQLLine的JDBC客户端。由于目前HiveServer2是Hive开发维护的重点,所以官方更加推荐使用Beeline而不是Hive CLI。以下主要讲解Beeline的配置方式。

2.1 修改Hadoop配置

修改 hadoop 集群的 core-site.xml 配置文件,增加如下配置,指定hadoop的root用户可以代理本机上所有的用户。

<property>
 <name>hadoop.proxyuser.root.hosts</name>
 <value>*</value>
</property>
<property>
 <name>hadoop.proxyuser.root.groups</name>
 <value>*</value>
</property>

之所以要配置这一步,是因为hadoop 2.0以后引入了安全伪装机制,使得hadoop不允许上层系统(如hive)直接将实际用户传递到hadoop层,而应该将实际用户传递给一个超级代理,由该代理在hadoop上执行操作,以避免任意客户端随意操作hadoop。如果不配置这一步,在之后的连接中可能会抛出AuthorizationException异常。

关于Hadoop的用户代理机制,可以参考:hadoop的用户代理机制Superusers Acting On Behalf Of Other Users

2.2 启动hiveserver2

由于上面已经配置过环境变量,这里直接启动即可:

# nohup hiveserver2 &

2.3 使用beeline

可以使用以下命令进入beeline交互式命令行,出现Connected则代表连接成功。

# beeline -u jdbc:hive2://hadoop001:10000 -n root

最新文章

  1. tcpdump用法
  2. 【SQL Sever】实现SQL Sever的发布。订阅。 双机热备
  3. Html==&gt;&gt;一些经典
  4. MuPlayer『百度音乐播放内核』
  5. ActiveXObject对象详解
  6. Thinkphp交友手机首页简明前台、后台
  7. Jmeter接口測试
  8. 逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复
  9. BZOJ 3687: 简单题 bitset
  10. 批量修改所有服务器的dbmail配置
  11. L1-006 连续因子 (20 分) 模拟
  12. 【BZOJ1558】等差数列(线段树)
  13. PHP开发——常见问题
  14. Google地图开发
  15. HTML标签参考(二)
  16. kubernetes 认证授权
  17. js子节点children和childnodes的用法
  18. lnmp环境的使用教程
  19. Eclipse中设置文件编码
  20. 【LESS系列】三角形Mixins

热门文章

  1. WinForm控件与WPF控件的交互
  2. Linux性能测试 strace命令
  3. python两个整数和浮点的方法来获取值
  4. docker ubuntu 不选时区
  5. 关于 Swift 2.0 - 语言新特性与革新
  6. sql server 查询存储过程指令
  7. WCF的几个注意事项
  8. jquery 鼠标经过延时触发事件,jquery插件
  9. wpf 路由事件 代码片段
  10. Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(无数截图)