4 Hive本地模式的安装
操作系统为Ubuntu14.04,需要安装并启动Hadoop及Hbase。
4.1 安装MySQL// 切换root用户
$ su root
// 检查mysql是否安装
# netstat -tap | grep mysql
// 在线安装mysql
# apt-get install mysql-server mysql-client
// 启动mysql
# start mysql
// 设置开机自启动
# /etc/init.d/mysql start
// 设置root用户密码
# mysqladmin -u root password 'root'
// 使用客户端登录mysql
$ mysql -u root -p
// 创建hive用户,密码为hive
> create user 'hive' identified by 'hive';
// 创建数据库hivemeta,用于存放hive元数据
> create database hivemeta;
// 将hivemeta数据库的所有权限赋予hive用户,并允许远程访问
> grant all privileges on hivemeta.* to 'hive'@'%' identified by 'hive';
> flush privileges;
// 可查看用户hive的权限情况
> use mysql;
> select host, user, password from user;
4.2 安装Hive// 解压安装包
$ tar -xvf hive-1.1.0-cdh5.7.1.tar.gz
// 进入hive的配置目录
$ cd hive-1.1.0-cdh5.7.1/conf/
// 修改hive-env.sh文件
$ cp hive-env.sh.template hive-env.sh
$ vim hive-env.sh
HADOOP_HOME=/home/developer/app/hadoop-2.6.0-cdh5.7.1
// 创建hive-site.xml文件并配置
$ vimhive-site.xml
<configuration>
<!-- 指定HDFS中的hive仓库地址 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
</property>
<!-- 该属性为空表示嵌入模式或本地模式,否则为远程模式 -->
<property>
<name>hive.metastore.uris</name>
<value></value>
</property>
<!-- 指定mysql的连接 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivemeta?createDatabaseIfNotExist=true</value>
</property>
<!-- 指定驱动类 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 指定用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!-- 指定密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
</configuration>
// 修改hive-log4j.properties指定日志输出路径
$ cp hive-log4j.properties.template hive-log4j.properties
$ vim hive-log4j.properties
hive.root.logger=info,DRFA
hive.log.dir=/home/developer/app/hive-1.1.0-cdh5.7.1/logs
// 在下载JDBC Driver for MySQL并复制到hive的lib目录中
$ cp mysql-connector-java-5.1.39-bin.jar/home/developer/app/hive-1.1.0-cdh5.7.1/lib/
4.3 配置环境变量$ cd ~
$ vim.bashrc
export HIVE_HOME=/home/developer/app/hive-1.1.0-cdh5.7.1
export PATH=$PATH:$HIVE_HOME/bin
$ source.bashrc
4.4 使用Hive Cli// 启动hive的cli服务
$ hive
// 测试
> show databases;
4.5 使用Beeline// 后台启动hiveserver2
$nohup hive --service hiveserver2 &
注:beeline依赖hiveserver2提供的thirft服务,必须启动,其默认端口为10000
// 使用beeline
$beeline
// 连接hive
> !connectjdbc:hive2://localhost:10000
注:需要通过hadoop用户登录,否则没有hdfs操作权限
// 测试
> show databases;
// 启动hive的cli服务
$ hive
// 创建表
> create table user(id string,name string,age string) row format delimited fields terminated by '\t';
// 查看测试数据
$ cat data.txt
// 将本地数据导入hive
> load data local inpath '/home/developer/data.txt' overwrite into table user;
// 查看导入的数据
> select * from user;
// 查看数据条数
> select count(*) from user;