服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 三条命令搞定MacOS安装Greenplum

三条命令搞定MacOS安装Greenplum

2021-08-25 23:10大数据技术与数仓西贝 编程技术

本文主要介绍如何在MacOS上安装部署Greenplum,并给出了具体的操作步骤,安装过程也十分简单。对于Mac的用户而言,如果需要安装一些大数据的环境用于学习和测试,完全没有必要安装虚拟机,一般的大数据技术组件都是支持在Ma

写在前面

Mac的Term2 是 Terminal 的替代者。这是一款用于 macOS 的终端模拟器,支持窗口分割、热键、搜索、自动补齐、无鼠标复制、历史粘贴、即时重播等功能特性,适用于 MacOS 10.10 及以上版本。

Mac的用户可以通过iterm2终端获取Linux操作系统的体验。我们常见的大数据技术组件(比如Flink、Hadoop、Hive、Kafka等等)都可以在Mac OS上直接进行安装,操作过程与Linux安装基本无差别。既然主流的大数据技术框架可以很方便地在MacOS上部署运行,那Greenplum是否也可以很方便的在MacOS上部署呢?翻阅官网发现了下面的支持部署的操作系统说明:

Greenplum 6 runs on the following operating system platforms:

  • Red Hat Enterprise Linux 64-bit 7.x (See the following Note[2].)
  • Red Hat Enterprise Linux 64-bit 6.x
  • CentOS 64-bit 7.x
  • CentOS 64-bit 6.x
  • Ubuntu 18.04 LTS
  • Oracle Linux 64-bit 7, using the Red Hat Compatible Kernel (RHCK)

既然仅支持linux部署,那只能通过Docker进行安装了。

如何使用Docker安装GP

使用Docker安装GP主要有两种方式:

  • 第一种是安装centos的镜像,然后在centos中安装greenplum,此种方式相当于先装一个linux的虚拟机,然后在使用GP的安装包进行安装,过程相当繁琐,本文不做过多说明。
  • 第二种方式是直接通过docker拉去Greenplum的镜像,然后直接运行容器即可,本文使用的是第二种方式。

安装步骤

安装Docker

假设用户已经安装了Homebrew ,就可以通过Homebrew 安装docker了,步骤非常简单:

  1. $ brew install --cask --appdir=/Applications docker 

镜像制作

假设已经安装了git,可以执行下面的步骤:

  1. git clone https://github.com/tangyibo/greenplum_docker.git 
     

三条命令搞定MacOS安装Greenplum

克隆完成之后,进入克隆的文件夹

  1. cd greenplum_docker/ 

可以看到文件夹下面有如下的文件:

  1. -rw-r--r--  1 username  staff   665B  8 24 14:57 Dockerfile 
  2. -rw-r--r--  1 username  staff     8B  8 24 14:57 LICENSE 
  3. -rw-r--r--  1 username  staff   1.3K  8 24 14:57 README.md 
  4. -rw-r--r--  1 username  staff   246B  8 24 14:57 build.sh 
  5. drwxr-xr-x@ 4 username  staff   128B  8 24 15:45 data 
  6. -rw-r--r--  1 username  staff   1.6K  8 24 14:57 entrypoint.sh 
  7. -rw-r--r--  1 username  staff   2.9K  8 24 14:57 install.sh 
  8. -rw-r--r--  1 username  staff   116B  8 24 14:57 test.sh 

执行build命令:

  1. sh build.sh 

 三条命令搞定MacOS安装Greenplum

build的过程大约十分钟左右。

运行镜像

创建一个文件夹

  1. mkdir -p ~/data/gpdb 

运行容器

  1. docker run -d --name greenplum -p 5432:5432 -v /Users/jmx/bigdata/data/gpdb:/Users/jmx/bigdata/data  inrgihc/greenplum:6.16.3 

 三条命令搞定MacOS安装Greenplum

此时容器已经运行了,可以通过一下命令查看:

  1. docker ps -a 
  2. CONTAINER ID   IMAGE                      COMMAND               CREATED              STATUS              PORTS                                               NAMES 
  3. b16c80b552f9   inrgihc/greenplum:6.16.3   "sh /entrypoint.sh"   About a minute ago   Up About a minute   22/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   greenplum 

进入容器

上面可以查看容器id为:b16c80b552f9

  1. docker exec -it b16c80b552f9 bin/sh 

简单操作

进入容器后,我们就可以是使用greenplum了,下面是环境的一些配置说明:

三条命令搞定MacOS安装Greenplum

进入安装目录:

  1. cd /usr/local/greenplum-db 

 三条命令搞定MacOS安装Greenplum

切换gpadmin用户

  1. su gpadmin 

使用psql客户端

  1. $ psql 

 三条命令搞定MacOS安装Greenplum

