版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章综合实践:搭建云平台并进行大数据处理分析CONTENTS01案例介绍02搭建云平台03搭建大数据平台目录06用户行为可视化05大数据实时分析04大数据采集与预处理8.1案例介绍案例介绍某出行打车公司拥有超4.5亿用户,在中国400多个城市开展服务,每天的订单量高达2500万,每天要处理的数据量约为4500TB。仅在北京,工作日的早高峰一分钟内就会有超过1600人使用该公司打车软件。通过对这些出行大数据进行分析,可了解不同区域、不同时段运营情况。通过这些出行大数据,还可以看到不同城市的教育、医疗资源的分布,长期观察城市经济、社会资源的发展、变迁情况,非常有研究价值。本案例将利用云计算技术搭建大数据平台,然后利用大数据平台将某出行打车公司的日志数据进行数据分析,例如:统计某一天订单量是多少、预约订单与非预约订单的占比是多少、不同时段订单占比等.8.2搭建云平台8.2.1OpenStack概述OpenStack简介Part
011OpenStack简介简介OpenStack是一个开源的云计算管理平台项目,由美国NASA和Rackspace合作研发及发起,以Apache许可证授权。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务,提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台,易于使用、实现简单、部署之间可互操作,满足公有云和私有云用户及运营商的需求。OpenStack架构Part
022OpenStack架构架构OpenStack组件Part
33OpenStack组件组件8.2.2OpenStack基础环境OpenStack实例架构的硬件配置Part
011OpenStack实例架构的硬件配置硬件配置云部署架构Part
022云部署架构部署架构OpenStack环境搭建Part
3基本步骤准备两个必需节点主机,安装centos,并配置节点网络安装OpenStack软件包在控制节点上安装SQL数据库在控制节点上安装消息队列RabbitMQ服务安装Memcached服务3OpenStack环境搭建安装Etcd服务安装OpenStackPart
44安装OpenStack——主机和网络配置主机配置-准备两个节点虚拟机,控制节点和计算节点-防火墙和selinux-yum源-免密配置网络配置-域名映射
-IP地址设置-NetworkManager-时间同步4安装OpenStack——安装Openstack软件包(1)安装openstack软件包yuminstall-ycentos-release-openstack-train(2)升级软件包(时间较长20-30分钟)yum-yupgrade(3)安装客户端yuminstall-ypython-openstackclient(4)安装openstack-selinux软件包自动管理Openstack服务的安全策略yuminstall-yopenstack-selinux(5)验证是否安装成功openstack--version4安装OpenStack——安装数据库(1)安装相关的软件包。yum-yinstallmariadbmariadb-serverpython2-PyMySQL(2)编辑/etc/f.d/f配置文件。(3)将MariaDB设置为开机自动启动,并启动该数据库服务。(4)通过运行mysql_secure_installation脚本启动安全配置向导来提高数据库的安全性。4安装OpenStack——安装消息队列服务(1)安装相应的软件包。yum-yinstallrabbitmq-server(2)将RabbitMQ服务设置为开机自动启动,并启动该消息队列服务。(3)添加一个名为“openstack”的用户账户。rabbitmqctladd_useropenstackRABBIT_PASS(4)为openstack用户配置写入和读取访问权限。rabbitmqctlset_permissionsopenstack".*"".*"".*"4安装OpenStack——安装Memcached服务(1)安装相应的软件包。yum-yinstallmemcachedpython-memcached(2)编辑/etc/sysconfig/memcached配置文件。OPTIONS="-l,::1,controller"(3)将Memcached服务设置为开机自动启动,并启动该服务。4安装OpenStack——安装Etcd(1)安装软件包。yum-yinstalletcd(2)编辑/etc/etcd/etcd.conf配置文件,将ETCD_INITIAL_CLUSTER等选项的值设置为控制节点的管理IP地址。(3)将Etcd服务设置为开机自动启动,并启动该服务。8.2.3安装和部署Keystone身份服务Keystone简介Part
011Keystone简介简介Keystone是OpenStack的核心组件之一,为OpenStack大家族中的其他组件提供统一的身份认证服务,包括身份认证、令牌发放和服务列表校验、用户权限定义等。Keystone基本步骤Part
02基本步骤配置ApacheHTTP服务器创建Keystone数据库安装和配置Keystone及相关组件完成Keystone安装创建域、项目、用户和角色2基本步骤Keystone搭建与部署Part
033搭建与部署——创建Keystone数据库(1)以root用户身份通过数据库访问客户端连接到数据库服务器。(2)创建Keystone数据库(名为“keystone”)。MariaDB[(none)]>CREATEDATABASEkeystone;
(3)对Keystone数据库授予合适的账户访问权限。MariaDB[(none)]>GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'KEYSTONE_DBPASSMariaDB[(none)]>GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'%'IDENTIFIEDBY'KEYSTONE_DBPASS(4)退出数据库访问客户端。3搭建与部署——安装和配置Keystone及相关组件(1)安装所需的软件包。yum-yinstallopenstack-keystonehttpdmod_wsgi(2)编辑/etc/keystone/keystone.conf配置文件。①在[database]节中配置数据库访问连接。②在[token]节中配置Fernet为令牌提供者。(3)初始化Keystone数据库。su-s/bin/sh-c"keystone-managedb_sync"keystone(4)初始化Fernet密钥库以生成令牌。keystone-managefernet_setup--keystone-userkeystone--keystone-groupkeystonekeystone-managecredential_setup--keystone-userkeystone--keystone-groupkeystone(5)对Keystone服务执行初始化操作。keystone-managebootstrap--bootstrap-passwordADMIN_PASS\
--bootstrap-admin-urlhttp://controller:5000/v3/\
--bootstrap-internal-urlhttp://controller:5000/v3/\
--bootstrap-public-urlhttp://controller:5000/v3/\
--bootstrap-region-idRegionOne3搭建与部署——配置ApacheHTTP服务器(1)编辑/etc/httpd/conf/httpd.conf配置文件。ServerNamecontroller(2)创建到/usr/share/keystone/wsgi-keystone.conf文件的链接文件。ln-s/usr/share/keystone/wsgi-keystone.conf/etc/httpd/conf.d/3搭建与部署——完成Keystone安装(1)启动ApacheHTTP服务并将其配置为开机自动启动。systemctlenablehttpd.servicesystemctlstarthttpd.service(2)导出环境变量来配置云管理员账户。exportOS_USERNAME=admin#云管理员账户exportOS_PASSWORD=ADMIN_PASS#密码exportOS_PROJECT_NAME=admin#项目名exportOS_USER_DOMAIN_NAME=Default#域名exportOS_PROJECT_DOMAIN_NAME=DefaultexportOS_AUTH_URL=http://controller:5000/v3#认证URLexportOS_IDENTITY_API_VERSION=3#指定版本信息(3)验证Keystone安装。openstackservicelistcurlhttp://controller:5000/v33搭建与部署——创建域、项目、用户和角色(1)创建域。(2)创建项目。创建OpenStack服务共用的“service”项目。openstackprojectcreate--domaindefault--description"ServiceProject"service(3)创建用户。创建demo项目。openstackprojectcreate--domaindefault--description"DemoProject"demo创建demo用户。openstackusercreate--domaindefault--password-promptdemo(4)创建角色。创建一个名为“demo”的角色。openstackrolecreatedemo将member角色添加到demo项目和demo用户。openstackroleadd--projectdemo--userdemomember3搭建与部署——创建OpenStack客户端环境脚本admin-openrc文件作为admin云管理员的客户端环境脚本
exportOS_PROJECT_DOMAIN_NAME=DefaultexportOS_USER_DOMAIN_NAME=DefaultexportOS_PROJECT_NAME=adminexportOS_USERNAME=adminexportOS_PASSWORD=ADMIN_PASSexportOS_AUTH_URL=http://controller:5000/v3exportOS_IDENTITY_API_VERSION=3exportOS_IMAGE_API_VERSION=2为demo用户创建一个demo-openrc脚本文件exportOS_USER_DOMAIN_NAME=DefaultexportOS_PROJECT_NAME=demoexportOS_USERNAME=demoexportOS_PASSWORD=DEMO_PASSexportOS_AUTH_URL=http://controller:5000/v3exportOS_IDENTITY_API_VERSION=3exportOS_IMAGE_API_VERSION=2使用脚本.admin-openrcopenstacktokenissue8.2.4安装和部署Glance镜像服务Glance简介Part
011Glance简介简介Glance是一个提供发现、注册和下载镜像的服务,并提供虚拟机镜像的集中存储功能。在Glance里镜像被当作模板来存储,用于启动新实例。Glance还可以从正在运行的实例中建立快照以用于备份虚拟机的状态。基本步骤创建Glance数据库获取云管理员凭据、创建Glance服务凭据安装Glance软件包、编辑配置文件初始化镜像服务数据库完成Glance服务安装、验证Glance镜像操作Glance数据库、服务凭据和API端点的创建Part
022Glance数据库、服务凭据和API端点的创建(1)创建Glance数据库。①以root用户身份使用数据库访问客户端,并连接到数据库服务器。②创建Glance数据库(名称为“glance”)。MariaDB[(none)]>CREATEDATABASEglance;③对Glance数据库的glance用户授予访问权限。MariaDB[(none)]>GRANTALLPRIVILEGESONglance.*TO'glance'@'localhost'IDENTIFIEDBY'GLANCE_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONglance.*TO'glance'@'%'IDENTIFIEDBY'GLANCE_DBPASS';④退出数据库访问客户端。(2)获取云管理员凭据。2Glance数据库、服务凭据和API端点的创建(3)创建Glance服务凭据。①创建Glance用户。openstackusercreate--domaindefault--password-promptglance②将admin角色授予glance用户和service项目。openstackroleadd--projectservice--userglanceadmin③在服务目录中创建镜像服务的服务实体。openstackservicecreate--nameglance--description"OpenStackImage"image(4)创建镜像服务的API端点。openstackendpointcreate--regionRegionOneimagepublichttp://controller:9292openstackendpointcreate--regionRegionOneimageinternalhttp://controller:9292openstackendpointcreate--regionRegionOneimageadminhttp://controller:9292安装和配置Glance组件Part
033安装和配置Glance组件(1)安装Glance软件包。yum-yinstallopenstack-glance(2)编辑/etc/glance/glance-api.conf配置文件。①在[database]节中配置数据库访问连接。②在[keystone_authtoken]和[paste_deploy]节中配置身份服务访问。③在[glance_store]节中配置镜像存储。(3)初始化镜像服务数据库。su-s/bin/sh-c"glance-managedb_sync"glance(4)将Glance镜像服务配置为开机自动启动,并启动镜像服务。systemctlenableopenstack-glance-api.servicesystemctlstartopenstack-glance-api.service验证Glance镜像操作Part
044验证Glance镜像操作(1)下载Cirros操作系统源镜像。wget/0.4.0/cirros-0.4.0-x86_64-disk.img(2)加载admin用户的客户端环境脚本。[root@controller~]#.admin-openrc(3)以.qcow2磁盘格式和.bare容器格式将镜像上传到Glance镜像服务。openstackimagecreate"cirros"--filecirros-0.4.0-x86_64-disk.img--disk-formatqcow2--container-formatbare--public(4)查看其状态。[root@controller~]#openstackimagelist+--------------------------------------+--------+--------+|ID|Name|Status|+--------------------------------------+--------+--------+|1d01a1d6-fac1-4d52-8864-2185cb4fcf49|cirros|active|+--------------------------------------+--------+--------+8.2.5安装和部署Placement放置服务创建Placement数据库Part
011创建Placement数据库①使用数据库访问客户端,以root用户身份连接到数据库服务器。②创建名为“placement”的Placement数据库。③授予placement用户对数据库的访问权限。④退出数据库访问客户端。服务凭据和API端点的创建步骤Part
022服务凭据和API端点的创建步骤①加载admin用户的客户端环境脚本②创建名为“placement”的放置服务用户。③将admin角色授予glance用户和service项目。④在服务目录中创建Placement服务实体(名为“placement”的服务)。⑤创建Placement服务端点。openstackendpointcreate--regionRegionOneplacementpublic\http://controller:8778openstackendpointcreate--regionRegionOneplacementinternal\http://controller:8778openstackendpointcreate--regionRegionOne
placementadmin\
http://controller:8778安装和配置Placement服务组件Part
033安装和配置放置服务组件(1)安装软件包。yum-yinstallopenstack-placement-api(2)编辑/etc/placement/placement.conf配置文件。①在[placement_database]节中配置数据库访问连接。②在[api]和[keystone_authtoken]节中配置身份服务访问。(3)初始化名为“placement”的数据库。su-s/bin/sh-c"placement-managedbsync"placement(4)重新启动httpd服务。systemctlrestarthttpd验证Placement服务安装Part
044验证放置服务安装(1)加载云管理员客户端环境脚本。.admin-openrc(2)进行状态检查,以确保一切正常。placement-statusupgradecheck8.2.6安装和部署Nova计算服务Nova简介Part
011Nova简介为支持更大规模的部署,OpenStack将大的Nova集群分成小的单元。每个单元有自己的消息队列和数据库,可以解决规模增大时引起的性能问题。Nova的Cell架构:1Nova简介Cell部署单Cell部署
Cell管理命令①查看Cellnova-managecell_v2list_cells--verbose②添加Cellnova-managecell_v2create_cell[--name<Cell名>][--transport-url<RabbitMQ消息队列访问地址>][--database_connection<数据库连接字符串>][--verbose][--disabled]③发现主机nova-managecell_v2discover_hosts基本步骤在计算节点上分别安装和配置Nova组件验证Nova计算服务的安装在控制节点上分别安装和配置Nova组件在控制节点上安装和配置Nova组件Part
022在控制节点上安装和配置Nova组件——创建Nova数据库①以root用户身份连接到数据库服务器。②分别创建名为“nova_api”“nova”“nova_cell0”的3个数据库。MariaDB[(none)]>CREATEDATABASEnova_api;MariaDB[(none)]>CREATEDATABASEnova;MariaDB[(none)]>CREATEDATABASEnova_cell0;③对上述数据库nova的用户授予访问权限。④退出数据库访问客户端。2在控制节点上安装和配置Nova组件——获取云管理员凭据,创建计算服务凭证、API端点(1)获取云管理员凭据。(2)创建计算服务凭据。①创建nova用户。②将admin角色授予nova用户和service项目。③创建Nova的计算服务实体(名为“nova”的服务)。(3)创建计算服务的API端点。openstackendpointcreate--regionRegionOnecomputepublichttp://controller:8774/v2.1openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.1openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.12在控制节点上安装和配置Nova组件——安装和配置Nova组件(1)安装软件包。yum-yinstallopenstack-nova-apiopenstack-nova-conductoropenstack-nova-novncproxyopenstack-nova-scheduler(2)编辑/etc/nova/nova.conf配置文件。①在[DEFAULT]节中仅启用compute和metadataAPI。②在[api_database]和[database]节中配置数据库访问连接。③在[DEFAULT]节中配置RabbitMQ消息队列访问。④在[api]和[keystone_authtoken]节中配置身份服务访问。⑤在[DEFAULT]节中使用my_ip选项配置控制节点的管理网络接口IP地址。⑥在[DEFAULT]节中启用对网络服务的支持。⑦在[vnc]节中配置VNC代理使用控制节点的管理网络接口IP地址。⑧在[glance]节中配置镜像服务API的位置。⑨在[oslo_concurrency]节中配置锁定路径(LockPath)。⑩在[placement]节中配置放置服务API。2在控制节点上安装和配置Nova组件——安装和配置Nova组件(3)初始化nova-api数据库。su-s/bin/sh-c"nova-manageapi_dbsync"nova(4)注册cell0数据库。su-s/bin/sh-c"nova-managecell_v2map_cell0"nova(5)创建cell1单元。su-s/bin/sh-c"nova-managecell_v2create_cell--name=cell1--verbose"nova(6)初始化nova数据库。su-s/bin/sh-c"nova-managedbsync"nova(7)验证nova的cell0和cell1是否已正确注册。2在控制节点上安装和配置Nova组件——安装和配置Nova组件将计算服务配置为开机自动启动,并启动计算服务。systemctlenableopenstack-nova-api.serviceopenstack-nova-scheduler.service\openstack-nova-conductor.serviceopenstack-nova-novncproxy.servicesystemctlstartopenstack-nova-api.serviceopenstack-nova-scheduler.service\openstack-nova-conductor.serviceopenstack-nova-novncproxy.service在计算节点上安装和配置Nova组件Part
033在计算节点上安装和配置Nova组件——安装和配置Nova组件(1)安装软件包。yuminstallopenstack-nova-compute(2)编辑/etc/nova/nova.conf配置文件。①在[DEFAULT]节中仅启用compute和metadataAPI。②在[DEFAULT]节中配置RabbitMQ消息队列访问。③在[api]和[keystone_authtoken]节中配置身份服务访问。④在[DEFAULT]节中使用my_ip选项配置计算节点的管理网络接口IP地址。⑤在[DEFAULT]节中启用对网络服务的支持。⑥在[vnc]节中启用和配置远程控制台访问。⑦在[glance]节中配置镜像服务API的位置。⑨在[placement]节中配置放置服务API。3在计算节点上安装和配置Nova组件——安装和配置Nova组件(1)确定计算节点是否支持虚拟机的硬件加速。[root@compute1~]#egrep-c'(vmx|svm)'/proc/cpuinfo4(2)启动计算服务及其依赖组件,并将其配置为开机自动启动。systemctlenablelibvirtd.serviceopenstack-nova-compute.servicesystemctlstartlibvirtd.serviceopenstack-nova-compute.service3在计算节点上安装和配置Nova组件——将计算节点添加到cell数据库在控制节点上进行下列操作。(1)确认数据库中有哪些计算节点主机。.admin-openrc
openstackcomputeservicelist--servicenova-compute(2)注册计算节点主机。
su-s/bin/sh-c"nova-managecell_v2discover_hosts--verbose"nova验证Nova计算服务的安装Part
044验证Nova计算服务的安装(1)验证每个进程是否成功启动和注册。[root@controller~]#.admin-openrc[root@controller~]#openstackcomputeservicelist(2)查看计算节点。[root@controller~]#openstackhypervisorlist8.2.7安装和部署Neutron网络服务1Neutron简介3计算节点上Neutron组件的安装和配置2控制节点上Neutron组件的安装和配置4验证Neutron网络服务的安装Neutron简介Part
011Neutron简介Neutron是OpenStack中提供网络服务的核心组件,基于软件定义网络的思想,实现软件化的网络资源管理,在实现上充分利用了Linux系统中各种网络相关技术,支持第三方插件。基本步骤在控制节点上完成Neutron的安装准备在控制节点和计算节点上配置网络选项在计算节点上完成网络服务安装,并验证在计算节点和控制节点启动实例1Neutron基本步骤控制节点网络服务安装和配置Part
022控制节点网络服务安装和配置——创建Neutron数据库以root用户身份使用数据库访问客户端,并连接到数据库服务器。创建数据库并设置访问权限,完成之后退出数据库访问客户端。MariaDB[(none)]>CREATEDATABASEneutron;MariaDB[(none)]>GRANTALLPRIVILEGESONneutron.*TO'neutron'@'localhost'IDENTIFIEDBY'NEUTRON_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONneutron.*TO'neutron'@'%'IDENTIFIEDBY'NEUTRON_DBPASS';2控制节点网络服务安装和配置——加载admin用户的环境脚本,创建Neutron服务凭据、API端点(2)加载admin用户的环境脚本。(3)创建Neutron服务凭据。openstackusercreate--domaindefault--password-promptneutronopenstackroleadd--projectservice--userneutronadminopenstackservicecreate--nameneutron--description"OpenStackNetworking"network(4)创建Neutron服务的API端点。openstackendpointcreate--regionRegionOnenetworkpublichttp://controller:9696openstackendpointcreate--regionRegionOnenetworkinternalhttp://controller:9696openstackendpointcreate--regionRegionOnenetworkadminhttp://controller:96962控制节点网络服务安装和配置——配置网络选项
(1)安装网络组件。yum-yinstallopenstack-neutronopenstack-neutron-ml2openstack-neutron-openvswitchebtables(2)安装OVS。将OVS服务设置为开机自动启动,并启动该服务[root@controller~]#systemctlenableopenvswitch[root@controller~]#systemctlstartopenvswitch(3)配置Neutron服务器组件。编辑/etc/neutron/neutron.conf配置文件。①在[database]节中配置数据库访问连接。②在[DEFAULT]节中启用ML2插件、路由服务和重叠IP地址。③在[DEFAULT]节中配置RabbitMQ消息队列访问。④在[DEFAULT]和[keystone_authtoken]节中配置身份服务访问。⑤在[DEFAULT]和[nova]节中配置当网络拓扑发生变动时,网络服务能够通知计算服务。⑥在[oslo_concurrency]节中配置锁定路径。2控制节点网络服务安装和配置——配置网络选项(4)配置ML2插件。编辑/etc/neutron/plugins/ml2/ml2_conf.ini配置文件。①在[ml2]节中启用flat、VLAN和VXLAN网络。②在[ml2]节中启用VXLAN自服务网络。③在[ml2]节中启用OpenvSwitch代理和L2population机制。④在[ml2]节中启用端口安全扩展驱动。⑤在[ml2_type_flat]节中列出可以创建Flat类型提供者网络的物理网络名称。⑥在[ml2_type_vxlan]节中配置自服务网络的VXLAN网络ID范围。⑦在[securitygroup]节中,启用ipset以提高安全组规则的效率。2控制节点网络服务安装和配置——配置网络选项(5)创建OVS提供者网桥。①创建OVS内部网桥和集成网桥。[root@controller~]#ovs-vsctladd-brbr-int[root@controller~]#ovs-vsctladd-brbr-tun②更改网卡ens37的配置文件/etc/sysconfig/network-scripts/ifcfg-ens37。NAME=ens37DEVICE=ens37TYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-exONBOOT=yes③创建/etc/sysconfig/network-scripts/ifcfg-br-ex网卡配置文件。NAME=br-exDEVICE=br-exDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=1PREFIX=24GATEWAY=DNS1=14ONBOOT=yes2控制节点网络服务安装和配置——配置网络选项(5)创建OVS提供者网桥。④执行systemctlrestartnetwork命令重启network服务,列出当前OVS网桥列表。[root@controller~]#ovs-vsctllist-brbr-exbr-intbr-tun⑤列出br-ex网桥端口列表。[root@controller~]#ovs-vsctllist-portsbr-exens37(6)配置OVS代理。编辑/etc/neutron/plugins/ml2/openvswitch_agent.ini配置文件。[ovs]bridge_mappings=extnet:br-exlocal_ip=1[agent]tunnel_types=vxlanl2_population=True[securitygroup]firewall_driver=iptables_hybrid2控制节点网络服务安装和配置——配置网络选项(7)配置L3代理。编辑/etc/neutron/l3_agent.ini配置文件。[DEFAULT]#...interface_driver=openvswitch(8)配置DHCP代理。编辑/etc/neutron/dhcp_agent.ini配置文件。[DEFAULT]interface_driver=openvswitchenable_isolated_metadata=Trueforce_metadata=True2控制节点网络服务安装和配置——配置元数据代理编辑/etc/neutron/metadata_agent.ini配置文件。[DEFAULT]#...nova_metadata_host=controllermetadata_proxy_shared_secret=METADATA_SECRET2控制节点网络服务安装和配置——配置计算服务使用网络服务编辑/etc/nova/nova.conf配置文件,在[neutron]节中设置访问参数。[neutron]#...auth_url=http://controller:5000auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultregion_name=RegionOneproject_name=serviceusername=neutronpassword=NEUTRON_PASSservice_metadata_proxy=truemetadata_proxy_shared_secret=METADATA_SECRET2控制节点网络服务安装和配置——完成网络服务安装(1)网络服务初始化脚本需要一个指向ML2插件配置文件ln-s/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini(2)初始化数据库。su-s/bin/sh-c"neutron-db-manage--config-file/etc/neutron/neutron.conf--config-file/etc/neutron/plugins/ml2/ml2_conf.iniupgradehead"neutron(3)重启计算API服务。systemctlrestartopenstack-nova-api.service(4)启动网络服务并将其配置为开机自动启动。systemctlenableneutron-server.serviceneutron-openvswitch-agent.serviceneutron-dhcp-agent.serviceneutron-metadata-agent.serviceneutron-l3-agent.servicesystemctlstartneutron-server.serviceneutron-openvswitch-agent.serviceneutron-dhcp-agent.serviceneutron-metadata-agent.serviceneutron-l3-agent.service计算节点网络服务安装和配置Part
033计算节点网络服务安装和配置——安装Neutron组件计算节点需要安装Neutron的OVS代理组件。安装所需的软件包。yum-yinstallopenstack-neutron-openvswitchebtablesipset3计算节点网络服务安装和配置——配置网络通用组件编辑/etc/neutron/neutron.conf配置文件。(1)在[database]节中将连接设置语句注释掉。(2)在[DEFAULT]节中配置RabbitMQ消息队列访问。(3)在[DEFAULT]和[keystone_authtoken]节中配置身份服务访问。(4)在[oslo_concurrency]节中配置锁定路径。3计算节点网络服务安装和配置——配置网络选项编辑/etc/neutron/plugins/ml2/openvswitch_agent.ini配置文件。[ovs]local_ip=1[agent]tunnel_types=vxlanl2_population=True[securitygroup]firewall_driver=iptables_hybrid3计算节点网络服务安装和配置——配置计算服务使用网络服务编辑/etc/nova/nova.conffile配置文件。[neutron]#...auth_url=http://controller:5000auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultregion_name=RegionOneproject_name=serviceusername=neutronpassword=NEUTRON_PASS3计算节点网络服务安装和配置——完成网络服务安装重启计算服务。systemctlrestartopenstack-nova-compute.service启动OVS代理服务,并将其配置为开机自动启动。systemctlenableneutron-openvswitch-agent.servicesystemctlstartneutron-openvswitch-agent.service验证Neutron网络服务的安装Part
044验证Neutron网络服务的安装——验证网络服务运行在控制节点上加载admin用户的环境脚本。[root@controller~]#sourceadmin-openrc查看网络代理列表。[root@controller~]#openstacknetworkagentlist4验证Neutron网络服务的安装——创建初始网络在控制节点上执行下列操作。(1)加载admin用户的环境脚本。(2)创建一个名为“public1”的提供者网络。openstacknetworkcreate--projectadmin--share--external\--availability-zone-hintnova--provider-physical-networkextnet\--provider-network-typeflatpublic1(3)在上述提供者网络基础上创建名为“public1_subnet”的IPv4子网。openstacksubnetcreate--networkpublic1\--allocation-poolstart=1,end=0\--dns-nameserver14--gateway\--subnet-range/24public1_subnet4验证Neutron网络服务的安装——验证网络操作(1)在网络节点(由控制节点充当)上验证qrouter名称空间的创建。[root@controller~]#ipnetnsqrouter-2f05c572-6bf1-40bc-b0d1-2c01afc65560(id:1)qdhcp-1713f277-843b-4653-b9f5-91d69d602b72(id:0)(2)加载admin用户的环境脚本,然后创建一个实例类型。[root@controller~]#sourcedemo-openrc[root@controller~]#openstackflavorcreate--publicm1.tiny--id1--ram512--disk1--vcpus1--rxtx-factor1(3)加载普通用户demo的环境脚本。(4)创建安全组规则,以允许通过网络ping和SSH访问虚拟机实例。[root@controller~]#openstacksecuritygrouprulecreate--protoicmpdefault[root@controller~]#openstacksecuritygrouprulecreate--prototcp--dst-port4验证Neutron网络服务的安装——验证网络操作(5)基于上述自服务网络创建一个虚拟机实例。[root@controller~]#openstackservercreate--flavor1--imagecirros--networkprivate1testVM1(6)查看实例列表。(7)为虚拟机实例分配浮动IP地址以解决外部网络访问问题。①在提供者网络中创建一个浮动IP地址。[root@controller~]#openstackfloatingipcreatepublic1②为该实例分配该IP地址。[root@controller~]#openstackserveraddfloatingiptestVM13③在控制节点上ping该实例的浮动IP。(8)根据需要登录到该实例,测试到Internet或外部网络的通信。4验证Neutron网络服务的安装——基于提供者网络启动实例(1)参照控制节点为计算节点创建OVS外部网桥并调整OVS代理配置。①创建OVS外部网桥,并将提供者网络的网卡添加到该网桥的一个端口。②调整计算节点的OVS代理配置。编辑/etc/neutron/plugins/ml2/openvswitch_agent.ini配置文件。[ovs]
bridge_mappings=extnet:br-ex
重新启动OVS代理服务。[root@compute1~]#systemctlrestartneutron-openvswitch-agent.service(2)测试基于提供者网络启动实例。①基于上述提供者网络重新创建一个虚拟机实例。[root@controller~]#sourcedemo-openrc[root@controller~]#openstackserverdeletetestVM2[root@controller~]#openstackservercreate--flavor1--imagecirros--networkpublic1testVM2②查看实例列表,可以发现该实例创建成功,并通过提供者网络获得了IP地址。[root@controller~]#openstackserverlist③在控制节点上ping该实例的浮动IP,测试到该实例的通信。8.2.8安装和部署Horizon仪表板Horizon简介Part
011Horizon简介Horizon是一个使用Django开发的项目,旨在为Openstack提供一个功能全面的操作面板,包括一个可扩展的框架用于构造新的可重用面板。基本步骤安装和配置Horizon组件重启Web服务和会话存储服务验证仪表板操作Horizon组件的安装和配置Part
022Horizon组件的安装和配置——安装和配置Horizon组件(1)安装软件包。yum-yinstallopenstack-dashboard(2)编辑/etc/openstack-dashboard/local_settings配置文件。①配置仪表板使用控制节点上的OpenStack服务。②设置允许访问Dashboard的主机。③配置Memcached会话存储服务。④启用IdentityAPIv3支持。⑤启用对多个域的支持。
(3)修改/etc/httpd/conf.d/openstack-dashboard.conf配置文件。WSGIApplicationGroup%{GLOBAL}⑥配置API版本。⑦配置通过仪表板创建的用户的默认域。⑧配置通过仪表板创建的用户的默认角色。⑨根据需要配置时区。重启Web服务和会话存储服务Part
033重启Web服务和会话存储服务systemctlrestarthttpd.servicememcached.service8.3搭建大数据平台项目介绍Part
011项目介绍某出行公司拥有超过4.5亿用户,在中国400多个城市开展服务,每天的订单量高达2500W,每天要处理的数据量4500TB。仅北京,工作日的早高峰一分钟内就会有超过1600人在使用滴滴打车。通过对这些数据进行分析,了解到不同区域、不同时段运营情况。通过这些出行大数据,还可以看到不同城市的教育、医疗资源的分布,长期观察对城市经济、社会资源的发展、变迁情况,有非常有研究价值。
本次的案例将某出行打车的日志数据来进行数据分析,例如:我们需要统计某一天订单量是多少、预约订单与非预约订单的占比是多少、不同时段订单占比等。通过本案例,我们将使用以下技术来进行数据分析:HDFSHiveSparkSQLZeppelinSqoopSuperset1项目架构用户打车的订单数据非常庞大。选择一个大规模数据的分布式文件系统来存储这些日志文件,基于Hadoop的HDFS文件系统来存储数据。为了方便进行数据分析,将这些日志文件的数据映射为一张一张的表,基于Hive来构建数据仓库。所有的数据,都会在Hive集中进行管理。为了提高数据处理的性能。基于Spark引擎来进行数据开发,所有的应用程序都将运行在Spark集群上,保证数据被高性能地处理。使用Zeppelin来快速将数据进行SQL指令交互。使用Sqoop导出分析后的数据到传统型数据库,便于后期应用。使用Superset来实现数据可视化展示。1项目架构数据仓库Part
022数据仓库定义数据仓库,是很大的数据存储集合,出于企业的分析性报告和决策支持而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI能力,指导业务流程改进、时间监视,以及成本、质量控制。数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等。2数据仓库操作型数据仓储数据仓库数据应用按照数据流入流出的过程,数据仓库架构可分为3层:2数据仓库ETLETL是将业务系统的数据经过抽取(Extract)、转换(Transform)、清洗之后加载(Load)到数据仓库的过程,目的是将企业中分散、零乱、标准不统一的数据整合到一起。Zeppelin使用Zeppelin来连接SparkSQL的ThriftServer,可以直观地查看Hive中的数据,也可以用图表的方式展示数据。安装大数据相关组件Part
03安装步骤安装mysql安装Hive并配置文件安装Spark并配置文件安装Zeppelin并配置文件安装Sqoop并配置文件安装Flume并配置文件安装Superset并配置文件8.4
大数据采集与预处理数据采集Part
011数据采集Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统。它可以采集文件、Socket数据包等各种形式的源数据,也可以将采集到的数据输出到HDFS、HBase、Hive、Kafka等众多外部存储系统中。1数据采集——用户打车订单日志字段orderId订单idtelephone打车用户手机long用户发起打车的经度lat用户发起打车的纬度province所在省份city所在城市es_money预估打车费用gender用户信息-性别profession用户信息-行业age_range年龄段(70后、80后、...)tip小费subscribe是否预约(0-非预约、1-预约)sub_time预约时间is_agent是否代叫(0-本人、1-代叫)agent_telephone预约人手机order_time订单时间1数据采集——用户取消订单日志字段orderId订单IDcstm_telephone客户联系电话long取消订单的经度lat取消订单的纬度province所在省份city所在城市es_distance预估距离gender性别profession行业age_range年龄段reason取消订单原因(1-选择了其他交通方式、2-与司机达成一致,取消订单、3-投诉司机没来接我、4-已不需要用车、5-无理由取消订单)cancel_time取消时间1数据采集——用户支付日志字段ID支付订单IDorderId订单IDlng目的地的经度(支付地址)lat目的地的纬度(支付地址)province省份city城市total_money车费总价real_pay_money实际支付总额passenger_additional_money乘客额外加价base_money车费合计has_coupon是否使用优惠券(0-不使用、1-使用)coupon_total优惠券合计pay_way支付方式(0-微信支付、1-支付宝支付、2-QQ钱包支付、3-一网通银行卡支付)mileage里程(单位公里)pay_time支付时间1数据采集——用户评价日志字段id评价日志唯一IDorderId订单IDpassenger_telephone用户电话passenger_province用户所在省份passenger_city用户所在城市level评价等级(1-一颗星、...5-五星)evaluate_time评价时间构建数据仓库Part
022构建数据仓库目标:分析用户打车的订单,进行各类的指标计算(指标,例如:订单的总数、订单的总支付金额等等)。将日志数据上传到HDFS保存下来,每天都可以进行上传,HDFS可以保存海量的数据。将HDFS中的数据文件,对应到Hive的表中。业务系统的日志数据不一定是能够直接进行分析,例如:需要分析不同时段的订单占比,凌晨有多少订单、早上有多少订单、上午有多少订单等。但是,我们发现,原始的日志文件中,并没有区分该订单的是哪个时间段的字段,对日志文件的原始数据进行预处理,才能进行分析。考虑几类数据:1.原始日志数据(业务系统中保存的日志文件数据)2.预处理后的数据3.分析结果数据这些数据通过Hive来进行处理,将数据映射为一张张的表,然后就可以通过编写HQL来处理数据了,简单、快捷、高效。为了区分以上这些数据,将这些数据对应的表分别保存在不同的数据库中。2构建数据仓库——数仓分层为了方便组织、管理上述的三类数据,将数仓分成不同的层,分别将三类不同的数据保存在Hive的不同数据库中。数据类别数据库名分层名原始日志数据(业务系统中保存的日志文件数据)ods_didi临时存储层(ODS)预处理后的数据dw_didi数据仓库层(DW)分析结果数据app_didi应用层(APP)--
创建ods库create
database
if
not
exists
ods_didi;--
创建dw库create
database
if
not
exists
dw_didi;--
创建app库create
database
if
not
exists
app_didi;2构建数据仓库——创建表——ods创建用户打车订单表根据用户打车订单数据,我们需要创建按照日期分区的表:--创建用户订单表结构create
table
if
not
existsods_didi.t_user_order(
orderIdstringcomment
'订单id’,
telephonestringcomment
'打车用户手机’,
lngstringcomment
'用户发起打车的经度’,
latstringcomment
'用户发起打车的纬度’,
provincestringcomment
'所在省份’,
citystringcomment
'所在城市’,
es_moneydouble
comment
'预估打车费用’,
genderstringcomment
'用户信息-性别’,
professionstringcomment
'用户信息-行业’,
age_rangestringcomment
'年龄段(70后、80后、...)’,
tipdouble
comment
'小费’,
subscribeinteger
comment
'是否预约(0-非预约、1-预约)’,
sub_timestringcomment
'预约时间’,
is_agentinteger
comment
'是否代叫(0-本人、1-代叫)’,
agent_telephonestringcomment
'预约人手机’,
order_timestringcomment
'预约时间’
)
partitionedby
(dtstringcomment
'时间分区’)
ROW
FORMATDELIMITEDFIELDSTERMINATEDBY
','
;
2构建数据仓库——创建表——ods创建取消订单表根据用户取消订单数据,我们需要创建按照日期分区的表:create
table
if
not
existsods_didi.t_user_cancel_order(
orderIdstringcomment
'订单ID’,
cstm_telephonestringcomment
'客户联系电话’,
lngstringcomment
'取消订单的经度’,
latstringcomment
'取消订单的纬度’,
provincestringcomment
'所在省份’,
citystringcomment
'所在城市’,
es_distancedouble
comment
'预估距离’,
genderstringcomment
'性别’,
professionstringcomment
'行业’,
age_rangestringcomment
'年龄段’,
reasoninteger
comment
'取消订单原因(1-选择了其他交通方式、2-与司机达成一致,取消订单、3-投诉司机没来接我、4-已不需要用车、5-无理由取消订单)’,cancel_timestringcomment
'取消时间’
)
partitionedby
(dtstringcomment
'时间分区’)ROW
FORMATDELIMITEDFIELDSTERMINATEDBY
','
;
2构建数据仓库——创建表——ods创建订单表支付表根据用户订单支付数据,我们需要创建按照日期分区的表:create
table
if
not
existsods_didi.t_user_pay_order(
idstringcomment
'支付订单ID’,
orderIdstringcomment
'订单ID’,
lngstringcomment
'目的地的经度(支付地址)’,
latstringcomment
'目的地的纬度(支付地址)’,
provincestringcomment
'省份’,
citystringcomment
'城市’,
total_moneydouble
comment
'车费总价’,
real_pay_moneydouble
comment
'实际支付总额’,
passenger_additional_moneydouble
comment
'乘客额外加价’,
base_moneydouble
comment
'车费合计’,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 优-质服务制度规范
- 幼儿园安全管理工作专项会议记录
- 幼儿园安全隐患排查治理细则
- 有创血压测量操作及护理
- p2p模拟试题及答案
- 新闻传媒行业编辑部主任KPI考核表
- 非标准职位绩效指标表
- 考前满分套路|初中生物消化系统课件
- 外研版九年级英语上册 新学期预科精讲课件
- 办公环境设计与员工健康促进指导
- (2026年)急性有机磷农药中毒诊治临床专家共识
- 康复治疗质控管理课件
- 2023版非气管插管患者清醒俯卧位实施策略中国专家共识
- 精神科抢救室仪器使用
- 腹膜透析患者药物护理实践指南(2025年版)
- 2025年度医院中医科工作总结暨2026年发展规划
- 机械行业质量管理体系文件
- 保洁员培训资料课件完整版
- 中小企业应收账款风险转移的实操案例-工具应用与财务适配的落地借鉴答辩汇报
- 正畸课件培训
- 江苏省南京市2026届高三年级9月学情调研英语试卷
评论
0/150
提交评论