Complete Guide to Open Source Big Data Stack — Michael Frampton Complete Guide to Open Source Big Data Stack Michael Frampton Complete Guide to Open Source Big Data Stack Michael Frampton Paraparaumu, New Zealand ISBN-13 (pbk): 978-1-4842-2148-8 ISBN-13 (electronic): 978-1-4842-2149-5 https://doi.org/10.1007/978-1-4842-2149-5 Library of Congress Control Number: 2018930257 Copyright © 2018 by Michael Frampton This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Cover image by Freepik (www.freepik.com) Managing Director: Welmoed Spahr Editorial Director: Todd Green Acquisitions Editor: Susan McDermott Development Editor: Laura Berendson Technical Reviewer: Olav Jodens Coordinating Editor: Rita Fernando Copy Editor: Deanna Hegle Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer- sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress.com/ rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484221488. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper I would like to dedicate this book to my wife and son whose support has enabled me to complete this project. Table of Contents About the Author ���������������������������������������������������������������������������������������������������xiii About the Technical Reviewer ���������������������������������������������������������������������������������xv Acknowledgments �������������������������������������������������������������������������������������������������xvii Introduction ������������������������������������������������������������������������������������������������������������xix Chapter 1: The Big Data Stack Overview ������������������������������������������������������������������1 What Is Big Data? ��������������������������������������������������������������������������������������������������������������������������2 Limitations of Approach ����������������������������������������������������������������������������������������������������������������4 Why a Stack? ��������������������������������������������������������������������������������������������������������������������������������5 NoSQL Overview ���������������������������������������������������������������������������������������������������������������������������6 Development Stacks ���������������������������������������������������������������������������������������������������������������������7 LAMP Stack �����������������������������������������������������������������������������������������������������������������������������7 MEAN Stack �����������������������������������������������������������������������������������������������������������������������������7 SMACK Stack ���������������������������������������������������������������������������������������������������������������������������7 MARQS Stack ���������������������������������������������������������������������������������������������������������������������������7 Book Approach ������������������������������������������������������������������������������������������������������������������������������8 Chapter 2 – Cloud Storage ������������������������������������������������������������������������������������������������������9 Chapter 3 – Release Management – Brooklyn ������������������������������������������������������������������������9 Chapter 4 – Resource Management ��������������������������������������������������������������������������������������10 Chapter 5 – Storage ��������������������������������������������������������������������������������������������������������������10 Chapter 6 – Processing ���������������������������������������������������������������������������������������������������������10 Chapter 7 – Streaming ����������������������������������������������������������������������������������������������������������11 Chapter 8 – Frameworks �������������������������������������������������������������������������������������������������������11 Chapter 9 – Data Visualisation ����������������������������������������������������������������������������������������������11 Chapter 10 – The Big Data Stack �������������������������������������������������������������������������������������������11 v Table of ConTenTs The Full Stack �����������������������������������������������������������������������������������������������������������������������������11 Cloud or Cluster ��������������������������������������������������������������������������������������������������������������������������13 The Future �����������������������������������������������������������������������������������������������������������������������������������15 Chapter 2: Cloud Storage ����������������������������������������������������������������������������������������17 CloudStack Overview ������������������������������������������������������������������������������������������������������������������18 Server Preparation ����������������������������������������������������������������������������������������������������������������������20 Minimum System Requirements �������������������������������������������������������������������������������������������20 Check CentOS Install �������������������������������������������������������������������������������������������������������������22 Secure Shell (SSH) Access ����������������������������������������������������������������������������������������������������22 Configure Network �����������������������������������������������������������������������������������������������������������������23 Check Hostname FQDN����������������������������������������������������������������������������������������������������������23 Configure SELinux �����������������������������������������������������������������������������������������������������������������24 Configure NTP ������������������������������������������������������������������������������������������������������������������������24 Configure CloudStack Package Repository ���������������������������������������������������������������������������25 Configure NFS (Network File System) �����������������������������������������������������������������������������������25 CloudStack Server Install ������������������������������������������������������������������������������������������������������������28 MySQL Server Install �������������������������������������������������������������������������������������������������������������28 MySQL Connector Installation �����������������������������������������������������������������������������������������������29 Management Server Installation �������������������������������������������������������������������������������������������30 System Template Setup ���������������������������������������������������������������������������������������������������������30 KVM Setup and Installation ���������������������������������������������������������������������������������������������������������31 Prerequisites �������������������������������������������������������������������������������������������������������������������������31 Create Repository File �����������������������������������������������������������������������������������������������������������32 KVM Installation ���������������������������������������������������������������������������������������������������������������������32 KVM QEMU (Quick Emulator) Configuration ���������������������������������������������������������������������������32 Libvirt Configuration ��������������������������������������������������������������������������������������������������������������33 Check KVM Running ��������������������������������������������������������������������������������������������������������������33 Host Naming ��������������������������������������������������������������������������������������������������������������������������34 CloudStack Cluster Configuration �����������������������������������������������������������������������������������������������35 Adding Hosts to the Cloud �����������������������������������������������������������������������������������������������������40 Adding an Instance to the Cloud ��������������������������������������������������������������������������������������������44 vi Table of ConTenTs Registering an ISO with CloudStack ��������������������������������������������������������������������������������������44 Creating an Instance from an ISO ������������������������������������������������������������������������������������������46 Advanced Zone Creation �������������������������������������������������������������������������������������������������������������51 Problem-Solving �������������������������������������������������������������������������������������������������������������������������55 CloudStack Log Files �������������������������������������������������������������������������������������������������������������56 CloudStack Storage ���������������������������������������������������������������������������������������������������������������56 CloudStack System VMs ��������������������������������������������������������������������������������������������������������57 CloudStack Firewall Issues ����������������������������������������������������������������������������������������������������57 Conclusion ����������������������������������������������������������������������������������������������������������������������������������58 Chapter 3: Apache Brooklyn �����������������������������������������������������������������������������������59 Brooklyn Install ���������������������������������������������������������������������������������������������������������������������������59 Brooklyn Overview ����������������������������������������������������������������������������������������������������������������������69 Blueprints ������������������������������������������������������������������������������������������������������������������������������70 REST API ��������������������������������������������������������������������������������������������������������������������������������71 Policy Management ���������������������������������������������������������������������������������������������������������������72 Monitoring �����������������������������������������������������������������������������������������������������������������������������73 Operations �����������������������������������������������������������������������������������������������������������������������������73 Modelling With Blueprints �����������������������������������������������������������������������������������������������������������74 Application Installs ����������������������������������������������������������������������������������������������������������������������74 Server-Based Install ��������������������������������������������������������������������������������������������������������������75 Cloud-Based Install ���������������������������������������������������������������������������������������������������������������85 Conclusion ����������������������������������������������������������������������������������������������������������������������������������95 Chapter 4: Apache Mesos ���������������������������������������������������������������������������������������97 Mesos Architecture ���������������������������������������������������������������������������������������������������������������������98 Mesos Install �������������������������������������������������������������������������������������������������������������������������������99 Overview ��������������������������������������������������������������������������������������������������������������������������������99 Building Mesos ��������������������������������������������������������������������������������������������������������������������100 Starting Mesos ��������������������������������������������������������������������������������������������������������������������108 Mesos User Interface �����������������������������������������������������������������������������������������������������������109 Build Errors ��������������������������������������������������������������������������������������������������������������������������114 vii Table of ConTenTs Mesosphere DCOS ��������������������������������������������������������������������������������������������������������������������115 Overview ������������������������������������������������������������������������������������������������������������������������������115 SSH configuration ����������������������������������������������������������������������������������������������������������������115 Install Prerequisites �������������������������������������������������������������������������������������������������������������117 Install Server �����������������������������������������������������������������������������������������������������������������������121 Master Server ����������������������������������������������������������������������������������������������������������������������124 Agent Server ������������������������������������������������������������������������������������������������������������������������126 User Interfaces ��������������������������������������������������������������������������������������������������������������������127 Logging and Problem Investigation �������������������������������������������������������������������������������������131 Build Errors ��������������������������������������������������������������������������������������������������������������������������132 Project Myriad ���������������������������������������������������������������������������������������������������������������������������135 Myriad Architecture �������������������������������������������������������������������������������������������������������������135 Conclusion ��������������������������������������������������������������������������������������������������������������������������������137 Chapter 5: Stack Storage Options �������������������������������������������������������������������������139 HDFS Mesos Framework �����������������������������������������������������������������������������������������������������������141 Source Software ������������������������������������������������������������������������������������������������������������������141 Start Scheduler ��������������������������������������������������������������������������������������������������������������������142 Create and Start HDFS Nodes ����������������������������������������������������������������������������������������������144 Use HDFS Mesos Framework ����������������������������������������������������������������������������������������������148 Riak Mesos Framework ������������������������������������������������������������������������������������������������������������151 VirtualBox Install ������������������������������������������������������������������������������������������������������������������152 Vagrant Install����������������������������������������������������������������������������������������������������������������������154 Install Framework ����������������������������������������������������������������������������������������������������������������154 Use Framework �������������������������������������������������������������������������������������������������������������������160 Cassandra Mesos Framework ���������������������������������������������������������������������������������������������������164 Install Prerequisites �������������������������������������������������������������������������������������������������������������165 Install X Windows ����������������������������������������������������������������������������������������������������������������165 Install VirtualBox and Vagrant ����������������������������������������������������������������������������������������������166 Install Vagrant-Based DCOS ������������������������������������������������������������������������������������������������167 Install Cassandra �����������������������������������������������������������������������������������������������������������������172 Conclusion ��������������������������������������������������������������������������������������������������������������������������������175 viii Table of ConTenTs Chapter 6: Processing ������������������������������������������������������������������������������������������177 Stack Architecture ���������������������������������������������������������������������������������������������������������������������178 Server Preparation ��������������������������������������������������������������������������������������������������������������������179 Mesos and Spark ����������������������������������������������������������������������������������������������������������������������181 Build Mesos Part 1 ��������������������������������������������������������������������������������������������������������������181 Build Mesos Part 2 ��������������������������������������������������������������������������������������������������������������182 Build Mesos Part 3 ��������������������������������������������������������������������������������������������������������������183 Building the Mesos Source ��������������������������������������������������������������������������������������������������184 Starting Mesos ��������������������������������������������������������������������������������������������������������������������186 Installing the HDFS Framework �������������������������������������������������������������������������������������������187 Running Spark ���������������������������������������������������������������������������������������������������������������������192 DCOS and Spark ������������������������������������������������������������������������������������������������������������������������198 DCOS Build Part 1 ����������������������������������������������������������������������������������������������������������������198 DCOS Build Part 2 ����������������������������������������������������������������������������������������������������������������199 DCOS Build Part 3—Install Server ���������������������������������������������������������������������������������������200 DCOS Master Server Install �������������������������������������������������������������������������������������������������203 DCOS Agent Server Install ���������������������������������������������������������������������������������������������������203 User Interfaces ��������������������������������������������������������������������������������������������������������������������204 DCOS CLI Command Install ��������������������������������������������������������������������������������������������������205 Running a Spark Application �����������������������������������������������������������������������������������������������209 Problem Tracking �����������������������������������������������������������������������������������������������������������������213 Conclusion ��������������������������������������������������������������������������������������������������������������������������������217 Chapter 7: Streaming ��������������������������������������������������������������������������������������������219 DCOS Issues ������������������������������������������������������������������������������������������������������������������������������221 Port Conflict Issues ��������������������������������������������������������������������������������������������������������������221 Firewall Issues ���������������������������������������������������������������������������������������������������������������������222 Network Time Synchronisation ��������������������������������������������������������������������������������������������223 ZooKeeper Issues ����������������������������������������������������������������������������������������������������������������224 The Kafka System ���������������������������������������������������������������������������������������������������������������������225 Installing Kafka �������������������������������������������������������������������������������������������������������������������������227 ix Table of ConTenTs DCOS UI Kafka Install �����������������������������������������������������������������������������������������������������������227 DCOS CLI Kafka Install ���������������������������������������������������������������������������������������������������������232 Kafka Management Using the CLI ���������������������������������������������������������������������������������������������236 Kafka Management Using Spark �����������������������������������������������������������������������������������������������246 Conclusion ��������������������������������������������������������������������������������������������������������������������������������257 Chapter 8: Frameworks ����������������������������������������������������������������������������������������259 Akka ������������������������������������������������������������������������������������������������������������������������������������������261 OOP Overview ����������������������������������������������������������������������������������������������������������������������261 Distributed Systems Issues �������������������������������������������������������������������������������������������������262 Akka Architecture ����������������������������������������������������������������������������������������������������������������264 Actors ����������������������������������������������������������������������������������������������������������������������������������267 Networking ��������������������������������������������������������������������������������������������������������������������������270 Streams �������������������������������������������������������������������������������������������������������������������������������273 Other Modules ���������������������������������������������������������������������������������������������������������������������276 Enterprise Offerings�������������������������������������������������������������������������������������������������������������277 Netty������������������������������������������������������������������������������������������������������������������������������������������277 Spring����������������������������������������������������������������������������������������������������������������������������������������282 RabbitMQ Overview �������������������������������������������������������������������������������������������������������������283 Kafka or RabbitMQ? �������������������������������������������������������������������������������������������������������������284 Messaging Protocols �����������������������������������������������������������������������������������������������������������284 Languages ���������������������������������������������������������������������������������������������������������������������������285 Clustering ����������������������������������������������������������������������������������������������������������������������������286 Enterprise Support���������������������������������������������������������������������������������������������������������������287 Routing ��������������������������������������������������������������������������������������������������������������������������������288 Plug-ins �������������������������������������������������������������������������������������������������������������������������������290 Administration ���������������������������������������������������������������������������������������������������������������������291 Conclusion ��������������������������������������������������������������������������������������������������������������������������������293 x
Description: