基于mysql的Hive数据仓库的搭建

Hive(蜜蜂)

一、建立在hadoop上的数据仓库基础架构

二、用来警醒数据提取和转换和加载(ETL--Extract-Transform-Load

三、定义了简单的类SQL查询语言。SQL语句转移成M/R Job 然后在Hadoop上执行

数据存在数据仓库中,以主题存取。

四、Hive表其实就是HDFS的目录。

安装条件

Ø  安装在Hadoop集群上

Ø  安装

1)        解压(clear清屏)

2)        Vi ~/.bash_profile    中配置HIVE_HOME=/home

PATH=

Source

3)        Lib下面有个deby

4)        进入mysqlmysql  –uroot  -proot

5)        配置MySQL作为Hive metastore的存储

导包:windowsmysql-connector-java-5.1.28.jar导在集群hive/lib中(hive具备访问mysql的能力)

登录mysql,创建数据库hive

                   showdatabases

                   creatdatabase hive;(show databases确定)

use  hive  

6)        Vi hive-site.Xml——>hive/conf

7)        启动hive

8)        Mysql中查看hive启动时在MySQL中创建的hive中的内容。

Mysql>showtables

Mysql>Select  *  from VERSION;(注:表名大小写必须与列表中的一致)

9)        Hive中创建数据库和数据表

  创建数据库

create database if not exists school

  创建数据表

use school;

create external table if not exists student (stuid INT,stunameSTRING)

row format delimited

fields terminated by '\t'

stored as textfile

location '/school/201606'

  在集群中执行Hdfs dfs –ls /查看,发现以创建好 /school/201606

  此时目录下没有数据(数据表201606是空的)无法insert

可直接把文件上传到/school/201606 中(hdfs dfs –put wenjain /school/201606

文件格式上述依规定:一行一行,列之间用制表位(\t)隔开

  Select * from student;(查看灌库是否成功)

10)    实验wordcount

Select stuname,count(*) from student group by stuname;

 

Ø  Metastore(元数据)---------其实是数据仓库中的一个数据库(内嵌的derby

l  metastorehive元数据的集中存放地

l  Derby缺点:一次只能够打开一个会话

l  使用mysql作为hive的外置存储引擎,存放metastore,供多用户使用


Linux yum 安装 MySQL(转:个人学习使用,如侵权请联系我,谢谢)

1、安装查看有没有安装过: 

 yum list installed mysql*

 rpm -qa | grep mysql* 

查看有没有安装包:

 yum list mysql* 

安装mysql客户端:

 yum install mysql 

安装mysql 服务器端: 

 yum install mysql-server yum 

2、启动&&停止 数据库字符集设置 

 mysql配置文件/etc/my.cnf中加入default-character-set=utf8 

启动mysql服务: service mysqld start或者/etc/init.d/mysqld start

开机启动:

添加开机启动:chkconfig --add mysqld;

开机启动:chkconfig mysqld on;

查看开机启动设置是否成功chkconfig --list | grep mysql* mysqld 0:关闭1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭停止: 

service mysqld stop

3、登录 创建root管理员: 

 mysqladmin -u root password 123456 

 登录: mysql -u root -p输入密码即可。忘记密码:

service mysqld stop;

mysqld_safe --user=root --skip-grant-tables;

这一步骤执行的时候不会出现新的命令行,你需要重新打开一个窗口执行下面的命令

mysql -u root;

use mysql ;

update user set password=password("123456") whereuser="root";

flush privileges; 

创建hadoop用户

mysql>grantall on *.* to hadoop@'%' identified by 'hadoop';

mysql>grantall on *.* to hadoop@'localhost' identified by 'hadoop';

mysql>grantall on *.* to hadoop@'master' identified by 'hadoop';

mysql>flush privileges;

 

4、远程访问 开放防火墙的端口号mysql

增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。

5、Linux MySQL的几个重要目录 

 数据库目录 /var/lib/mysql/

配置文件 /usr/share /mysql(mysql.server命令及配置文件)

相关命令 /usr/bin(mysqladmin mysqldump等命令)

启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录)

 

6、删除 mysql 数据库 

如果使用的是 yum 安装的 mysql,需要删除的话,就使用如下命令:

yum -y remove mysql*

然后将 /var/lib/mysql文件夹下的所有文件都删除干净

最后再重新执行上面的安装步骤。

 

7.授权用户从远程登录

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmware;

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

 

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

 

【下面这一句一定要执行,否则还是无法登陆】

mysql>flush privileges ;

 

如果用户无法从本地登陆,这个时候就执行如下

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost.localdomain' IDENTIFIEDBY '123456' WITH GRANT OPTION;

别忘了加上如下的语句

flush privileges ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值