文章目录
搭建集群的模式有三种
Hive的原理详解
1. 源码包下载及解压
http://mirror.bit.edu.cn/apache/hive/
2. 集群的环境
… | Active NameNode | Standby NameNode | DataNode | Zookeeper | ZKFC | JournalNode | ResourceManage | NodeManager |
---|---|---|---|---|---|---|---|---|
node01 | √ | - | - | - | √ | √ | √ | |
node02 | - | √ | √ | √ | √ | √ | √ | √ |
node03 | - | - | √ | √ | - | √ | √ | |
node04 | - | - | √ | √ | - | - | √ |
3. MySQL服务端的设置
3.1 安装Mysql服务端
Yum install mysql-server -y
3.2 开启服务
service mysqld start (开启服务)
chkconfig mysqld on (开机启动)
3.3 进入MySQL修改权限
- 刚下载下来的MySQL是没有密码的
mysql -uroot
登陆 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
flush privileges;
修改权限后,刷新权限- 添加hive用户
CREATE USER 'hive'@'%' IDENTIFIED BY '123';
grant all privileges on hive_meta.* to hive@"%" identified by '123';flush privileges;
- 删除多余会对权限造成影响的用户
3.4 需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下
mysql-connector-java-5.1.32-bin.jar
4. 修改hive-site.xml文件
需要注意,刚开始解压的包是没有hive-site.xml文件的,需要把hive-site.xml.template文件复制一份为hive-site.xml.
此文件在/conf文件夹中
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_remote?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>password</value>
</property>
</configuration>
5. 启动Hive
$HIVE_HOME/bin/hive
6. 注意的地方
根据配置文件的内容,我们的元数据是存在MySQL的hive_remote数据库中的,我们使用hive用户登陆MySQL,使用hive创建hive_remote数据库,但是我们给hive用户的权限只是hive_remote数据库内的表的所有权限,hive并没有权限建立hive_remote数据库,配置文件中说如果没有hive_remote数据库,则建立,hive没权限,所以会出错。所以需要提前创建好hive_remote数据库.