hive部署

一. 部署

下载并解压
使用2.1.0版本
http://www.apache.org/dyn/closer.cgi/hive/
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.0/

环境变量

# 编辑/etc/profile
vi /etc/profile

# set hive environment
export HIVE_HOME=/home/zsh/work/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin

# 配置文件生效
source /etc/profile

hive配置文件

# 进入conf目录
cd $HIVE_HOME/conf

# 拷贝hive-site.xml
cp hive-default.xml.template hive-site.xml

# 修改其中的参数,有很多一定要都修改了
修改所有的${system:java.io.tmpdir}为指定的目录(/home/zsh/hive/tmp)
修改所有的${system:user.name}为自己的名字(zsh)

修改derby初始化脚本

# 进入指定的目录
cd $HIVE_HOME/scripts/metastore/upgrade/derby

# 修改错误堆栈中的脚本hive-schema-2.1.0.derby.sql,注释上面两句
-- ----------------------------------------------
-- DDL Statements for functions
-- ----------------------------------------------

-- CREATE FUNCTION "APP"."NUCLEUS_ASCII" (C CHAR(1)) RETURNS INTEGER LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'org.datanucleus.store.rdbms.adapter.DerbySQLFunction.ascii' ;

-- CREATE FUNCTION "APP"."NUCLEUS_MATCHES" (TEXT VARCHAR(8000),PATTERN VARCHAR(8000)) RETURNS INTEGER LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA CALLED ON NULL INPUT EXTERNAL NAME 'org.datanucleus.store.rdbms.adapter.DerbySQLFunction.matches' ;

初始化schema

schematool -initSchema -dbType derby

二. 完全分布式集群

mysql存储元数据
MySQL 创建一个新用户,用户名hive,密码为hive,将localhost改为%可允许该用户登录所有主机

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';

为该用户授权,本例将所有权限全部授予给该用户,可以将ALL PRIVILEGES改为具体的权限选项,
.代表所有数据库下的所有数据表,也可以指定为具体的数据库表

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

删除数据库中的空白账户(匿名账户),依次执行以下两条指命,这一步是解决这个问题的核心步骤

DELETE FROM `mysql`.`user` WHERE `user`='';

刷新

FLUSH PRIVILEGES;

查看用户

select host,user from mysql.user; 

给hive用户分配所有的权限

grant all on *.* to 'hive'@'%';

配置hive
把mysql的jdbc驱动拷贝到hive的lib下

mv mysql-connector-java-5.1.24-bin.jar ./hive-0.9.0/lib

修改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>

执行

schematool -dbType mysql -initSchema 

环境变量问题

HADOOP_HOME=/media/sean/ext/user/hadoop-2.6.4
export HIVE_CONF_DIR=/media/sean/ext/user/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/media/sean/ext/user/apache-hive-2.1.1-bin/lib

namenode in safe mode问题

hadoop dfsadmin -safemode leave 
posted @ 2016-08-30 09:55  zhangshihai1232  阅读(233)  评论(0)    收藏  举报