本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Hive用途
1. Hive为了解决MapReduce过于复杂而出现的技术
2. 可以利用sql语句操控HDFS数据
3. 底层依然是MapReduce
使用方式
- 命令行界面
- JDBC\ODBC
- webui(废弃了,其他的代替了)
安装方式
- 编译安装,类似exe
- rpm包安装
- YARM安装
- 解压安装
运行模式种类
- 本地模式:链接本地Derby(一般不用)
- 连接模式:链接远程mysql(自己学习用)
- 远程服务器模式:用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库(企业用)
MySQL安装步骤
MySQL在tongyuzhe1
HIVE在tongyuzhe2
安装mysql
#安装MySQL
#不能直接写mysql,否则只安装客户端了
yum install mysql-server
#启动服务
service mysqld start
#将mysql服务设置成开机启动
chkconfig mysqld on
修改mysql访问权限以及密码
#进入mysql系统表
use mysql;
#查看字段
desc user;
select host,user,password from user;
#插入权限数据
#'%'是包含本机访问的
grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
#删除本机其他的用户访问权限(可以执行也可以不执行)
delete from user where host!='%';
#重启mysql服务
service mysqld restart;
#刷新权限
flush privileges;
问题
如果提示/var/lib/mysql/mysql.sock(2)
因为mysql的sock链接不上,说明服务没启动
Hive安装步骤
解压安装
修改环境变量
vi /etc/profile
export HIVE_HOME=/opt/bigdata/hive-2.3.7
#再将HIVE_HOME/bin目录添加到PATH路径中
:$HIVE_HOME/bin
source /etc/profile
修改配置文件
<!--进入到/opt/bigdata/hive-2.3.7/conf-->
<!--修改文件名称,必须修改,文件名称必须是hive-site.xml-->
mv hive-default.xml.template hive-site.xml
<!--
增加配置,进入到文件之后,将文件原有的<configuration>配置删除
将光标移动到<configuration>下一行
在vi的末行模式中输入以下命令(:.,$-1d)
-->
<property>
<!--HDFS中的目录位置-->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--是数据库名-->
<value>jdbc:mysql://tongyuzhe1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<!--MySQL驱动-->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<!--数据库用户名-->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<!--数据库密码-->
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
添加MySQL的驱动包拷贝到hive的lib目录
执行初始化元数据创建数据库的步骤
#2.1版本之后需要
#hive所在服务器执行
schematool -dbType mysql -initSchema
简单使用
#对应服务器命令行输入hive
#hive查看库详细信息
desc formatted tb;
#命令行启动hive情况下,hive服务器jps中应该会有RunJar