当前位置:   article > 正文

Hive的安装与部署_hive必须安装在datanode

hive必须安装在datanode

1. Hive 简介
       Hive 是一个基于 hadoop 的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于 hadoop 文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用 HQL (类 SQL )语言对这些数据进行自动化管理和处理。我们可以把 Hive 中海量结构化数据看成一个个的表,而实际上这些数据是分布式存储在 HDFS 中的。 Hive 经过对语句进行解析和转换,最终生成一系列基于 hadoop 的 map/reduce 任务,通过执行这些任务完成数据处理。 
      Hive 自 2009.4.29 发布第一个官方稳定版 0.3.0 至今。Hive 诞生于 facebook 的日志分析需求,面对海量的结构化数据, Hive 以较低的成本完成了以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活而高效。 

2. 依赖环境
      安装Hive前提是要先安装hadoop(或集群),并且hive只需要在hadoop的namenode节点集群里安装即可(需要在有的namenode上安装),可以不在datanode节点的机器上安装。还需要说明的是,虽然修改配置文件并不需要把hadoop运行起来,但是本文中用到了hadoop的hdfs命令,在执行这些命令时你必须确保hadoop是正在运行着的,而且启动hive的前提也需要hadoop在正常运行着,所以建议先把hadoop集群启动起来。
      安装MySQL 用于存储 Hive 的元数据(也可以用 Hive 自带的嵌入式数据库 Derby,但是 Hive 的生产环境一般不用 Derby),这里只需要安装 MySQL 单机版即可,如果想保证高可用的化,也可以部署 MySQL 主从模式;

3. 安装配置Hive

(1) 下载地址:https://archive.cloudera.com/cdh5/cdh/5/,版本自行选择。

(2) 解压缩:tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz -C /opt

(3) 修改环境变量:vi /etc/profile

export HIVE_HOME=/opt/hive-0.13.1-cdh5.3.6

export PATH=$HIVE_HOME/bin:$PATH

使环境变量生效,运行 source /etc/profile使/etc/profile文件生效

(4)修改conf文件夹下文件

mv hive-env.sh.template hive-env.sh

vi hive-env.sh

HADOOP_HOME=/home/hadoop/hadoop-2.7.4/
export HIVE_CONF_DIR=/home/hadoop/hive-2.3.0/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/hive-2.3.0/lib

Hive数据仓库位置配置 
    default
        /user/hive/warehouse
    注意事项
        * 在仓库目录下,没有对默认的数据库default创建文件夹
        * 如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

创建文件夹:

  1. $ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
  2. $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
  3. $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
  4. $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse

(5)MySQL存储元数据代替derby

下载驱动:wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar

touch hive-site.xml

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5.   <name>javax.jdo.option.ConnectionURL</name>
  6.   <value>jdbc:mysql://zhangbk:3306/hive?createDatabaseIfNotExist=true</valu
  7. e>
  8.   <description>JDBC connect string for a JDBC metastore</description>
  9. </property>
  10. <property>
  11.   <name>javax.jdo.option.ConnectionDriverName</name>
  12.   <value>com.mysql.jdbc.Driver</value>
  13.   <description>Driver class name for a JDBC metastore</description>
  14. </property>
  15. <property>
  16.   <name>javax.jdo.option.ConnectionUserName</name>
  17.   <value>root</value>
  18.   <description>username to use against metastore database</description>
  19. </property>
  20. <property>
  21.   <name>javax.jdo.option.ConnectionPassword</name>
  22.   <value>password01</value>
  23.   <description>password to use against metastore database</description>
  24. </property>
  25. <property>
  26. <name>hive.cli.print.header</name>
  27. <value>true</value>
  28. <description>Whether to print the names of the columns in query output.</description>
  29. </property>
  30. <property>
  31. <name>hive.cli.print.current.db</name>
  32. <value>true</value>
  33. <description>Whether to include the current database in the Hive prompt.</description>
  34. </property>
  35. </configuration>

(6)初始化 mysql
MySQL数据库进行初始化
首先确保 mysql 中已经创建 hive 库
cd /home/hadoop/hive-2.3.0/bin
./schematool -initSchema -dbType mysql

(7)修改日志文件,在conf目录下

mv hive-log4j.properties.template hive-log4j.properties

修改日志文件地址 mkdir -p /opt/hive-0.13.1-cdh5.3.6/logs

hive.log.dir=/opt/hive-0.13.1-cdh5.3.6/logs
hive.log.file=hive.log

备注:查询HDFS文件:
http://192.168.159.129:50070/
http://192.168.159.129:8088/

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/570119
推荐阅读
相关标签
  

闽ICP备14008679号