CentOS6安装各类大数据软件 第一章:各个软件版本介绍html
CentOS6安装各类大数据软件 第二章:Linux各个软件启动命令java
CentOS6安装各类大数据软件 第三章:Linux基础软件的安装node
CentOS6安装各类大数据软件 第四章:Hadoop分布式集群配置mysql
CentOS6安装各类大数据软件 第五章:Kafka集群的配置sql
CentOS6安装各类大数据软件 第六章:HBase分布式集群的配置shell
CentOS6安装各类大数据软件 第七章:Flume安装与配置数据库
CentOS6安装各类大数据软件 第八章:Hive安装和配置apache
CentOS6安装各类大数据软件 第九章:Hue大数据可视化工具安装和配置vim
CentOS6安装各类大数据软件 第十章:Spark集群安装和部署浏览器
hive是有Facebook开源用于解决海量结构化日志的数据统计,Hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射成一张表,并提供类SQL查询功能.Hive是构建在Hadoop之上的数据仓库,使用HQL做为查询接口,使用HDFS进行存储,使用MapReduce进行计算.其本质是将HQL转化成MapReduce程序,灵活性和扩展性比较好,支持UDF,自定义存储格式等,适合作离线数据处理。
Ø Client:用户接口
n CLI(hive shell)
n JDBC/ODBC(Java访问hive)
n WEBUI(浏览器访问hive)
Ø Meta store:元数据
n 元数据主要包括,表名,表所属的数据库(默认是default),表的拥有者,列/分区字段,表的类型(是不是外部表),表的数据所在目录等,默认存储在自带的derby数据库中,推荐使用采用MySQL存储Metastore;
Ø Hadoop
n 使用HDFS进行存储,使用MapReduce进行计算
Ø Driver:驱动器(包含:解析器,编译器,优化器,执行器)
n 解析器:将SQL字符串转换成抽象语法树AST,这一步,通常都是使用第三方工具库完成,好比antlr,对AST进行语法分析,好比表是否存在,字段是否存在,SQL语义是否有误(好比select语句中被断定为聚合的字段在group by中是否有出现)
n 编译器:将AST编译生成逻辑执行计划
n 优化器:对逻辑执行计划进行优化
n 执行器:把逻辑执行计划转换成能够运行的物理计划,对于hive来讲,就是MR
Ø 操做接口采用类SQL语法,提供快速开发的能力(简单,容易上手)
Ø 避免了去写MapReduce,减小开发人员的学习成本
Ø 统一的元数据管理,能够与impala/spark等共享数据
Ø 易扩展(HDFS+MapReduce:能够扩展集群规模,支持自定义函数)
Ø 数据的离线处理:好比:日志分析,海量结构化数据离线分析
Ø Hive的执行延迟比较高,所以hive经常使用于数据分析的,对实时性要求不高的场合
Ø Hive的优点在于处理大数据,对于处理小数据没有优点,所以Hive的执行延迟比较高
Apache官网:https://archive.apache.org/dist/
Cloudera版本:http://archive-primary.cloudera.com/cdh5/cdh/5/
这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至spark-node04.ouyang.com节点的/opt/softwares/目录下
解压即安装:tar -zxvf apache-hive-0.13.1-bin.tar.gz -C /opt/modules/
步骤一:重命名该文件
步骤二:建立存储hive日志的目录
步骤三:配置hive的日志信息的的日志目录(大概20行左右)
hive.log.dir=/export/logs/hive
# 步骤一:重命名该文件
# 步骤二:修改配置文件
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/opt/modules/hadoop-2.7.4
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/modules/hive-0.13.1/conf
export HIVE_HOME=/export/servers/hive
export PATH=${HIVE_HOME}/bin:$PATH
# 步骤一:启动HDFS服务
bin/hadoop-daemon.sh start namenode
bin/hadoop-daemon.sh start datanode
# 步骤二:建立hive相关目录
bin/hdfs dfs -mkdir -p /user/root/warehouse
# 步骤三:给用户组增长一个写的权限
bin/hdfs dfs -chmod g+w /user/root/warehouse
# 步骤四:启动hive服务
./bin/hive
# 步骤五:进行hive的基本操做(跟MySQL操做基本相似)
show databases;
Hive默认是将元数据存储在本地,可是这样的话,就会致使元数据不一样步.不利于咱们之后的操做,因此,咱们通常状况下都是使用MySQL做为元数据库,用来存放元数据。
首先须要在hive安装目录下的conf目录下建立一个文件hive-site.xml,也能够将hive-default.xml.template这个文件修改成hive-site.xml.在这个文件中主要配置链接数据库的一些信息。
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--数据库的链接--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node01.ouyang.com:3306/hive?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>root</value> </property> <!--数据库密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> </configuration>
#登录mysql数据库服务器
mysql -uroot -p
#切换到mysql数据库
use mysql
#查看user表中的host,user,password三个字段
select user,host,password from user;
#更新用户信息
update user set host = '%' where user = 'root' and host = 'localhost';
#删除其余用户
delete from user where password = '';
#刷新权限修改
flush privileges;
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
bin/hive
create table student(id Int,name String) row format delimited fields terminated by ' ';
vim /opt/datas/student.txt
1 zhangsan
2 lisi
3 wangwu
4 tingting
5 nana
6 haha
# 在hive的窗口下执行以下命令:
load data local inpath '/opt/datas/student.txt' into table student
将“hive_jdbc_2.6.2.1002.zip”进行解压,以后进入解压的目录,再解压“ClouderaHiveJDBC4-2.6.2.1002.zip”,里面有一个文件“HiveJDBC4.jar”这个文件就是后续在配置时候须要使用到的。
解压“sqldeveloper-17.2.0.188.1159-no-jre.zip”;以后进入解压处理的目录双击“sqldeveloper.exe”文件;在弹出的视图中指定jdk1.8的路径便可。
配置首选项,将hive_jdbc的jar包配置进去:
<!--hive经过zookeeper去链接hbase--> <!-- 整合zookeeper --> <property> <name>hbase.zookeeper.quorum</name> <value>spark-node04.ouyang.com,spark-node05.ouyang.com,spark-node06.ouyang.com</value> </property> <!—在命令行启动hive时,会显示当前数据库和列名等选项 --> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property>
将HBase中9个jar包拷贝到hive/lib目录下,由于hive须要用到HBase,因此要导入,若是是CDH版,已经集成好不须要导包。
# 步骤一:在/etc/profile中配置好HBase和Hive的环境变量
export HIVE_HOME=/export/servers/hive
export HBASE_HOME=/export/servers/hbase
# 步骤二:建立软连接(请注意包的版本)
ln -s $HBASE_HOME/lib/hbase-server-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-server-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/hbase-client-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-client-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/hbase-it-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-it-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/htrace-core-2.04.jar $HIVE_HOME/lib/htrace-core-2.04.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-hadoop-compat-0.98.6-cdh5.3.0.jar
ln -s $HBASE_HOME/lib/high-scale-lib-1.1.1.jar $HIVE_HOME/lib/high-scale-lib-1.1.1.jar
ln -s $HBASE_HOME/lib/hbase-common-0.98.6-cdh5.3.0.jar $HIVE_HOME/lib/hbase-common-0.98.6-cdh5.3.0.jar
--建立hbase的外部表
--HBase中的表能够在Hive中进行操做,建立的表的列与HBase中表的列的对应关系以下设置,能够在Hive中进行表的操做,会更新到HBase中
CREATE EXTERNAL TABLE access(id string,datatime string,userid string,searchname string,retorder string,cliorder string,cliurl string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:datatime,info:userid,info:searchname,info:retorder,info:cliorder,info:cliurl") TBLPROPERTIES ("hbase.table.name" = "access");
在Hive中和在HBase中查看的条数会有一点差别,但获取的日志条数为海量数据,该差别能够忽略不计。
#启动hive的server2服务
bin/hiveserver2
#启动beeline服务
bin/beeline
#链接hiveserver2服务
!connect jdbc:hive2://spark-node04.ouyang.com:10000
#查看全部的表
show tables;
#查看前10名
select * from access limit 10;
#查看总的记录树
select count(*) from access;
vim starthiveserver2.sh ssh node01.ouyang.com "source /etc/profile;nohup sh ${HIVE_HOME}/bin/hiveserver2 >/dev/null 2>&1 &" # 执行该脚本就会后台启动hive服务,可使用beeline和sql seveloper链接hive