欢迎投稿

今日深度:

Hive安装配置,

Hive安装配置,


说明

       hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

注:Hive需要安装在成功部署Hadoop的集群中,并且集群已经正常启动。

1、下载Hive安装包

        Hive的官方下载地址为https://hive.apache.org/downloads.html,下载完成后我们将该压缩文件放到想要安装的目录下,进行解压。

[root@slave2 hive]# tar -zxvf apache-hive-2.3.2-bin.tar.gz

2、配置Hive

(1)配置系统配置文件(/etc/profile)

export HIVE_HOME=/usr/cx/hive/apache-hive-2.3.2-bin
export PATH=$HADOOP_HOME/bin:$PATH:$JAVA_HOME/bin:$PATH:$HIVE_HOME/bin

(2)配置hive-site.xml文件

hive-site.xml文件默认是没有的,我们需要将hive-site.xml.template文件复制为hive-site.xml。

[root@slave2 conf]# cp hive-default.xml.template hive-site.xml

然后对hive-site.xml文件进行配置

<configuration>
 <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
 </property>
 <property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.
 </description>
 </property>
 <property>
    <name>hive.querylog.location</name>
    <value>/user/hive/log</value>
    <description>Location of Hive run time structured log file</description>
 </property>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://10.128.0.134:3306/hive?createDatabaseIfNotExist=true</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>hadoop</value>
    <description>Username to use against metastore database</description>
 </property>
 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>******</value>
    <description>password to use against metastore database</description>
 </property>
</configuration>

     该文件中主要配置了hive的数据存储目录和数据库连接信息,这里的hive数据库就是我们在上篇博客《CentOS安装MySQL》中创建的数据库。 

(3)修改hive-env.sh文件 

hive-env.sh文件默认也是没有的,我们将hive-env.sh.template文件复制为hive-env.sh。

[root@slave2 conf]# cp hive-env.sh.template hive-env.sh

并添加如下内容:

export JAVA_HOME=/usr/cx/jdk1.8.0_60
export HADOOP_HOME=/usr/cx/hadoop-2.7.1
export HIVE_HOME=/usr/cx/hive/apache-hive-2.3.2-bin
export HIVE_CONF_DIR=/usr/cx/hive/apache-hive-2.3.2-bin/conf

复制  hive-log4j2.properties.template和 hive-exec-log4j2.properties.template

[root@slave2 conf]# cp hive-log4j2.properties.template hive-log4j2.properties
[root@slave2 conf]# cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

(4)在hdfs 中创建下面的目录 ,并且授权

hive的数据实际是存储在hdfs中,所以/user/hive/warehouse实际是在hdfs中创建。 

hdfs dfs -mkdir -p /user/hive/warehouse
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

 

(5)mkdir /home/hadoop/hive-2.1.1/tmp

在配置文件 hive-site.xml 里面

把{system:java.io.tmpdir} 改成 /home/hadoop/hive-2.1.1/tmp/

把 {system:user.name} 改成 {user.name}

 

       配置工作到这已经完成了,接下来我们还要将mysql的mysql-connector-java-5.1.7-bin.jar复制到hive的lib目录下,目的是为了与mysql通信,将hive中的元数据放到mysql中存储。

(6)初始化hive

[root@slave2 conf]# schematool -dbType mysql -initSchema hive 密码

初始化成功后,MySQL的hive数据库中会生成多张表,如下所示: 

mysql> show tables;
+---------------------------+
| Tables_in_hive       |
+---------------------------+
| AUX_TABLE                 |
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| COMPACTION_QUEUE          |
| COMPLETED_COMPACTIONS     |
| COMPLETED_TXN_COMPONENTS  |
| DATABASE_PARAMS           |
| DBS                       |
| DB_PRIVS                  |
| DELEGATION_TOKENS         |
| FUNCS                     |
| FUNC_RU                   |
| GLOBAL_PRIVS              |
| HIVE_LOCKS                |
| IDXS                      |
| INDEX_PARAMS              |
| KEY_CONSTRAINTS           |
| MASTER_KEYS               |
| NEXT_COMPACTION_QUEUE_ID  |
| NEXT_LOCK_ID              |
| NEXT_TXN_ID               |
| NOTIFICATION_LOG          |
| NOTIFICATION_SEQUENCE     |
| NUCLEUS_TABLES            |
| PARTITIONS                |
| PARTITION_EVENTS          |
| PARTITION_KEYS            |
| PARTITION_KEY_VALS        |
| PARTITION_PARAMS          |
| PART_COL_PRIVS            |
| PART_COL_STATS            |
| PART_PRIVS                |
| ROLES                     |
| ROLE_MAP                  |
| SDS                       |
| SD_PARAMS                 |
| SEQUENCE_TABLE            |
| SERDES                    |
| SERDE_PARAMS              |
| SKEWED_COL_NAMES          |
| SKEWED_COL_VALUE_LOC_MAP  |
| SKEWED_STRING_LIST        |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES             |
| SORT_COLS                 |
| TABLE_PARAMS              |
| TAB_COL_STATS             |
| TBLS                      |
| TBL_COL_PRIVS             |
| TBL_PRIVS                 |
| TXNS                      |
| TXN_COMPONENTS            |
| TYPES                     |
| TYPE_FIELDS               |
| VERSION                   |
| WRITE_SET                 |
+---------------------------+
57 rows in set (0.00 sec)

3、启动并验证

[root@slave2 bin]# ./hive
'''''''''中间信息忽略''''''''''
hive>

4、Hive基本操作

(1)创建表

hive> create table testDB(id int, name string, age int);
OK
Time taken: 10.662 seconds

(2)查看表和数据

hive> show tables;
OK
customers
sample_07
sample_08
testdb
web_logs
Time taken: 0.228 seconds, Fetched: 5 row(s)

(3)删除表

hive> drop table if exists testdb;
OK
Time taken: 3.011 seconds

hive数据类型、存储格式以及HQL数据操作将在后续博客中陆续更新。

www.htsjk.Com true http://www.htsjk.com/hive/41430.html NewsArticle Hive安装配置, 说明        hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。...
相关文章
    暂无相关文章
评论暂时关闭