Hive
文章目录
有关Hive的所有操作在Hadoop集群已经打开的基础上进行。
先将Hive上传到
/home/software
下解压,使用
Hive-2.3.7
版本,将文件名称改为
Hive-2.3.7
,修改其中conf目录下的文件。
配置Hive环境
/etc/profile
- 输入
vim /etc/profile
- 在其中加入
export HIVE_HOME=/home/software/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
- 刷新环境变量
source /etc/profile
hive-env.sh
- 复制hive文件夹的conf目录下的
hive-env.sh.template
cp hive-env.sh.template hive-env.sh
- 修改其中的内容,添加以下内容
# 配置Java的环境变量
export JAVA_HOME=/home/software/jdk1.8
# Hadoop的位置
HADOOP_HOME=/home/software/hadoop-2.7.6
# Hive自身配置文件的目录
export HIVE_CONF_DIR=/home/software/hive-2.3.7/conf
# 存放jar包的目录
export HIVE_AUX_JARS_PATH=/home/software/hive-2.3.7/lib
hive-site.xml
- 在hive文件夹的
conf
目录下新建一个文件叫hive-site.xml
- 编辑文件,添加以下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<!-- 指定Hive的数据存储目录 -->
<name>hive.metastore.warehouse.dir</name>
<value>/home/software/hive-2.3.7/warehouse</value>
</property>
<property>
<!-- 配置mysql的连接字符串,连接到hadoop01,不存在即创建 -->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<!-- 配置mysql的用户名称 -->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<!-- mysql的登陆密码 -->
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<!-- mysql的连接驱动 -->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<!-- hive的慢查询日志 -->
<name>hive.querylog.location</name>
<value>hdfs://hadoop01:9000/user/hive/log</value>
</property>
<property>
<!-- 配置hive的server2的主机名 -->
<name>hive.server2.thrift.bind.host</name>
<value>192.168.92.130</value>
</property>
<property>
<!-- hive的server2的连接端口 -->
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<!-- hive元数据服务的uris,统一资源表示符 -->
<name>hive.metastore.uris</name>
<value>thrift://192.168.92.130:9083</value>
</property>
</configuration>
mysql-connector-java-5.1.38-bin.jar
- 上传jar包到hive目录下的lib目录中
配置mysql
- 卸载自带的
mysql
,先用
rpm -qa | grep mysql
命令可以发现,原本的centos6中已经存在一个 mysql-libs-5.1.73-7.el6.x86_64
,使用
rpm -ev --nodeps mysql-libs-5.1.73-7.el6.x86_64
将其卸载。
- 添加mysql用户组和mysql用户,分别运行以下两条命令
groupadd mysql
useradd -r -g mysql mysql
- 上传
MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
和MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
的rpm安装包到服务器上。 - 分别运行以下两个命令,安装mysql。
rpm -ivh MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
- 修改mysql的配置文件
vim /usr/my.cnf
把原来的东西全部注释,往其中添加
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
复制其中最后一段字符,即初始密码。
- 配置mysql自启动
cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
- 启动mysql
service mysqld start
- 查看mysql分配的初始密码,并改为自己所需要的密码。输入
vim /root/.mysql_secret
复制该文件内最后一些字符,为mysql分配的初始密码,复制下来。
输入
mysqladmin -uroot -p password 123456
其中的123456
就为想改的密码,输入完之后敲回车,会让你输入一个密码,这个密码就是之前在.mysql_secret
中复制的密码,直接粘贴,就能进入mysql。此时密码已经改成123456
- 配置mysql,让用户有权限访问mysql数据库,输入
mysql -uroot -p
再输入密码,进入数据库,输入以下
GRANT ALL PRIVILEGES ON *.* TO 'root'@'hadoop01' IDENTIFIED BY '123456' WITH GRANT OPTION;
其中第一个’root’@'hadoop01’是指,hadoop01主机下的root用户可以访问mysql数据库,后一个’123456’是指密码。
再输入以下
flush privileges;
刷新配置,退出mysql。
至此,mysql方面配置完成。
使用Hive
- 将Hive内置的Derby数据库改成mysql数据库使用。输入以下
schematool -initSchema -dbType mysql
- 开启Hive服务并在后台运行
hive --service metastore &
其中&
表示在后台运行,等它不再加载可以直接按ctrl+c
回到控制台。输入
jps
查看是否有RunJar
进程。
3. 输入
hive
进入hive操作。
4. 输入
show databases;
能正常显示,即配置成功。