登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 846|回复: 0

手把手教你安装ApacheHive

[复制链接]

195

主题

195

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-16 16:48:52 | 显示全部楼层 |阅读模式 来自 江苏徐州
  Hive是基于Hadoop的一个数据堆栈工具,可以将布局化的数据文件映射为一张数据库表,并提供简朴的sql查询功能,可以将sql语句转换为MapReduce使命举行运行
      Hive 构建在基于静态批处置惩罚的Hadoop 之上,Hadoop 通常都有较高的耽误而且在作业提交和调理的时间必要大量的开销。因此,Hive 并不可以或许在大规模数据集上实现低耽误快速的查询,Hive 界说了简朴的类 SQL 查询语言,称为 HQL,它答应认识 SQL 的用户查询数据。同时,这个语言也答应认识 MapReduce 开辟者的开辟自界说的 mapper 和 reducer 来处置惩罚内建的 mapper 和 reducer 无法完成的复杂的分析工作。Hive 将用户的HiveQL 语句通过表明器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业实行过程,然后返回作业实行效果给用户。
      关于hbase的先容,各人可以自行到官网先容去相识,此文章偏重先容怎样安装。
     
      本例接纳三台呆板(centos7):
  master01(192.168.47.130),slave01(192.168.47.131),slave02(192.168.47.132)
 
      安装Apache Hive条件是要先安装hadoop集群,而且hive只必要在hadoop的namenode节点集群里安装即可(必要在有的namenode上安装),可以不在datanode节点的呆板上安装。 本例在master01(本例的hadoop集群的namenode地点呆板)节点上安装。
      本例利用的安装包为:apache-hive-2.3.3-bin.tar.gz 下载地点:http://archive.apache.org/dist/hive/hive-2.3.3/
 
1,安装Hadoop
     由于 Hive是运行上Hadoop的。故安装Hive之前,需先安装Hadoop, 关于Hadoop的安装可以参考之前的文章链接:手把手教你安装Apache Hadoop
 
2,安装Hive
     本例Hive安装在master01(hadoop集群的namenode节点)呆板上。
     master01呆板利用下令:tar -zxvf apache-hive-2.3.3-bin.tar.gz 解压hive安装文件,利用下令:mv ./apache-hive-2.3.3-bin /usr/local/ 将hive移动到/usr/local/目次下。
eGZ7O3vvKVKEVgUg.jpg
    全部的设置文件位于:ll apache-hive-2.3.3-bin/conf/
lY75w2IbPrP7Wr5p.jpg
 
2.1 设置hive-evn.sh
      利用下令:cp ./apache-hive-2.3.3-bin/conf/hive-evn.sh.template  ./apache-hive-2.3.3-bin/conf/hive-evn.sh 复制并重定名hive-evn.sh.template为hive-env.sh文件。
      利用下令:vim  ./apache-hive-2.3.3-bin/conf/hive-evn.xml 打开
KIedoiGdDuiEFeVi.jpg
    设置红框中的hadoop和hive情况变量地点,现实环境根据本身安装的目次设置。
 
2.2 设置hive-site.xml
    利用下令:cp apache-hive-2.3.3-bin/conf/hive-default.xml.template apache-hive-2.3.3-bin/conf/hive-site.xml复制并重定名hive-default.xml.template为hive-site.xml文件。
    下面第3步详细设置内容。
 
2.3 设置hive-log4j2.properties
     利用下令:cp apache-hive-2.3.3-bin/conf/hive-log4j2.properties.template apache-hive-2.3.3-bin/conf/hive-log4j2.properties复制并重定名hive-log4j2.properties.template为hive-log4j2.properties文件。
 
2.4 设置hive-exec-log4j2.properties
     利用下令:cp apache-hive-2.3.3-bin/conf/hive-exec-log4j2.properties.template apache-hive-2.3.3-bin/conf/hive-exec-log4j2.properties复制并重定名hive-exec-log4j2.properties.template为hive-exec-log4j2.properties文件。
 
