1、安装准备
- 确定hadoop、zookeeper、jdk已经搭配完整
- 安装节点:hive相当于hadoop的另一种客户端
- 默认的元数据库derby
- 使用mysql作为元数据库
- 1、检查以前是否装过 MySQL
- rpm -qa|grep -i mysql 有的话就删除掉
- rpm -e --nodeps 加文件名
- 2、删除老版本 mysql 的开发头文件和库 rm -fr /usr/lib/mysql #数据库目录 rm -fr /usr/include/mysql rm -f /etc/my.cnf rm -fr /var/lib/mysql 注意:卸载后/var/lib/mysql 中的数据及/etc/my.cnf 不会删除,确定没用后就手工删除
- 没有安装包的话,可以使用yum源进行安装
1)配置yum源
在/mnt创建目录cdrom
mkdir cdrom
挂载
sudo mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/
配置本地的yum源
sudo rename .repo .repo.bak *
sudo cp CentOS-Media.repo.bak CentOS-Media.repo
sudo yum clean all
yum repolist
2)安装mysql
sudo yum install -y mysql-server
sudo service mysqld start
3)修改mysql的用户名 密码
use mysql;
delete from user where user='';
update user set host='%' where host='localhost';
update user set password=PASSWORD('123456') where user='root';
flush privileges;
退出mysql
重启mysql服务
sudo service mysqld restart
建议mysql和hive尽量装在一个节点上
正式安装
安装准备:
1)软件
hadoop
zookeeper
jdk
2)安装节点
hive相当于hadoop的另一种客户端
一个节点 hadoop03
3)版本
hive 2.3.2
1)默认的元数据库derby
1)上传
2)解压
tar -xvzf apache-hive-2.3.2-bin.tar.gz
3)配置环境变量
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
4)元数据初始化
schematool -dbType derby -initSchema
schemaTool completed 成功标志
derby.log 日志文件 metastore_db derby数据库
报错:
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
元数据库没有初始化
5)启动
保证hadoop是启动的 才能启动hive
否则报错:
Caused by: java.net.ConnectException: Connection refused
正常启动
hive> hql
安装成功后 切换了目录 执行hql
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 元数据库没有初始化
hive使用元数据库是derby数据库 只能识别当前目录下的元数据库 一旦切换目录之后 原来目录下的元数据库访问不到的
derby 是单用户模式 不适用于生产
2)使用mysql作为元数据库
建议:mysql和hive尽量装在一个节点
1)上传
2)解压
3)修改环境变量
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
4)修改hive的配置文件
touch hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_bd1906?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 配置的mysql的连接url 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop03 为 localhost -->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>mysql的驱动类</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>mysql用户名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>mysql密码</description>
</property>
</configuration>
mysql中 :
核心 库 mysql 系统库 权限信息 用户信息
mysql.user 核心用户表
Host 主机名 mysql url 主机名 mysql://localhost:3306
User 用户名 root
Password 对应的密码
| user | host | password |
+------+-----------+-------------------------------------------+
| root | hadoop03 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
含义:用户从hadoop03 以root用户名连接 密码 123456
5)将mysql的驱动包 放在hive的安装目录的lib下
6)将hadoop的core-site.xml hdfs-site.xml 拷贝到hive的安装目录的 conf下
cp core-site.xml hdfs-site.xml /home/hadoop/apps/apache-hive-2.3.2-bin/conf/
7)元数据库初始化
schematool -dbType mysql -initSchema
schemaTool completed
8)启动
hive