Ubuntu系统下配置Hadoop2.7.1+Hive2.1.0

阅读更多

1.准备环境

java 1.7以上

hadoop版本参见hive官网的支持版本号,并启动hadoop集群。

2.下载、解压hive安装包

Hive官网地址: http://hive.apache.org/

下载安装包后用tar -xzvf命令解压,并用mv对文件夹重命名为hive

3.配置环境变量

vim /etc/profile,加入下面几行

HIVE_HOME=/home/hive

CLASSPATH=$CLASSPATH:$HIVE_HOME/lib

PATH=$PATH:$HIVE_HOME/bin

export HIVE_HOME CLASSPATH PATH

保存后使用命令:source /etc/profile使环境变量立即生效

4. 创建hive-env.sh、hive-site.xml文件

进入hive/conf根据各template创建这两个文件

4.1修改hive-env.sh文件

HADOOP_HOME=/home/hadoop

export HIVE_CONF_DIR=/home/hive/conf   

4.2修改hive-site.xml文件

此处需要修改的部分2.1.0版本都不用修改,低版本可能需要修改

auth修改为auth

把hive.metastore.schema.verification=true,修改为 hive.metastore.schema.verification=false

至此hive的相关配置工作完成。

5.MySQL

5.1安装MySQL

Hive默认使用derby数据库存储元数据,但是该数据库不适用于生产环境,这边使用MySQL作为元数据的存储数据库。
所以需要先安装好MySQL

安装过程使用sudo apt-get install mysql-server mysql-client命令安装即可,但是注意如果出现Encountered a section with no Package: header错误时,使用如下命令解决:

sudo rm /var/lib/apt/lists/* -vf

sudo apt-get update

安装MySQL过程中会为root用户设置密码,安装完毕后输入mysql -u root -p以及密码启动MySQL来创建数据库用户

5.2创建MySQL用户

  1. create user 'hive' identified by 'hive';
  2. grant all privileges on *.* to 'hive' with grant option;
  3. flush privileges;
  4. create database hive;

5.3拷贝MySQL驱动文件

下载地址:http://dev.mysql.com/downloads/connector/j/ ,解压后拷贝其中的mysql-connector-java-5.1.39-bin.jar到hive的lib文件夹下。

6.修改hive-site.xml文件

  1. <property>
  2. <name>javax.jdo.option.ConnectionURL name>
  3. <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true value>
  4. <description>JDBC connect string for a JDBC metastore description>
  5. property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionDriverName name>
  8. <value>com.mysql.jdbc.Driver value>
  9. <description>Driver class name for a JDBC metastore description>
  10. property>
  11. <property>
  12. <name>javax.jdo.option.ConnectionUserName name>
  13. <value>hive value>
  14. <description>username to use against metastore database description>
  15. property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionPassword name>
  18. <value>hive value>
  19. <description>password to use against metastore database description>
  20. property>

 

7.初始化数据库

在使用hive或者hive --service cli来运行之前需要初始化数据库,如果在初始化之前已经运行了上述命令并且失败,则需要删除产生的metastore_db文件

使用命令schematool -initSchema -dbType mysql初始化mysql数据库

 

出现以下几行说明初始化成功:

  1. Starting metastore schema initialization to 2.1.0
  2. Initialization script hive-schema-2.1.0.derby.sql
  3. Initialization script completed
  4. schemaTool completed

8.启动hive

在使用hive或者hive --service cli运行hive时出现java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D错误

需要修改hive-site.xml的以下部分

  1. <property>
  2. <name>hive.exec.scratchdir name>
  3. <value>/tmp/hive value>
  4. <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}/ <username> is created, with ${hive.scratch.dir.permission}. description>
  5. property>
  6.  
  7. <property>
  8. <name>hive.exec.local.scratchdir name>
  9. <value>/tmp/hive/local value>
  10. <description>Local scratch space for Hive jobs description>
  11. property>
  12.  
  13. <property>
  14. <name>hive.downloaded.resources.dir name>
  15. <value>/tmp/hive/resources value>
  16. <description>Temporary local directory for added resources in the remote file system. description>
  17. property>


然后即可正常运行。

9.测试

使用命令:

show tables;

create table test1(id int,name string);

select * from test1;

drop table test1;

来测试HiveQL是否能使用。

 

你可能感兴趣的:(hadoop)