E-MapReduce集群搭建HAWQ实践

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
    
    添加属性:
    <property>
       <name>yarn.resourcemanager.scheduler.class</name>       <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
    
    将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 postgres

postgres=# create database mytest;
CREATE DATABASE

postgres=# \c mytest
You are now connected to database "mytest" as user "gpadmin".

mytest=# create table t (i int);
CREATE TABLE

mytest=# insert into t select generate_series(1,100);
INSERT 0 100

mytest=# \timing
Timing is on.

mytest=# select count(*) from t;
 count
-------
   100
(1 row)

Time: 77.333 ms

mytest=# select * from t;

三、参考资料

时间: 2024-08-03 18:13:49

E-MapReduce集群搭建HAWQ实践的相关文章

Hadoop 三台主机 集群搭建 详解(测试)

Hadoop 三台主机 集群搭建 详解 学习更多,请访问系列文章: 1. VMware Redhat网络配置 2. Hadoop 三台主机 集群搭建 详解 3. Windows 下配置 Eclipse 连接 Hadoop 开发环境 部署环境: OS:Redhat 5.5 Enterprise JDK:jdk1.6.0_32 Hadoop:Hadoop-0.20.2 VMWare:7.0 节点安排及网络拓扑: 节点类型 节点IP 节点hostname master节点 192.168.40.5 m

Spark-1.4.0集群搭建

主要内容 Ubuntu 10.04 系统设置 ZooKeeper集群搭建 Hadoop-2.4.1集群搭建 Spark 1.4.0集群搭建 假设已经安装好Ubuntu操作系统 Ubuntu 10.04设置 1.主机规划 主机名 IP地址 进程号 SparkMaster 192.168.1.103 ResourceManager DataNode.NodeManager.JournalNode.QuorumPeerMain SparkSlave01 192.168.1.101 ResourceMa

hadoop集群搭建详述

1.集群搭建策略 分析: 我手上只有3台电脑,两台华硕笔记本i7.i3的处理器,一台台式机Pentium4处理器.为了更好的测试zookeeper的功能, 我们总共需要6台ubuntu(Ubuntu 14.04.3 LTS)的主机.以下是我的主机分布策略: i7:开启4台ubuntu虚拟机分别是 虚拟机名 内存 硬盘 网络连接 master 1G 20G 桥接 master2 1G 20G 桥接 rm 512M 20G 桥接 slave3 1G 20G 桥接 i3: 安装ubuntu系统 ,作为

Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

25.集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager 25.1.2服务器准备 本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本: ü Vmware 11.

Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建

作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 操作系统环境准备 Hadoop 2.4.1集群搭建 Spark 1.5.0 集群部署 注:在利用CentOS 6.5操作系统安装spark 1.5集群过程中,本人发现Hadoop 2.4.1集群可以顺利搭建,但在Spark 1.5.0集群启动时出现了问题(可能原因是64位操作系统原因,源码需要重新编译,但本人没经过测试),经本人测试在ubuntu 10.04 操作系统上可以顺利成功搭建.大家可以利用CentOS

基于Docker的mysql mha 的集群环境构建实践

12月2日,云计算高级工程师王佩老师,在[DBA+社群]中间件用户组进行了一次主题为"基于Docker的mysql mha 的集群环境构建实践"的线上分享.小编特别整理出其中精华内容,供大家学习交流.同时,也非常感谢王佩老师对DBA+社群给予的大力支持.    嘉宾简介   云计算高级工程师 目前主要研究docker 相关的云计算技术   演讲实录  关于docker 想必前面的各位大牛分享的演讲讲的非常多了,今天主要跟大家分享基于docker快速构建 mysql mha 的一个实战案

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip;  2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: (centos操作系统修改主机名命令:vi /etc/sy

codis集群搭建

目前公司的业务是php语言开发,使用的是laravel开源框架.laravel框架使用predis连接redis,但是目前predis不支持主从式redis集群,这点很坑. 看了看目前网上的解决方案,国内豌豆荚开源的codis很不错.这篇文章,我们主要介绍codis集群的安装. 一.codis介绍 codis是一个分布式redis集群解决方案,对于上层的应用来说, 连接到codis-proxy和连接原生的redis-server没有明显的区别. 上层应用可以像使用单机的redis一样使用,cod

zookeeper集群搭建

因为公司的业务发展,需要搭建codis集群(一个由国内豌豆荚开发的redis集群解决方案),但是codis集群是依赖与zookeeper集群的.所以这篇文章,我们主要介绍有关zookeeper集群的搭建. 一.zookeeper介绍 zookeeper是一个分布式的开源框架,它能很好的管理集群,而且提供协调分布式应用的基本服务. 它向外部应用暴露一组通用服务--分布式同步(Distributed Synchronization).命名服务(Naming Service).集群维护(Group M