列出数据库

  1. postgres=# \d 
  2. No relations found. 
  3. postgres=# \l 
  4.                                List of databases 
  5.    Name    |  Owner  | Encoding |  Collate   |   Ctype    |  Access privileges 
  6. -----------+---------+----------+------------+------------+--------------------- 
  7.  postgres  | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | 
  8.  template0 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         + 
  9.            |         |          |            |            | gpadmin=CTc/gpadmin 
  10.  template1 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         + 
  11.            |         |          |            |            | gpadmin=CTc/gpadmin 
  12. (3 rows

创建数据库

  1. postgres=# create database test; 
  2. CREATE DATABASE 

使用数据库

  1. CREATE DATABASE 
  2. postgres=# \c test 
  3. You are now connected to database "test" as user "gpadmin"
  4. test=# 

建表

  1. create table test2(id int,name varchar(128)) distributed by (id); 
  2. CREATE TABLE 
  3. test=# 

查看表描述信息

  1. test=# \d test2; 
  2.             Table "public.test2" 
  3.  Column |          Type          | Modifiers 
  4. --------+------------------------+----------- 
  5.  id     | integer                | 
  6.  name   | character varying(128) | 
  7. Distributed by: (id) 

查看数据

  1. test=# insert into test2 values(1,'tom'),(2,'jack'),(3,'Bob'); 
  2. INSERT 0 3 
  3. test=# select * from test2; 
  4.  id | name 
  5. ----+------ 
  6.   2 | jack 
  7.   3 | Bob 
  8.   1 | tom 
  9. (3 rows
  10.  
  11. test=# 

查看所有表

  1. test=# \dt 
  2.              List of relations 
  3.  Schema | Name  | Type  |  Owner  | Storage 
  4. --------+-------+-------+---------+--------- 
  5.  public | test2 | table | gpadmin | heap 
  6. (1 row) 

运维命令

  1. gpstate -s 

 三条命令搞定MacOS安装Greenplum

总结

本文主要介绍如何在MacOS上安装部署Greenplum,并给出了具体的操作步骤,安装过程也十分简单。对于Mac的用户而言,如果需要安装一些大数据的环境用于学习和测试,完全没有必要安装虚拟机,一般的大数据技术组件都是支持在MacOS上部署运行的,如果不行,使用Docker也能够方便地安装部署。

原文地址:https://mp.weixin.qq.com/s/4q7zuPKMrckXjtto-93Nuw

延伸 · 阅读

精彩推荐
  • 编程技术Delphi - Indy idMessage和idSMTP实现邮件的发送

    Delphi - Indy idMessage和idSMTP实现邮件的发送

    这篇文章主要介绍了Delphi - Indy idMessage和idSMTP实现邮件的发送,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    JJ_JeremyWu6592020-09-22
  • 编程技术从Context源码实现谈React性能优化

    从Context源码实现谈React性能优化

    这篇文章主要介绍Context的实现原理,源码层面掌握React组件的render时机,从而写出高性能的React组件,源码层面了解shouldComponentUpdate、React.memo、PureComponen...

    魔术师卡颂5312020-12-20
  • 编程技术AIOps,SRE工程师手中的利器

    AIOps,SRE工程师手中的利器

    AIOps开始成为一种极为重要的站点可靠性工程工具。它能够高效吸纳观察数据、参与数据以及来自第三方工具的数据,判断系统运行状态并保证其处于最佳...

    至顶网5972021-03-08
  • 编程技术2021年值得关注的React PDF 库

    2021年值得关注的React PDF 库

    今天,许多网络应用程序为其用户提供内置的PDF浏览选项。然而,选择一个并不容易,因为它们的功能远远超过显示PDF。在这篇文章中,我将评估5个React的...

    TianTianUp5232021-06-21
  • 编程技术让开发效率倍增的 VS Code 插件

    让开发效率倍增的 VS Code 插件

    今天来分享一些提升开发效率的实用 VS Code 插件!Better Comments 扩展可以帮助我们在代码中创建更人性化的注释,有不同形式和颜色的注释供我们选择。 ...

    前端充电宝7132022-04-21
  • 编程技术用户态 Tcpdump 如何实现抓到内核网络包的?

    用户态 Tcpdump 如何实现抓到内核网络包的?

    在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包...

    开发内功修炼11612021-09-08
  • 编程技术简单、好懂的Svelte实现原理

    简单、好懂的Svelte实现原理

    本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一边看、一边敲、一边学...

    魔术师卡颂4822021-11-10
  • 编程技术真正聪明的程序员,总有办法不加班

    真正聪明的程序员,总有办法不加班

    工作效率提升了,就可以少加班了,聪明的程序员,总会有一堆可以提升编码效率的工具?当一种工具满足不了工作需求,就去探索新的,今天纬小创就给...

    今日头条12482021-03-04