Apache Tez Engine是一个可扩展的框架,用于构建高性能批处理和交互式数据处理。它由YARN在Hadoop中 调度。Tez通过提高处理速度和保持MapReduce扩展到数PB数据的能力来改进MapReduce job。
通过设置hiveexecutionengine 为tez:可以在环境中启用Tez引擎:
set hiveexecutionengine=tez;
2、使用向量化
向量化通过在单个 *** 作中获取 1024 行而不是 每次只获取单行来改善 scans, aggregations, filters 和 join 这类 *** 作的性能。
我们可以通过执行以下命令在环境中启用向量化:
set hivevectorizedexecutionenabled=true;
set hivevectorizedexecutionreduceenabled=true;
3、使用ORCFile
Hive 支持 ORCfile,这是一种新的表存储格式,在读取,写入和处理数据时,ORCFile格式优于Hive文件格式,它通过 predicate push-down, compression 等技术来提高查询速度。
在 HIVE 表中使用 ORCFile,将有益于获得 HIVE 快速响应的查询。
ORCFile 格式通过对原始数据存储量压缩75%,提供了高效的存储 Hive 数据的方法。
举例,考虑两个大表 A 和 B(存储为 TextFIle,这里没有指定一些列),使用一个简单的查询,如:
SELECT AcustomerID,
Aname,
Aage,
Aaddress
JOIN Brole,
Bdepartment,
Bsalary ON AcustomerID=BcustomerID;
由于表 A 和表 B 都存储为 TextFile,因此执行此查询可能需要很长时间。
将这些表存储格式转换为 ORCFile 格式通常会明显减少查询时间:
CREATE TABLE A_ORC (
customerID int,
name string,
age int,
address string
) STORED AS ORC tblproperties (“orccompress" = “SNAPPY”)
;
INSERT INTO TABLE A_ORC
SELECT
FROM A
;
CREATE TABLE B_ORC (
customerID int,
ROLE string,
salary float,
department string
) STORED AS ORC tblproperties (“orccompress" = “SNAPPY”)
;
INSERT INTO TABLE B_ORC
SELECT
FROM B
;
SELECT A_ORCcustomerID,
A_ORCname,
A_ORCage,
A_ORCaddress
JOIN B_ORCrole,
B_ORCdepartment,
B_ORCsalary ON A_ORCcustomerID=B_ORCcustomerID
;
ORC 支持压缩存储(使用 ZLIB 或如上所示使用 SNAPPY),但也支持不压缩存储。
4、使用分区
通过分区,数据存储在 HDFS 上的单独单个文件夹中。Hive 将查询分区数据集,而不是 扫描表的所有数据集。
创建临时表并将数据加载到临时表中
CREATE TABLE Employee_Temp(
EmloyeeID int,
EmployeeName Varchar(100),
Address Varchar(100),
STATE Varchar(100),
City Varchar(100),
Zipcode Varchar(100)
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
LOAD DATA INPATH '/home/hadoop/hive' INTO TABLE Employee_Temp;
创建分区表
Create Table Employee_Part(
EmloyeeID int,
EmployeeName Varchar(100),
Address Varchar(100),
State Varchar(100),
Zipcode Varchar(100))
PARTITIONED BY (City Varchar(100))
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
启用动态分区的命令
SET hiveexecdynamicpartition = true;
SET hiveexecdynamicpartitionmode = nonstrict;
从临时表导入数据到分区表
INSERT Overwrite TABLE Employee_Part Partition(City)
SELECT EmployeeID,
EmployeeName,
Address,
STATE,
City,
Zipcode
FROM Emloyee_Temp;
5、使用 分桶
桶表介绍:>hive 013以后自带支持。
apache hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管理,它本身是建立在apachehadoop只上,主要提供以下功能,它提供了一系列的工具,可用来对数据进行提取/转化/加载(etl),是一种可以存储、查询和分析存储在hdfs(或者hbase)中的大规模数据的机制,查询是通过mapreduce来完成的(并不是所有的查询都需要mapreduce来完成,比如select from xxx就不需要,在hive011对类似select a,b from。 *** 作系统集群配置
搭建3节点完全分布式集群,即1个nameNode,2个dataNode,分别如下:
1、创建虚拟机CentOS7并安装配置JDK,克隆两台
2、修改主机名:master、slave1、slave2
3、设置静态:102211011、102211012、102211013
4、关闭防火墙
5、免密设置
每台节点生成公钥:
master中将公钥id_dsapub添加进keys,实现master免密:
将master中公钥分别添加到slave1及slave2的keys中,实现master对slave1及slave2节点免密:
master执行 如下命令,进行验证
6、组件所用版本
安装路径:mkdir /usr/local/hadoop/hadoop-273/bin/
1、解压hadoop
2、 执行命令检查hadoop是否可用
查看是否显示hadoop版本信息Hadoop 273 显示即正常
3、创建所需目录
4、设置hadoop环境变量
任意目录输入 hado,然后按Tab,如果自动补全为hadoop,则说明环境变量配正确
同步到其他节点上
5、修改hadoop配置文件
—hadoop-envsh
—core-sitexml
—hdfs-sitexml
—mapred-sitexml
—yarn-envsh
—yarn-sitexml
— slaves
将localhost删掉,加入如下内容,即dataNode节点的hostname
6、 以上配置同步到slave1,slave2中
7、启动hadoop
— 首次启动需要先在 master 节点进行 NameNode 的格式化:
— 在master机器上,进入hadoop的sbin目录
8、查看是否启动成功
—jps 查看当前java的进程
输入jps 查看当前java的进程,列出当前java进程的PID和Java主类名,nameNode节点除了JPS,有3个进程
在slave1和slave2节点上分别输入 jps 查看进程如下,说明配置成功
— 查看运行状况
在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况
1921681110:50070
1921681110:8088
zookeeper集群搭建要至少3个节点(master,slave1, slave2),所以三台服务器都要部署zookeeper
1、解压到安装目录
2、添加环境变量
同步到其他节点上
3、 修改配置文件
/usr/local/hadoop/zookeeper-3410/conf
删除原有内容
4 、根据以上配置 创建zookeeper的数据文件和日志存放目录
同步到其它节点
5 、在三台zookeeper的/usr/local/storage/zookeeper/data目录下分别创建并编辑myid
—创建
—编辑
6 、将以上配置同步到其他hadoop节点
7、启动zookeeper
如果zookeeper集群还没有启动的话, 首先把各个zookeeper起来。最好三个节点上同时启动
(1个leader,2个follower)
输入jps,会显示启动进程:QuorumPeerMain
前提安装mysql
1、解压到安装目录
2、 添加环境变量
同步到其他节点上
3 、配置文件修改
—hive-envsh
—hive-sitexml
4、 hive lib中添加所需jar包
—添加mysql驱动
以下可不配置
—从hbase/lib下复制必要jar包
—同步hive和hadoop的jline版本
查看版本
若有低版本则删除
例如:jline 09 rm jline-0994jar
—复制jdk的toolsjar
5 、在配置的mysql中创建hive库
需外界可连接上
6 、hdfs创建存储数据的目录
7、 启动hive
hive 远程服务 (端口号10000) 启动方式[metastore和hiveserver2在同一台上启动即可]
hive 命令行模式
或者输入
查看进程为:2个RunJar
注意:可以在任意一台服务器上启动hive,都可以。
8 、查看启动进程
通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode进程
Master上:
在 Slave 节点可以看到 DataNode 和 NodeManager 进程
Slave上:
程序启动成功后可以在任意一台启动hive
可以在启动MR-JobHistory服务,
Hadoop2 MR-JobHistory服务介绍
1)MR-JobHistory服务目标
主要是向用户提供历史的mapred Job 查询
详细解释:
a)在运行MR Job时,MR 的 ApplicationMaster会根据mapred-sitexml配置文件中的配置,将MR Job的job history信息保存到指定的hdfs路径(首先保存到临时目录,然后mv到最终目录)
b)如果在yarn-sitexml中,没有配置nodemanage的LogAggregation功能,则historyserver无法提供mr日志明细查询的功能(在提交mr job时,yarn和mapred的配置都是必须的)
c)historyserver向外提供两个接口,web接口可以提供jobhistory和明细日志查询的功能,而restApi只提供jobhistory查询的功能
1、 解压到安装目录
2、添加环境变量
同步到其他节点上
3、配置文件修改
/usr/local/hadoop/hbase-131/conf
—regionservers 文件
—hbase-envsh
—hbase-sitexml
4、创建hbase-sitexml配置文件中的hbase目录
同步软件到其他节点
5、同步上述配置到其他节点
6、启动Hbase
—启动
—验证安装成功
—查看进程为:HMaster,HRegionServer
主节点:HMaster,HRegionServer
从节点:HRegionServer
—通过web UI访问hbase状态
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)