Hive 1.2.1搭建

1.基础环境##

和上一篇 hadoop 相同 http://www.jianshu.com/p/57ffe2e3a092

2.准备工作

获取安装文件 http://apache.fayea.com/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz

依赖MySQL
因当前操作系统为CentOS6 可安装mysql5.5

获取:MySQL-client-5.5.46-1.linux2.6.x86_64.rpm 、MySQL-server-5.5.46-1.linux2.6.x86_64.rpm

安装

rpm -ivh MySQL-client-5.5.46-1.linux2.6.x86_64.rpm 
rpm -ivh MySQL-server-5.5.46-1.linux2.6.x86_64.rpm 

启动

service mysql start

设置密码

/usr/bin/mysqladmin -uroot password '123456'

验证可用

mysql -uroot -p123456

能登陆成功
创建hive库

create database hivemeta character set latin1;

设置访问密码

grant all privileges on *.* to hive@"%" identified by "123456" with grant option; 
flush privileges; 

3.正式安装##

  1. 设置环境变量
    设置文件 .bashrc
export HIVE_HOME=/home/hadoop/bigdata/hive
export PATH=$HIVE_HOME/bin:$PATH

HIVE_HOME 表示HIVE安装目录
生效设置的环境变量

source .bashrc

验证

[hadoop@master ~]$ echo $HIVE_HOME
/home/hadoop/bigdata/hive

拷贝到slave机器

scp .bashrc [email protected]:/home/hadoop/
scp .bashrc [email protected]:/home/hadoop/

验证slave
方法同master端

  1. 配置hive
    安装目录
cd /home/hadoop/bigdata/
tar -zxf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin hive

hive-sitv配置

cd /home/hadoop/bigdata/hive/conf
cp hive-default.xml.template hive-site.xml

修改的内容

hive.metastore.warehouse.dir        
hdfs://master:9000/hive/warehouse    

   
hive.exec.scratchdir        
hdfs://master:9000/hive/scratchdir    


hive.metastore.warehouse.dir/home/hadoop/bigdata/hive/warehouse    
      
hive.querylog.location        
/home/hadoop/bigdata/hive/logs    
  

javax.jdo.option.ConnectionURLjdbc:mysql://master:3306/hivemeta?createDatabaseIfNotExist=true    
  
 javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driver    
  
 javax.jdo.option.ConnectionUserNamehive   

        
javax.jdo.option.ConnectionPassword 123456    

       
hive.aux.jars.path
file:///home/hadoop/bigdata/hive/lib/hive-hbase-handler-1.2.1.jar,
file:///home/hadoop/bigdata/hive/lib/protobuf-java-2.5.0.jar, 
file:///home/hadoop/bigdata/hive/lib/hbase-client-1.0.1.1.jar, 
file:///home/hadoop/bigdata/hive/lib/hbase-common-1.0.1.1.jar, 
file:///home/hadoop/bigdata/hive/lib/zookeeper-3.4.6.jar, 
file:///home/hadoop/bigdata/hive/lib/guava-14.0.1.jar    
 
        
hive.metastore.local        
true    


hive.metastore.uris
thrift://master:9083,thrift://slave01:9083,thrift://slave02:9083    

hive-env配置

cd /home/hadoop/bigdata/hive/conf
cp hive-env.sh.template hive-env.sh

编辑hive-env.sh

export HADOOP_HOME=/home/hadoop/bigdata/hadoop
export HIVE_CONF_DIR=/home/hadoop/bigdata/hive/conf

hive-log4j配置

cd /home/hadoop/bigdata/hive/conf
cp hive-log4j.properties.template hive-log4j.properties

编辑hive-log4j

hive.log.threshold=ALL
hive.root.logger=INFO,DRFA
hive.log.dir=/home/hadoop/bigdata/hive/log
hive.log.file=hive.log

hive-config配置

cd /home/hadoop/bigdata/hive/bin
export JAVA_HOME=/usr/java/jdk1.8.0_60
export HADOOP_HOME=/home/hadoop/bigdata/hadoop
export HIVE_HOME=/home/hadoop/bigdata/hive

创建目录,并赋权

hdfs dfs -mkdir /hive/scratchdir  
hdfs dfs -mkdir /hive/warehouse  
hdfs dfs -chmod g+w /hive/scratchdir  
hdfs dfs -chmod g+w /hive/warehouse
mkdir -p /home/hadoop/bigdata/hive/warehouse  
mkdir -p /home/hadoop/bigdata/hive/logs  
ssh slave01 mkdir -p /home/hadoop/bigdata/hive/warehouse  
ssh slave01 mkdir -p /home/hadoop/bigdata/hive/logs 
ssh slave02 mkdir -p /home/hadoop/bigdata/hive/warehouse
ssh slave02 mkdir -p /home/hadoop/bigdata/hive/logs

启动&验证启动

nohup hive --service metastore -v &
hive

验证

create table hive_test(id int,name string)
show tables;hive_test
Time taken: 1.87 seconds, Fetched: 1 row(s)

4.遇到错误##

问题1:
Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

解决方法
1)mysql jdbc驱动 是否放在hive/lib
2)检查user表中是否有 空记录,先删除,然后flush privileges
3)hive-site.xml 配置是否正确

问题2:
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: hdfs://master:9000/hive/scratchdir on HDFS should be writable. Current permissions are: rwxr-xr-

解决方法
hadoop fs -chmod -R 777 /hive/scratchdir

问题3:
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.querylog.location
hive.exec.local.scratchdir
hive.downloaded.resources.dir
三个值写成绝对值

问题4:
NestedThrowablesStackTrace: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

解决方法
alter database hive character set latin1;
create table hive_test(id int,name string)

你可能感兴趣的:(Hive 1.2.1搭建)