一、建立在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) 进入mysql(mysql –uroot -proot)
5) 配置MySQL作为Hive metastore的存储
导包:windows中mysql-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 metastore是hive元数据的集中存放地
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 ;