2.5 在hdfs上新建目次
    利用以下下令在hdfs上创建目次:
    hdfs dfs -mkdir -p /user/hive/warehouse (hive-size.xml文件中设置hive.metastore.warehouse.dir的value值对应)
    hdfs dfs -mkdir -p /user/hive/tmp
    hdfs dfs -mkdir -p /user/hive/log
    hdfs dfs -chmod -R 777 /user/hive/warehouse
    hdfs dfs -chmod -R 777 /user/hive/tmp
    hdfs dfs -chmod -R 777 /user/hive/log
 
2.6 在当地磁盘新建tmp目次
     数据下令:mkdir ./apache-hive-2.3.3-bin/tmp 在hive安装目次下创建tmp文件夹。
     并在 hive-site.xml 中修改

  • 把{system:java.io.tmpdir} 改成 /usr/local/apache-hive-2.3.3-bin/tmp
  • 把 {system:user.name} 改成 {user.name}
 
2.7 设置hive情况变量
     输入下令:vim ~/.bashrc
lvpf33PDQH0RgIT9.jpg
    此中详细的目次按照本身的安装目次设置。设置情况变量可以方便启动大概制止hive时不必要带上完备目次。
    输入下令:source ~/.bashrc 使情况变量见效。
 
3,Hive初始化
     由于Hive的元数据(如表界说)存储在derby数据库大概mysql内里。全部在利用hive之前必要,设置元数据的数据库。
      
3.1 利用derby数据库(本例不利用)
     Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产物,基于Apache License 2.0分发。Apache Derby非常小巧,焦点部门derby.jar只有2M,以是既可以做为单独的数据库服务器利用,也可以内嵌在应用步伐中利用。下载链接http://db.apache.org/derby/。
     初始化derby作为hive元数据存储下令:
 $HIVE_HOME/bin/schematool -dbType "derby" -initSchema
    利用derby数据库的优缺点如下:

  • 利益:不必要额外安装
  • 缺点:derby只答应单毗连,无法两个客户端毗连到hive(不得当多人利用);
    不发起利用derby数据库。
 
3.2 利用mysq数据库(本例利用)
     本例利用mysql数据库作为hive的元数据存储, 关于mysql的安装,可以参考链接http://blog.csdn.net/lym152898/article/details/77319676。
 
3.3 拷贝数据库驱动包 
    拷贝jar文件mysql-connector-java-5.1.42.jar到hive安装目次的lib文件夹下。
czc66NCy6XyV6V67.jpg
 
3.4 设置hive-size.xml
    利用下令: vim ./apache-hive-2.3.3-bin/conf/hive-site.xml打开
u2vdViPy79PvT8Zy.jpg
hUS7uL5LJG6JUh5G.jpg
 
3.5 初始化hive原数据
    利用下令: schematool -dbType mysql -initSchema 初始化数据库,初始化完毕后,进入mysql客户检察多了一个名为hive的数据库。
Y2y32fOfmo4NocD4.jpg
     上图可以看出mysql中初始化天生了一个名为hive的数据库。
 
4,Hive启动
   4.1 启动hive服务端 
     利用下令:

  • hive --service metastore 2>&1 >> /dev/null & 或 hive --service metastore &  启动
  • hive --service hiveserver2 & 启动
ty6gxD3jAtwxgxot.jpg
    4.2 启动hive客户端 
      利用下令:hive 启动客户端; 利用下令:show databases; 检察hive的数据库, 数据库存储在hdfs的/user/hive/warehouse文件夹中。
gw1erq5r11dQ3M6c.jpg
 
5,Hive操纵
      进入hive客户端后操纵。
   5.1 创建数据库:
X2zP6e83I7s7EV91.jpg
 
  5.2 创建平凡表:
G5X7jYxiNZlTT7JT.jpg
 
   5.3  插入数据
O0844H4u83M20260.jpg
 
      5.4  查询数据
