- Hadoop 3.1.2 ,参看博客:搭建Hadoop3.1.2伪分布方式环境
- Hive3.1.1
- 第一步:把apache-hive-3.1.1-bin.tar.gz上传到linux的/usr/local/src目录下
- 第二步:解压apache-hive-3.1.1-bin.tar.gz到/usr/local/目录下面
$ tar -zxvf apache-hive-3.1.1-bin.tar.gz -C /usr/local/
- 第三步:配置环境变量,编辑/etc/profile文件
HIVE_HOME=/usr/local/apache-hive-3.1.1-bin PATH= P A T H : PATH: PATH:HIVE_HOME/bin
- 第四步:修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh
$ mv hive-env.sh.template hive-env.sh
- 第五步:配置hive-env.sh文件,在该文件的最后面增加下面3行内容
HADOOP_HOME=/usr/local/hadoop-2.9.1 export HIVE_CONF_DIR=/usr/local/hive-2.3.3/conf export HIVE_AUX_JARS_PATH=/usr/local/hive-2.3.3/lib
查看hive/lib/目录下是否有MySQL的驱动,如果没有拷贝一份mysql-connector-java-5.1.27.tar.gz驱动包到这个目录
javax.jdo.option.ConnectionURL
jdbc:mysql://hcmaster:3306/db_hive?createDatabaseIfNotExist=true&characterEncoding=utf-8&useSSL=false
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root
hive.metastore.warehouse.dir
/user/hive/warehouse
hive.exec.scratchdir
/tmp/hive
初始化hive的元数据(表结构)到mysql中
- 先启动MySQL
$ mysql -uroot root
- 在msyql中创建存放hive信息的数据库
mysql>create database db_hive ;
- 初始化hive的元数据(表结构)到mysql中
$>cd /soft/hive/bin $>schematool -dbType mysql -initSchema
修改hive-default.xml,在其中做如下操作: 由于在 hive-site.xml 中有如下默认配置
hive.metastore.warehouse.dir
/user/hive/warehouse
location of default database for the warehouse
hive.exec.scratchdir
/tmp/hive
HDFS root scratch dir for Hive jobs which gets created with write all (733) permission.
所以在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写:
$ bin/hadoop fs -mkdir /tmp $ bin/hadoop fs -mkdir -p /user/hive/warehouse $ bin/hadoop fs -chmod g+w /tmp $ bin/hadoop fs -chmod g+w /user/hive/warehouse
在hive-site.xml文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。
hive.cli.print.header
true
hive.cli.print.current.db
true
之前查询数据,结果: 再次查询数据,结果:
修改hive的log存放日志到hive安装目录下的logs文件夹中 修改conf/hive-log4j2.properties.template的名称为hive-log4j2.properties,在hive-log4j.properties文件中修改log存放位置: