CentOS6.5上hive安装过程
准备:已安装hadoop,这里我使用hadoop-2.6.0单进伪分布式,将hive安装在hadoop用户下
service mysqld start
若显示:mysqld: unrecognized service则是mysql没有安装,在这里我选择用yum命令安装mysql
yum -y install mysql-server mysql mysql-devel
命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。
详细过程:http://jingyan.baidu.com/article/c74d600079be530f6a595dc3.html
2.进入MySQL,一定先启动mysql,否则会报错:
3.配置HIVE元数据库,以及创建用户名,分配网络访问权限。
insert into mysql.user(Host,User,Password) values("hadoop","hive",password("hive"));
create database hive;
grant all on hive.* to hive@'%' identified by 'hive';
grant all on hive.* to hive@'localhost' identified by 'hive';
grant all on hive.* to hive@'hadoop' identified by 'hive';
flush privileges;
4.mysql -uhive -p
show databases;
use hive;
create table test (name int);
show tables;
drop table test;
第二部分:安装配置hive
1.导入hive安装包,在/home/hadoop目录下,解压缩
tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin hive
2.配置环境变量,在hadoop用户下,配置.bash_profile
CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:/home/hadoop/hive/lib
HIVE_HOME=/home/hadoop/hive
PATH=$PATH:$HIVE_HOME/bin
配置好后source .bash_profile,用echo $HIVE_HOME命令,若显示/home/hadoop/hive,则配置正确。
3.配置hive-site.xml和hive-env.sh.template两个文件,hive-site.xml文件没有,需要自己复制出来
cd /home/hadoop/hive/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml,可以输入:/javax/来快速定位
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
<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.ConnectionUserName</name>
<value>hive</value>
<description>Username to use against metastore 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>
vim hive-env.sh.template
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.6.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/hadoop/hive/conf
在hive下创建临时IO的tmp文件夹。然后将路径配置到hive-site.xml的下列参数中
<property>
<name>hive.querylog.location</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
故障处理2:报错[ERROR] Terminal initialization failed; falling back to unsupported
将hive下的新版本jline的JAR包拷贝到hadoop下:
cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar /home/hadoop/hadoop-2.6.0/share/hadoop/yarn/lib
-rw-r--r-- 1 root root 87325 Mar 10 18:10 jline-0.9.94.jar.bak
-rw-r--r-- 1 root root 213854 Mar 11 22:22 jline-2.12.jar
6.启动hadoop,此处我是使用伪分布式,所以要先进入hadoop-2.6.0目录下
sbin/start-all.sh
之后,可以启动hive
hive
或 hive -hiveconf hive.root.logger=DEBUG,console 输出bug,显示在控制台
或 hive --hiveconf hive.cli.print.current.db=true 同时启动数据库
准备:已安装hadoop,这里我使用hadoop-2.6.0单进伪分布式,将hive安装在hadoop用户下
第一部分:安装配置mysql
1.确保系统中已安装了MySQL,可以先尝试启动MySQL服务,一般在root权限下启动service mysqld start
若显示:mysqld: unrecognized service则是mysql没有安装,在这里我选择用yum命令安装mysql
yum -y install mysql-server mysql mysql-devel
命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。
详细过程:http://jingyan.baidu.com/article/c74d600079be530f6a595dc3.html
2.进入MySQL,一定先启动mysql,否则会报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
3.配置HIVE元数据库,以及创建用户名,分配网络访问权限。
insert into mysql.user(Host,User,Password) values("hadoop","hive",password("hive"));
create database hive;
grant all on hive.* to hive@'%' identified by 'hive';
grant all on hive.* to hive@'localhost' identified by 'hive';
grant all on hive.* to hive@'hadoop' identified by 'hive';
flush privileges;
4.mysql -uhive -p
show databases;
use hive;
create table test (name int);
show tables;
drop table test;
第二部分:安装配置hive
1.导入hive安装包,在/home/hadoop目录下,解压缩
tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin hive
2.配置环境变量,在hadoop用户下,配置.bash_profile
CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:/home/hadoop/hive/lib
HIVE_HOME=/home/hadoop/hive
PATH=$PATH:$HIVE_HOME/bin
配置好后source .bash_profile,用echo $HIVE_HOME命令,若显示/home/hadoop/hive,则配置正确。
3.配置hive-site.xml和hive-env.sh.template两个文件,hive-site.xml文件没有,需要自己复制出来
cd /home/hadoop/hive/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml,可以输入:/javax/来快速定位
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
<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.ConnectionUserName</name>
<value>hive</value>
<description>Username to use against metastore 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>
vim hive-env.sh.template
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.6.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/hadoop/hive/conf
4.将mysql-connector-java-5.1.22-bin.jar导入/hive/lib中,不导入会报错
5.故障处理1:报错Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException:
java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
在hive下创建临时IO的tmp文件夹。然后将路径配置到hive-site.xml的下列参数中
<property>
<name>hive.querylog.location</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hadoop/hive/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
故障处理2:报错[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
将hive下的新版本jline的JAR包拷贝到hadoop下:
cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar /home/hadoop/hadoop-2.6.0/share/hadoop/yarn/lib
-rw-r--r-- 1 root root 87325 Mar 10 18:10 jline-0.9.94.jar.bak
-rw-r--r-- 1 root root 213854 Mar 11 22:22 jline-2.12.jar
6.启动hadoop,此处我是使用伪分布式,所以要先进入hadoop-2.6.0目录下
sbin/start-all.sh
之后,可以启动hive
hive
或 hive -hiveconf hive.root.logger=DEBUG,console 输出bug,显示在控制台
或 hive --hiveconf hive.cli.print.current.db=true 同时启动数据库