Hive学习6_CentOS6.5下Hive2.1安装

来源:互联网 发布:gta5优化好吗 编辑:程序博客网 时间:2024/04/29 18:30

Hive

前提条件:JRE、MySQL和Hadoop已经正确安装

一、配置MySQL

启动MySQL数据库

创建hive数据库

mysql> CREATE DATABASE hive;

创建hive用户,并赋予访问hive数据库的权限

mysql> GRANT ALL PRIVILEGES ON hive.* TO'hive'@'localhost' IDENTIFIED BY 'hive';

mysql> FLUSH PRIVILEGES;

设置binary log的格式

mysql> set global binlog_format=MIXED;

 

二、安装Hive

Root用户下操作

将apache-hive-1.2.1-bin.tar.gz拿U盘复制到/home/hadoop目录下

在/home/hadoop目录下,解压安装

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C/usr/local

修改权限

chown -R hadoop:hadoop/usr/local/apache-hive-1.2.1-bin/

 

三、配置Hive

1、在~/.bashrc或.bash_profile文件中增加以下设置,

在/etc/profile文件中增加以下设置:

# set hive environment

exportHIVE_HOME=/usr/local/apache-hive-1.2.1-bin/

export PATH=$HIVE_HOME/bin:$PATH

2、新建hive-site.xml、hive-env.sh等文件

打开目录

cd /usr/local/apache-hive-1.2.1-bin/conf/

拷贝

cp hive-default.xml.templatehive-default.xml

cp hive-default.xml.template hive-site.xml

cp hive-env.sh.template hive-env.sh

cp hive-log4j.properties.template hive-log4j.properties

cp hive-exec-log4j.properties.templatehive-exec-log4j.properties

3、第一次修改hive-site.xml

使用vim命令打开

vim hive-site.xml

使用/**查找需要修改的内容

如下:

Server2连接的主机名,Hive安装在Master机上

 <property>

 <name>hive.server2.thrift.bind.host</name>

 <value>Master</value>

 </property>

所连接的MySQL数据库实例

 <property>

 <name>javax.jdo.option.ConnectionURL</name>

 <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

 <description>JDBC connect string for a JDBCmetastore</description>

</property>

连接的MySQL数据库驱动

<property>

 <name>javax.jdo.option.ConnectionDriverName</name>

 <value>com.mysql.jdbc.Driver</value>

 <description>Driver class name for a JDBCmetastore</description>

</property>

连接的MySQL数据库用户名

<property>

 <name>javax.jdo.option.ConnectionUserName</name>

 <value>hive</value>

 <description>username to use against metastoredatabase</description>

</property>

连接的MySQL数据库密码

<property>

 <name>javax.jdo.option.ConnectionPassword</name>

 <value>hive</value>

 <description>password to use against metastoredatabase</description>

</property>

4、第二次修改hive-site.xml

在/usr/local/apache-hive-1.2.1-bin/目录下新建iotmp文件夹

mkdir iotmp

将含有hive-site.xml中含有"system:java.io.tmpdir"的配置项的值修改为

/usr/local/apache-hive-1.2.1-bin/iotmp

修改方法和上一步骤相同

如果不进行修改,会报一下错误:

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

5、下载mysql jdbc jar包

下载地址:

http://dev.mysql.com/downloads/connector/j/

http://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.37.tar.gz

下载完成后,拿U盘复制到/home/hadoop目录下

在/home/hadoop目录下,解压安装

tar -zxvfmysql-connector-java-5.1.37.tar.gz

拷贝到Hive的lib目录下

cpmysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar $HIVE_HOME/lib

其中,$HIVE_HOME/lib即/usr/local/apache-hive-1.2.1-bin/lib

如果不进行这一步,或操作过程中出错,启动Hive时,会报错

Unable to instantiateorg.apache.hadoop.hive.metastore.HiveMetaStoreClient

The specified datastore driver("com.mysql.jdbc.Driver") was not found in the CLASSPATH

6、修改hive-env.sh

这个文件在conf目录下

加入以下内容

# set java environment

exportJAVA_HOME=/usr/local/java/jdk1.8.0_65

export JRE_HOME=/usr/local/java/jdk1.8.0_65/jre

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

exportCLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

 

# set hadoop path

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$PATH

 

# set hive environment

exportHIVE_HOME=/usr/local/apache-hive-1.2.1-bin/

export PATH=$HIVE_HOME/bin:$PATH

export HIVE_AUX_JARS_PATH=$HIVE_HOME/bin

export HIVE_CONF_DIR=$HIVE_HOME/conf

export HADOOP_USER_CLASSPATH_FIRST=true

其中,最后一句很重要,如果不加入,启动Hive时,会报以下错误

[ERROR] Terminal initialization failed;falling back to unsupported 

java.lang.IncompatibleClassChangeError:Found class jline.Terminal, but interface was expected 

 

四、启动Hive

前提条件:启动Hive前,需要启动Hadoop集群和MySQL

1、测试能否正常启动

cd /usr/local/apache-hive-1.2.1-bin/

bin/hive

成功启动的提示:

[hadoop@Master apache-hive-1.2.1-bin]$bin/hive

 

Logging initialized using configuration in

file:/usr/local/apache-hive-1.2.1-bin/conf/hive-log4j.properties

hive>

2、基本操作

展现TABLES,初次操作时,只返回OK和操作所用时间

hive> SHOW TABLES;

建立表records

hive> CREATE TABLE records (year STRING,temperature INT, quality INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

显示存在的表,多了一个records

hive> SHOW TABLES;          

查看表records的定义

hive> DESCRIBE records;

向表records导入数据,数据在sample.txt中

hive> LOAD DATA INPATH '/home/hadoop/sample.txt'INTO TABLE records; 

查看表records的数据

hive> SELECT * FROM records;

一个普通操作,例如:计算records中每一年的最高温度

hive> SELECT year, MAX(temperature) FROMrecords GROUP BY year;

 

3、启动hiveserver2

[hadoop@Master apache-hive-1.2.1-bin]$ nohup hive--service hiveserver2 &

[1] 22539

[hadoop@Master apache-hive-1.2.1-bin]$nohup: ignoring input and appending output to `nohup.out'

beeline

Beeline version 1.2.1 by Apache Hive

beeline> !connect jdbc:hive2://Master:10000

Connecting to jdbc:hive2://Master:10000

Enter username forjdbc:hive2://Master:10000: hive

Enter password forjdbc:hive2://Master:10000: ****

Connected to: Apache Hive (version 1.2.1)

Driver: Hive JDBC (version 1.2.1)

Transaction isolation:TRANSACTION_REPEATABLE_READ

0: jdbc:hive2://Master:10000> show tables;

+-----------+--+

| tab_name |

+-----------+--+

| records  |

+-----------+--+

1 row selected (3.509 seconds)

0: jdbc:hive2://Master:10000>

 

 参考:

http://blog.sina.com.cn/s/blog_9d31d38701013law.html

http://blog.csdn.net/cjfeii/article/details/49423459


0 0
原创粉丝点击