hive 2.1.0安装

来源:互联网 发布:手机照片怎么导入mac 编辑:程序博客网 时间:2024/06/07 20:39

前言:
本文主要是从如下blog中学习得来:

http://blog.csdn.net/cuihaolong/article/details/52038543

http://fengshulin.iteye.com/blog/2320359


1.准备:

 java 1.7

hadoop 2.6.4


2.准备hive和mysql安装包:

下载hive 2.1.0 地址:http://www.eu.apache.org/dist/hive/

下载Mysql JDBC 5.1.40驱动:http://dev.mysql.com/downloads/connector/j/


3.解压hive:

下载安装包后用tar -xzvf命令解压,放在/usr/local/hadoop目录下。


4. 设置Hive环境变量

    vim ~/.bashrc            export HIVE_HOME=/usr/local/hadoop/apache-hive-2.1.0-bin     export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin            source ~/.bashrc  

4. Hive的配置文件

    cp hive-default.xml.template hive-site.xml      cp hive-log4j.properties.template hive-log4j.properties      cp hive-exec-log4j.properties.template hive-exec-log4j.properties      cp hive-env.xml.template hive-env.xml

5. 修改hive配置文件。

5.1 修改hive-env.sh(添加)

HADOOP_HOME=/home/hadoopexport HIVE_CONF_DIR=/home/hive/conf    


5.2修改 hive-site.xml (添加下面部分)

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

6.修改 hive-site.xml 替换${system:java.io.tmpdir} 和 ${system:user.name}为/home/hadoop/hive/tmp/,否则会报如下错误 

    Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j2.properties Async: true      Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D          at org.apache.hadoop.fs.Path.initialize(Path.java:205)          at org.apache.hadoop.fs.Path.<init>(Path.java:171)          at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:631)          at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:550)          at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:518)          at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:705)          at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)          at java.lang.reflect.Method.invoke(Method.java:498)          at org.apache.hadoop.util.RunJar.run(RunJar.java:221)          at org.apache.hadoop.util.RunJar.main(RunJar.java:136)      Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D          at java.net.URI.checkPath(URI.java:1823)          at java.net.URI.<init>(URI.java:745)          at org.apache.hadoop.fs.Path.initialize(Path.java:202)          ... 12 more  


7.MySQL

7.1安装MySQL

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

直接安装mysql,可以用  sudo apt-get install mysql-server mysql-client  来安装

7.2创建MySQL用户(新建mysql用户,用户名是hive,密码也是hive,对应 hive-site.xml文件里面的用户密码设置)

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

7.3拷贝MySQL驱动文件

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


8.启动Hive

先打开Hadoop集群和mysql,再运行hive

启动mysql:

/etc/init.d/mysql start
打开hive

./bin/hive


9.启动Hive报错(如无请忽略)

    Caused by: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema.      If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))      这是由于没有初始化Hive元数据的数据库,默认情况下,Hive的元数据保存在了内嵌的derby数据库里            (1)先删除 ../hive/bin目录下的metastore_db文件夹    (2)执行如下命令方可      ./bin/schematool -initSchema -dbType derby  

10.测试Hive

    create table table_name (        id                int,        dtDontQuery       string,        name              string      );      show tables;  



0 0
原创粉丝点击