博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
E-MapReduce集群搭建HAWQ实践
阅读量:6071 次
发布时间:2019-06-20

本文共 3757 字,大约阅读时间需要 12 分钟。

HAWQ是一种基于HDFS的MPP(Massively Parallel Processing) SQL引擎,支持标准SQL/事务处理,性能比原生Hive快几百倍。

本文介绍在E-MapReduce集群上面如何搭建HAWQ。

零、 部署模式

HAWQ有多种部署模式

  • 非HA

    • standalone
    • yarn
  • HA

    • standalone
    • yarn

本文以HA-yarn模式为例,其它部署模式配置方面相对简单点,可以参考文档。

一、创建集群

在E-MapReduce产品页创建集群,本例使用HA集群。

5台机器:

master:emr-header-1    standby:emr-header-2    slaves:      emr-worker-1       emr-worker-2      emr-worker-3

二、部署HAWQ

1. 添加gpadmin账号

在集群的所有机器上面操作:

> sudo su hadoop  > sudo useradd -G hadoop gpadmin  > sudo passwd gpadmin  # 设置一个密码  > sudo vi /etc/sudoers    末尾添加 gpadmin    ALL=(ALL)       NOPASSWD: ALL  并保存

2. 安装hawq

master节点

  • 安装hawq

    > sudo su root   > wget http://emr-agent-pack.oss-cn-hangzhou.aliyuncs.com/hawq/hawq-2.0.0.0-22126.x86_64.rpm   > rpm -ivh hawq-2.0.0.0-22126.x86_64.rpm
  • 打通ssh

    > sudo su gpadmin   > vi hosts ## 添加集群所有节点的IP   > vi segment ## 添加所有slave节点的IP   > vi masters ## 添加所有master/standby节点的IP   > source /usr/local/hawq/greenplum_path.sh   > hawq ssh-exkeys -f hosts
  • 修改系统参数

    > hawq ssh -f hosts -e 'sudo sysctl -w kernel.sem=\"50100 128256000 50100 2560\"'
  • 安装其它节点HAWQ

    > hawq scp -f hosts  hawq-2.0.0.0-22126.x86_64.rpm =:~/  > hawq ssh -f hosts -e "sudo rpm -ivh ~/hawq-*.rpm"
  • 创建HAWQ相关文件夹

    > hawq ssh -f masters -e 'sudo mkdir /mnt/disk{2..4}' > hawq ssh -f masters -e 'sudo chown hdfs:hadoop /mnt/disk{2..4}'  > hawq ssh -f masters -e 'sudo chmod 770 /mnt/disk{2..4}' > hawq ssh -f masters -e 'mkdir -p  /mnt/disk1/hawq/data/master' > hawq ssh -f segment -e 'mkdir -p  /mnt/disk1/hawq/data/segment' > hawq ssh -f hosts -e 'mkdir -p  /mnt/disk{1..4}/hawq/tmp'
  • 修改yarn为capacity-scheduler调度模式

    > vi /etc/emr/hadoop-conf/yarn-site.xml   添加属性:   
    yarn.resourcemanager.scheduler.class
    org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
    将master的yarn-site.xml同步到其它所有节点 重启集群yarn
  • 修改HAWQ配置

    > vi /usr/local/hawq/etc/hawq-site.xml   修改如下属性
属性名 说明
hawq_master_address_host emr-header-1
hawq_standby_address_host emr-header-2
hawq_dfs_url emr-cluster/hawq_default
hawq_master_directory /mnt/disk1/hawq/data/master
hawq_segment_directory /mnt/disk1/hawq/data/segment
hawq_master_temp_directory /mnt/disk1/hawq/tmp,/mnt/disk2/hawq/tmp,/mnt/disk3/hawq/tmp,/mnt/disk4/hawq/tmp
hawq_segment_temp_directory /mnt/disk1/hawq/tmp,/mnt/disk2/hawq/tmp,/mnt/disk3/hawq/tmp,/mnt/disk4/hawq/tmp
hawq_global_rm_type yarn
hawq_rm_yarn_address emr-header-1:8032,emr-header-2:8032
hawq_rm_yarn_scheduler_address emr-header-1:8030,emr-header-2:8030
> vi /usr/local/hawq/etc/hdfs-client.xml#打开HA的注释
属性名 说明
dfs.nameservices emr-cluster
dfs.ha.namenodes.emr-cluster nn1,nn2
dfs.namenode.rpc-address.emr-cluster.nn1 emr-header-1:8020
dfs.namenode.rpc-address.emr-cluster.nn2 emr-header-2:8020
dfs.namenode.http-address.emr-cluster.nn1 emr-header-1:50070
dfs.namenode.http-address.emr-cluster.nn2 emr-header-2:50070
> vi /usr/local/hawq/etc/yarn-client.xml#打开HA的注释
属性名 说明
yarn.resourcemanager.ha emr-header-1:8032,emr-header-2:8032
yarn.resourcemanager.scheduler.ha emr-heaer-1:8030,emr-header-2:8030
> vi  /usr/local/hawq/etc/slaves #添加segment节点IP

综上修改完master节点的HAWQ配置之后,需要同步到其它所有节点

> hawq scp -f hosts /usr/local/hawq/etc/yarn-client.xml /usr/local/hawq/etc/hdfs-client.xml /usr/local/hawq/etc/hawq-site.xml /usr/local/hawq/etc/slaves =:/usr/local/hawq/etc/

3.启动HAWQ集群

> hawq init cluster

4. 验证

> psql -d postgrespostgres=# create database mytest;CREATE DATABASEpostgres=# \c mytestYou are now connected to database "mytest" as user "gpadmin".mytest=# create table t (i int);CREATE TABLEmytest=# insert into t select generate_series(1,100);INSERT 0 100mytest=# \timingTiming is on.mytest=# select count(*) from t; count-------   100(1 row)Time: 77.333 msmytest=# select * from t;

三、参考资料

  • 安装HAWQ:
  • HAWQ集成yarn:

转载地址:http://knbgx.baihongyu.com/

你可能感兴趣的文章
ActiveMQ笔记(7):如何清理无效的延时消息?
查看>>
Linux系统文件访问控制列表
查看>>
js私有共有成员
查看>>
Linux 下 Shell 命令的分类及用法
查看>>
C# 中的 ref 和 out 的意义和使用方法
查看>>
相信自己,越活越坚强
查看>>
各种参数的响应时间
查看>>
phoenix将hdfs数据导入hbase
查看>>
phpstorm使用技巧
查看>>
Spark SQL在100TB上的自适应执行实践(转载)
查看>>
理解metrics.classification_report
查看>>
MongoDB学习笔记(一)安装配置
查看>>
Kafka配置项unclean.leader.election.enable造成consumer出现offset重置现象
查看>>
java运行jar命令提示没有主清单属性
查看>>
Objective-C编程基础
查看>>
centos开机自动运行[.sh]程序的方法
查看>>
BitBlt 注意事项(CAPTUREBLT) (转)
查看>>
Vitamio中文API文档(1)—— MediaStore
查看>>
博客园在百科上的介绍
查看>>
POJ 1651 Multiplication Puzzle(区间DP)
查看>>