Hive元数据说明
- 首先,Hive的元数据(模型)存储在Mysql的数据库中。由BDS、TBLS、SDS表维护。
- 其次,真正的数据将存储在{$hive.metastore.warehouse.dir}属性的目录下;
- 创建新的DataBase,将在{$hive.metastore.warehouse.dir}属性的目录下构建相对应的dbname.db文件夹。
- 新创建的Table,将在对应的dbname.db文件夹目录下
手动安装MySQL
获取mysql 5.7安装包:https://pan.baidu.com/s/1DF8sByQoduA0XtVdKm87Iw 提取码: fecw
-
验证Linux里是否安装MySQL
$>yum list installed | grep mysql
-
删除已经安装的MySQL【需要root权限】
$>yum –y remove mysql-libs.X86_64
或者 $>yum erase mysql-libs.x86_64 -
验证删除是否成功!
$>yum list installed | grep mysql
-
下载mysql二进制文件mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
这几步都是在root用户下,su root
-
将mysql压缩包拷贝到/usr/local/目录下:
$>cd /usr/local
$>cp /mnt/hgfs/share/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz . -
解压:
$>tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
并重命名mysql:
$>mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
删除原压缩包:
$>rm mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -
创建mysql用户组:
$>groupadd mysql
在创建的mysql用户组中创建一个新用户mysql:
$>useradd -r -g mysql mysql
进入目录:
$>cd /usr/local/mysql
修改目录的拥有者:
$>chown -R mysql .
$>chgrp -R mysql .
(点“.”代表的就是当前目录,选项-R表示递归当前目录及其子目录) -
创建数据库存放文件夹和相关文件并修改权限
$>mkdir -pv /data/mysqldb/3306/{logs,run,data}
【创建logs,run,data三个目录】
$>touch /data/mysqldb/3306/run/mysqld.pid
【run目录下创建mysqlid.pid文件】
$>touch /data/mysqldb/3306/logs/mysql-error.log
【logs目录下创建mysql-error.log文件】
$>chown -R mysql.mysql /data/mysqldb/
【修改新创建的目录当前用户和所属用户组】
$>chmod -R 777 /data/mysqldb
【修改目录和文件权限】
如果文件没创建的话,启动Mysql时将会报错 -
修改配置文件my.cnf,先创建该文件
$>cd /usr/local/mysql
【进入该目录下】
$>vim my.cnf
[client] port=3306 socket=/data/mysqldb/3306/mysql.sock default_character_set=utf8 [mysqld] user=mysql port=3306 socket=/data/mysqldb/3306/mysql.sock basedir=/usr/local/mysql datadir=/data/mysqldb/3306/data pid-file=/data/mysqldb/3306/run/mysqld.pid log-error=/data/mysqldb/3306/logs/mysql-error.log character_set_server=utf8 [mysql] socket=/data/mysqldb/3306/mysql.sock [mysqldump] socket=/data/mysqldb/3306/mysql.sock [mysqladmin] socket=/data/mysqldb/3306/mysql.sock
-
初始化mysql安装:
$>cd /usr/local/mysql
【先要进入到该目录下】
$>./bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize-insecure --user=mysql --datadir=/data/mysqldb/3306/data
【默认加载的文件、空密码初始化数据库、创建用户、数据文件存放的位置】
Mysql 5.7以后对密码安全有更友好的提示,
–initialize-insecure 以空密码初始化数据库
–initialize 随机生成一个密码并显示在屏幕中,第一次登录的时候必须提供此密码 -
把启动脚本放到开机初始化目录,添加开机启动mysql服务
$>cd /usr/local/mysql
【先进入到该目录】复制启动服务脚本至/etc/rc.d/init.d目录:
$>cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
【复制mysql.server并重命名为mysqld】$>
chkconfig --add mysqld
【添加mysqld到开机启动】
$>chkconfig mysqld on
【打开启动on】$>chkconfig --list mysqld【查看是否修改为开机启动】
$>chkconfig --del mysqld【如果想要关闭使用该命令】 -
启动mysql服务
- 启动命令: $>
sudo service mysqld start
【如果不是在root下加sudo,或者直接转到root用户下启动】 - 另一种启动方式:【使用启动脚本mysql.server】
$>cd /usr/local/mysql
$>sudo ./support-files/mysql.server start
- 查看mysql服务是否启动:
$>ps -ef |grep mysql
【看到mysql服务说明启动成功】
- 启动命令: $>
-
配置环境变量:
-
打开/etc/profile文件:
$>gedit /etc/profile
【需要root权限】 -
在文件的最后,追加两行:
export MYSQL_HOME=/usr/local/mysql export PATH=\$PATH:$MYSQL_HOME/bin
-
保存并关闭文件,执行以下命令使得环境变量生效:
$>source /etc/profile
-
-
修改root的密码,进行安全配置(设置密码)
执行命令语句:$>
mysql -u root -p
回车执行后,因为一开始没有设置密码,所以这里不需要输入密码,直接回车就登录。
执行成功后,控制台显示 mysql>,则表示已经进入mysql输入命令(注意分号):
mysql>set password for 'root'@'localhost'=password('admin');
【设置你的root用户密码,我设置为admin】
执行完毕,此时root用户的密码修改为admin。退出mysql:
mysql>quit
重新登录:
$>mysql -u root -p
输入密码admin即可登录root用户 -
创建Hive所需的账户和数据库
- root进入Mysql
$>mysql -u root -p
(回车,如果密码为空再次回车),进入到mysql命令行页面 - 创建hive数据库、为Hive建立mysql账户
mysql>create user 'hive' identified by '123456';
【创建hive用户和密码】
mysql>CREATE DATABASE hive;
【创建hive数据库】 - MySQL授权
mysql>GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY '123456';
【给hive用户授权】
mysql>flush privileges;
【刷新权限】
- root进入Mysql
-
配置Mysql服务远程可访问
- 连接MySQL 服务器:
$>mysql -u root -p
【输入管理员密码登陆】 - 使用如下命令,授权root 用户远程连接服务器:
mysql>grant all privileges on *.* to 'root'@'%' identified by "admin" with grant option;
【给root用户也授权】
mysql>flush privileges;
【再刷新一下权限】 - 退出mysql 连接:
mysql>exit;
- 连接MySQL 服务器:
整合Hive
-
修改【hive-site.xml】
<property> <name>hive.exec.local.scratchdir</name> <value>/home/dragon/tmp/hive/local</value> <description>Local scratch space for Hive jobs,修改为你本地的目录</description> </property> <property> <name>hive.exec.scratchdir</name> <description>HDFS上的跟目录</description> <value>/tmp/hive</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse,hive元数据存放地址</description> </property> <!-- 整合Hive和Mysql --> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database,连接外部数据库的用户名称</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>1234</value> <description>password to use against metastore database,用户密码</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property>
-
将Mysql的连接驱动包复制到Hive安装目录的lib中,完成MySQL与Hive连接
$>cd $HIVE_HOME/lib
$>cp /mnt/hgfs/share/mysql-connector-java-5.1.10.jar .
【根据自己的挂载盘写路径】 -
开启hadoop集群
$>zkServer.sh start
$>start-dfs.sh
$>start-yarn.sh
-
开启Hive客户端
$>hive