Hadoop 之 Hive 安装与安顿

Hive
作为依照Hadoop的一个数据仓库工具,可将sql语句转换为MapReduce义务进行运转。
通过类SQL语句飞速达成简单的MapReduce计算,不用付出专门的MapReduce应用

适合数据仓库的统计分析。基本上Hadoop应用时,都有Hive的影子,上边说下基本Hadoop如何设置配备Hive

一、准备干活

设置Hive在此以前,要求有环境与相应软件的援救,首先必要设置好Hadoop

(参考上篇博文),接下去大家须求安装Mysql 数据库,为何要装Mysql,

Hive有二种格局,内嵌格局是将将元数据保存在本土内嵌的 Derby
数据库中,那种措施缺点是内嵌的 Derby
数据库每一遍只好访问一个数据文件,即不接济多会话总是。所以一般

俺们利用将元数据保存在Mysql数据库中,可以置身地面hive
server上或远程某一台server上,那里大家在当地创制Mysql数据库

Mysql一般在linux系统中默认自带,大家只需安装启动相应服务就可以,当然也足以自身下载相应的安装包,那里大家用centos自带的mysql版本,

开行服务

图片 1

mysql默许密码是空即没有密码,可本身修改

1、可以用以下命令给root用户安装密码:
mysql_secure_installation

图片 2

2、根据提示先输入原来的密码,直接回车,输入2次新密码,就安装成功了。
在意,在安装进度中,会提示删除是不是anonymous用户,是还是不是不肯root的长距离访问,是或不是删除测试用的数据库,是或不是再一次使设置生效,依据实情选取y
或 n即可,

图片 3

改完后重启mysql: /etc/init.d/mysqld restart

二、下载安装Hive

1、  下载hive安装包

http://archive.apache.org/dist/hive/hive-2.1.1/
apache-hive-2.1.1-bin.tar.gz

上传到服务器,指定目录

图片 4

2、安装hive

tar –zxvf apache-hive-2.1.1-bin.tar.gz

图片 5

三、设置配置项

1、更改环境变量

Vi  /etc/profile

图片 6

使变量登时生效

source /etc/profile

2、  配置hive-env.sh

Hive目录下的/conf/hive-env.sh
文件,该公文默认也不设有,同样是拷贝它的模板来修改:

[hadoop@kencentos01 conf]$ cp hive-env.sh.template hive-env.sh

布署相关变量

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf 
export JAVA_HOME=/usr/java/jdk1.7.0_80

 3、修改 Hive 配置文件

Hive工程的布局文件为
hive-site.xml,默认情状下,该公文并不存在,须要拷贝它的模版来贯彻,此布署文件充足主要,若有一项配置错误,则hive将运行不了

[hadoop@kencentos01 conf]$ cp hive-default.xml.template
hive-site.xml  

复制模版文件生成hive-site.xml

<property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
      <description>数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下
</description>
</property>
..
<property>
       <name>hive.exec.scratchdir</name>
       <value>/tmp/hive</value>
       <description>数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下</description> </property>
   //配置 jdbc
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://192.168.52.128:3306/hive?createDatabaseIfNotExist=true&amp;
characterEncoding=UTF-8&amp;useSSL=false</value>
    <description>
      //Jdbc 方式连接数据库
    </description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore 指定jdo驱动相关类</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>访问数据库的用户名</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>连接hive数据库对应用户的密码</description>
  </property>

检查上边目录是不是存在(hadoop系统中),创制如下目录

[hadoop@kencentos01 bin]$ hdfs dfs -mkdir -p /user/hive/warehouse
[hadoop@kencentos01 bin]$ hdfs dfs -mkdir /tmp/hive
[hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /user/hive/warehouse
[hadoop@kencentos01 bin]$ hdfs dfs -chmod 777 /tmp/hive

4、配置jdbc驱动包

下载mysql的jdbc驱动包mysql-connector-java-5.1.6-bin.jar

(mysql官网或http://download.csdn.net/download/happy516/1753230)

放入hive的lib目录下$HIVE_HOME/lib

5、所有${system:Java.io.tmpdir} 改为相对路径

  如/opt/hive/apache-hive-2.1.1.bin/iotmp (可协调定义)

四、启动Hive服务

1、启动hive 服务

[hadoop@kencentos01 bin]$ nohup hive -service metastore &

[hadoop@kencentos01 bin]$ nohup hive --service hiveserver2 &

 2、运行hive

  可能会遇见如下难题

  Error:

 Caused by: MetaException(message:Version information not found in
metastore…

图片 7

将hive-site.xml中hive.metastore.schema.verification的值true 改为 false

预防架构版本不包容时的 Metastore 操作。考虑将此设置为“True”,以减小
Metastore 操作时期产生架构损坏的或者

Error:

MetaException(message:Hive metastore database is not initialized. Please
use schematool…

图片 8

更改为自发性创造

Datanucleus.schema.autoCreateAll设置为true

Error:

Relative path in absolute URI:
${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D …

其一错误表明java.io.tmpdir需求配备,即将hive-site.xml中所有${system:java.io.tmpdir}都改为相对目录,如/opt/hive/apache-hive-2.1.1-bin/iotmp

启动hive

$hive

图片 9

本机装了几台虚机,质量较差 :)  

图片 10

 

相关文章