Hive安装
内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接
本地独立模式:在本地安装Mysql,把元数据放到Mysql内
远程模式:元数据放置在远程的Mysql数据库
Hive安装:内嵌模式
1.下载
http://apache.dataguru.cn/hive/hive-0.8.1/hive-0.8.1.tar.gz
2.安装
(1)上传hive安装包到机器上,使用root用户登陆:
tar -xvf hive-0.8.1.tar.gz
(2)将解压的hive分别移动并改名为/usr/local/hive
rm -rf /usr/local/hive mv hive-0.8.1 /usr/local/hive
3.配置hive
(1)修改/usr/local/hive/bin/hive-config.sh
在文件末尾加入
export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
(2) 根据hive-default.xml复制hive-site.xml
cp /usr/local/hive/conf/hive-default.xml /usr/local/hive/conf/hive-site.xml
(3)配置hive-site.xml,主要配置项如下:
hive.metastore.warehouse.dir:(HDFS上的)数据目录
hive.exec.scratchdir:(HDFS上的)临时文件目录
hive.metastore.warehouse.dir默认值是/user/hive/warehouse
hive.exec.scratchdir默认值是/tmp/hive-${user.name}
以上是默认值,暂时不改。
(4)改变 /usr/local/hive的目录所有者为hadoop 这里需要注意,每个人定义的路径不同,视情况而定
chown -R hadoop:hadoop /usr/local/hive
(5)配置hive的log4j:
cp /usr/loca/hive/conf/hive-log4j.properties.template
/usr/loca/hive/conf/hive-log4j.properties
修改/usr/loca/hive/conf/hive-log4j.properties将
org.apache.hadoop.metrics.jvm.EventCounter改为
org.apache.hadoop.log.metrics.EventCounter
(6)启动hive
使用hadoop用户登陆,执行/usr/local/hive/bin/hive
Hive安装:独立模式
安装Mysql并启动服务
在Mysql中为hive建立账号,并授予足够的权限,例如hive账号,授予all privileges
用上述账号登陆mysql,然后创建数据库,比如名叫hive,用于存放hive的元数据
在本地安装mysql客户端
配置hive-site.xml文件,指出使用本地Mysql数据库,已经连接协议,账号、口令等
把mysql-connector-java-x.x.x.jar复制到hive的lib目录下
启动hive能进入shell表示安装成功
具体步骤如下:
1.查看当前系统是否安装Mysql
sudo rpm -qa | grep -i mysql
如果有,需要卸载
安装Mysql-client 和Mysql-devel:
2.启动Mysql 服务
首先查看Mysql 服务状态,如果没运行,使用service mysql start
3.设置root密码
停止 Mysql 服务 sudo service mysql stop sudo service status
跳过验证Mysql
sudo mysqld_safe --skip-grant-tables &
在Mysql 中通过更新设置root 密码:
mysql -u mysql
使用Mysql 语句更新root 密码:
use mysql
退出安全模式,重新启动Mysql exit
4.设置hive 用户
进入Mysql 命令行,创建hive 用户并赋予所有权限:
mysql -uroot -proot 打开mysql,用户为root,密码为root
set passwd = passwd('root');
create user 'hive' identified by 'hive';
grant all on *.* TO 'hive'@'%' identified by 'hive' with grant option;
grant all on *.* TO 'hive'@'%'localhost' identified by 'hive' with grant option;
flush privilieges;
5.创建hive 数据库
使用hive 用户创建Mysql ,创建hive 数据库:
sudo mysql -u hive -p -h hadoop1 在hadoop1节点上用'hive' 用户登录mysql
create database hive;
查看 show database;
其中,第一输入的是Linux用户hadoop 的口令,第二次输入的是Mysql 数据库用户hive的口令
6.Hive 的安装与配置
下载并安装,放在自己指定目录里,在主节点hadoop1上解压安装包:
将解压后的目录整体复制到一个目录里,与之前的类似
cp -r 源目录 目的目录
7.配置环境变量
使用root 用户编辑/etc/profile 文件,加入Hive 相关配置内容
export HIVE_HOME=/app/hadop/apache.......-bin 这里视情况而定
export CLASSPATH =.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HIVE_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HOME/bin:$JAVA_HOME/bin:$HOME/bin:$PIG_HOME/bin:$HIVE_HOME/bin
保存退出,执行source /etc/profile
su - hadoop
echo $HIVE_HOME
重新登录hadoop 用户,使得新配置环境变量hadoop 用户生效
8.配置JDBC
JDBC驱动mysql-connector-java-5.1.39.tar 放到一个目录下,解压后,将jar 文件复制到$HIVE_HOME/lib 目录下:
tar -zxvf mysql-connector-java-5.1.39.tar.gz
cd mysql-connector-java-5.1.39
ll 查看
cp mysql-connector-java-5.1.39-bin.jar $HIVE_HOME/lib
9.设置hive-env.sh
进入$HIVE_HOME/conf目录,从模板hive-env.sh.template 复制hive-env.sh 文件:
cd $HIVE_HOME/conf
查看是否存在
cp hive-env.sh.template hive-env.sh
编辑hive-env.sh,释放HADOOP_HOME和HIVE_CONF_DIR 两个变量得注释,并添加其他东西
10.设置hive-site.xml 配置文件
复制hive-default.xml.template 为hive-site.xml ,然后编辑该文件:
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
默认metastore 在本地,添加配置为非本地:
value 为本地 false 为非远程
另外,对于其他几个重要的属性值做相应的修改,具体为 336 480 495 884 909
1.hive.metastore.uris 值修改为thrift://hadoop1:9083
2.javax.jdo.option.ConnectionPassword 值修改为hive
3.javax.jdo.option.ConnectionURL 修改为 jdbc:mysql://hadoop:3306/hive?=createDatabaseIfNotExist=true
4.javax.jdo.option.ConnectionDriverName 值修改为com.mysql.jdbc.Driver
5.javax.job.option.ConnectionUserName 值修改为hive
11.启动metastore 和hiveserve
在使用Hive之前需要启动metastore 和hiveserver 服务。如果首次使用Hive ,则需要执行命令schematool -dbType mysql -
initSchema 进行初始化:
继续执行 hive --service metastore & 命令 & 后台启动命令
Ctrl +C ,继续执行hive --service hiveserver2 & 命令:
Ctrl+c 退出。通过jps 命令可以看到RunJar 进程运行在后台
接下来创建/home/hadoop/iotmp 目录:
mkdir -p /home/hadoop/iotmp
修改hive-site.xml 配置文件中的三个参数值:hive.exec.local.scratchdir, hive.download.resources.dir, hive.querylog.location.
三个参数在配置文件hive-site.xml 的行号 为 43 54 1439
Hive安装:远程模式
在本地模式的基础上修改hive-site.xml文件,设置hive.metastore.local为false,并指向远程mysql数据库即可
Hive shell
执行HiveQL(大约相当于SQL 92标准)
查看或临时设置Hive参数,只对当前会话有效
创建函数
导入jar包
JDBC/ODBC接口
用户可以像连接传统关系数据库一样使用JDBC或ODBC连接Hive
目前还不成熟
JDBC的具体连接过程
1.使用jdbc的方式连接Hive,首先做的事情就是需要启动hive的Thrift Server,否则连接 hive的时候会报connection refused的错误。 启动命令如下: hive --service hiveserver
2.新建java项目,然后将hive/lib下的所有jar包和hadoop的核心jar包hadoop-0.20.2core.jar添加到项目的类路径上
样板代码
这个确实看不懂。先搬过来吧
Web接口
Hive的数据放在哪儿
数据在HDFS的warehouse目录下,一个表对应一个子目录
桶与reduce
本地的/tmp目录存放日志和执行计划
Hive 简单验证
登录Hive ,在Hive 创建test 并查看该表信息
键入hive
再登录Mysql ,在TBLS 数据字典中查看新增test 的定义信息:
mysql -u hive -p -h hadoop1