GBpwWtyV8ybbt876.jpg
     
      5.5  hdfs检察表数据
Eo3f88Q414YsZ44o.jpg
     
      5.6  hdfs检察数据
ESmzWjU8CMs1VIJH.jpg
     
      5.7  创建指定分隔符的文件型表
    rgeu2aiIiG4ouVvG.jpg
   
      5.8  导入【当地磁盘文件】数据到hive表中
      语法:load data local inpath '当地磁盘文件路径' into table '表名';
g3Q6AzNaU92M2Q23.jpg
bNuNiHdL5r7NnMkH.jpg
 
vAaAB8CwvarYv17N.jpg
 
      5.9  导入【HDFS文件】数据到hive中
      语法:load data inpath 'HDFS文件路径' into table '表名';
Fsr1rR7n20RrnH6Y.jpg
Iw9fYe9wYN272FEl.jpg
FZPzNxTTh99c48qH.jpg
 
      5.10  创建分区表
dmZRiJt54vA030a0.jpg
Ix22Z2El2EE2Z21Y.jpg
EH8xjfss8MMffHHo.jpg
     可以看出在hdfs中按year,month分目次(分区原理)。
 
     5.10  其他的hive下令
     关于其他的hive shell操纵,可参考链接:http://www.cnblogs.com/guanhao/p/5641675.html ,此处不做过多的先容。
 
6,Hbase导入Hive
     关于Apache Hbase的安装和先容参考链接: 手把手教你安装Apache HBase
     
     6.1  检察要导入hive的Hbase的表数据
FHbSVvu5xSxSgQ2L.jpg
 
   6.2  hive创建关联Hbase的hbase_test_tab表的表hive_hbase_test_tab
B922YgyM8TVK899s.jpg
    上图中创建了一个关联hbase中hbase_test_tab表的hive表hive_hbase_test_tab。
    留意:external 修饰词代表外部表(external table),即数据不是由hive自身管理的,由hdfs管理,即此处的HBase管理。
 
   6.3  hive查询表hive_hbase_test_tab数据
GjfoK3YZN9mo5FS1.jpg
    我们可以看到hbase中表hbase_test_tab的数据,可以从hive表hive_hbase_test_tab中查询到。
 
   6.4  hbase插入数据,检察hive表的变革
kgzTO3rVBfvBkbrT.jpg
uHcMD595QdC6G6dd.jpg
 
    我们可以看到,hbase刚插入的数据,hive中可以查询出来,阐明hive中这张表利用外部(非hive自行管理)hbase中的数据。会跟着hbase的数据动态变革。
 
    6.5  hbase长期化到hive表
    若想把hbase中的数据长期化到hive表中,不让hive查到的数据跟随着hbase的变革。一种方式是,创建新的hive表,然后将hive关联hbase的表效果集插入到新表中。
NVYtIFm9iHaV5y58.jpg
QjdNUjM6U6gyng6K.jpg
   可以看到新的hive数据表也有数据了。再来看看hadfs中两个表的区别。
WBoh10H1cZd1cCrc.jpg
j37In7ZPR3g7y7rB.jpg
   从上面可以看出hive_hbase_test_tab在HDFS中不占任何资源,而hive_hbase_test_persistent_tab中占资源。
   
    6.6  验证hive长期化表是否跟随hbase变革
tmXxExZVRx0W9qCD.jpg
U28mSn8Z6PS5Vx9r.jpg
   可以看出hive中的只有和hbase关联的外部表数据才会跟随hbase数据变革而变革。  
  
7,总结
    关于更多关于hive的知识,请到互联网中自行查找,本教程先容到这。
cZJ9UJJ9FeF2jSJu.jpg



相干技能咨询,请接洽本文作者。



ju24DGU5Z5AG4d61.jpg






上一篇:Centos7安装ffmpeg和利用youtube-dl下载Youtube视频
下一篇:为什么分库分表后不发起跨分片查询
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-3 11:48 , Processed in 0.063103 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表