Hive的安装与部署

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>

创建文件夹:

  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
  $ $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

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://zhangbk:3306/hive?createDatabaseIfNotExist=true</valu
e>
  <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>password01</value>
  <description>password to use against metastore database</description>
</property>

<property>
  <name>hive.cli.print.header</name>
  <value>true</value>
  <description>Whether to print the names of the columns in query output.</description>
</property>

<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
  <description>Whether to include the current database in the Hive prompt.</description>
</property>

</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/

猜你喜欢

转载自blog.csdn.net/weixin_43241054/article/details/90141505
今日推荐