接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作。

  特别感谢https://www.cnblogs.com/openstackteam/p/5519961.html,Exsi虚拟机下网络不通卡了我半个月。特此说明:如果OpenStack的宿主机是Exsi创建的虚拟机,则必须进行如下操作,选中OpenStack所在的Esxi系统-->进入摘要-->选中OpenStack宿主机所使用的虚拟网卡-->右键,编辑设置-->选择设置页面的安全-->混杂模式、MAC地址更改、伪传输全部设置为接受。希望后来者不会再被坑了

(1).使用命令创建OpenStack云主机

 1)安装OpenStack客户端,方便使用命令行管理

  1. [root@OpenStack240 ~]# pip install python-openstackclient  //pip安装OpenStack客户端
  2. ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'
  3. [root@OpenStack240 ~]# pip install more-itertools==5.0.0
  4. [root@OpenStack240 ~]# pip install python-openstackclient
  5. ERROR: dogpile-cache 0.9.0 has requirement decorator>=4.0.0, but you'll have decorator 3.4.0 which is incompatible.
  6. ERROR: Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which
  7. files belong to it which would lead to only a partial uninstall.
  8. [root@OpenStack240 ~]# pip install dogpile-cache
  9. [root@OpenStack240 ~]# pip install --ignore-installed ipaddress
  10. [root@OpenStack240 ~]# pip install python-openstackclient

  可以看到上面总共报了3个错误。第一个和第二个错误较为简单,只需要升级相应模块即可;第三个错误需要强制升级。

  注意1:在pip安装时遇到“ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'”并不一定要升级python,也可以使用“pip install more-itertools==5.0.0”解决该问题。

  注意2:在pip安装时遇到“ERROR: Cannot uninstall '模块名'. It is a distutils installed...”时,需要使用“pip install --ignore-installed [报错的模块名]”安装,之后再重新pip安装。

 2)安装OpenStack网络相关命令

  1. [root@OpenStack240 ~]# pip install python-neutronclient

  如果出现某个模块已安装的提示,可以使用“pip install --ignore-installed [模块]”来强制安装解决该问题。

 3)修改init-runonce脚本指定VIP地址范围,并使用该脚本创建OpenStack云项目

  修改init-runonce脚本

  1. [root@OpenStack240 ~]# vim /usr/share/kolla-ansible/init-runonce
  2. //修改第19~21行,是网卡ens33所接入的局域网地址
  3. EXT_NET_CIDR='192.168.128.0/24'
  4. EXT_NET_RANGE='start=192.168.128.200,end=192.168.128.210'  //取值范围
  5. EXT_NET_GATEWAY='192.168.128.254'

  使用init-runonce脚本创建一个OpenStack云项目。注意:该init-runonce脚本只能运行一次,断开就不能再运行了

  1. //查看是否存在,如果不存在运行kolla-ansible -i /etc/kolla/all-in-one post-deploy
  2. [root@OpenStack240 ~]# ls /etc/kolla/admin-openrc.sh
  3. /etc/kolla/admin-openrc.sh
  4. [root@OpenStack240 ~]# source /etc/kolla/admin-openrc.sh  //加载到环境变量中
  5. [root@OpenStack240 ~]# sh /usr/share/kolla-ansible/init-runonce  //执行init-runonce脚本
  6. //成功后会提示执行以下命令,可能会不一样,但只要没有报错,执行就可以了
  7. To deploy a demo instance, run:
  8.  
  9. openstack server create \
  10. --image cirros \
  11. --flavor m1.tiny \
  12. --key-name mykey \
  13. --network demo-net \
  14. demo1
  15. //执行提示的命令
  16. [root@OpenStack240 ~]# openstack server create \
  17. > --image cirros \  //指定使用的镜像ID
  18. > --flavor m1.tiny \  //指定使用的flavor名称
  19. > --key-name mykey \  //指定key名称
  20. > --network demo-net \  //指定网络名称
  21. > demo1  //指定新建虚拟机的名称

  虚拟机默认账号密码在登录时会有提示,如下

  扩展:创建虚拟机命令中的参数可以到Web查看,当然也可以使用命令查看参数列表。确保加载了环境变量“source /etc/kolla/admin-openrc.sh”,才能使用以下命令。

  1. //查看已有镜像ID
  2. [root@OpenStack240 ~]# openstack image list
  3. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  4. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  5. +--------------------------------------+--------+--------+
  6. | ID | Name | Status |
  7. +--------------------------------------+--------+--------+
  8. | 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros | active |
  9. +--------------------------------------+--------+--------+
  10. [root@OpenStack240 ~]# glance image-list  //镜像管理组件glance
  11. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  12. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  13. +--------------------------------------+--------+
  14. | ID | Name |
  15. +--------------------------------------+--------+
  16. | 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros |
  17. +--------------------------------------+--------+
  18. //查看flavor
  19. [root@OpenStack240 ~]# openstack network flavor list
  20. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  21. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  22.  
  23. [root@OpenStack240 ~]# nova flavor-list  //计算管理组件nova
  24. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  25. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  26. +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
  27. | ID | Name | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
  28. +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
  29. | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | - |
  30. | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | - |
  31. | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | - |
  32. | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | - |
  33. | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | - |
  34. +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
  35. //查看网络
  36. [root@OpenStack240 ~]# openstack network list
  37. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  38. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  39. +--------------------------------------+----------+--------------------------------------+
  40. | ID | Name | Subnets |
  41. +--------------------------------------+----------+--------------------------------------+
  42. | 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |
  43. | 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |
  44. +--------------------------------------+----------+--------------------------------------+
  45. [root@OpenStack240 ~]# neutron net-list  //网络组件neutron
  46. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  47. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  48. neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
  49. +--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
  50. | id | name | tenant_id | subnets |
  51. +--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
  52. | 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 7fff31018c7b4e0f82e9431c5c86e87c | 3b52a206-72e8-4b0e-8c28-827619c62b90 10.0.0.0/24 |
  53. | 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 7fff31018c7b4e0f82e9431c5c86e87c | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 192.168.128.0/24 |
  54. +--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

  在以上没有错误的情况下,此时就可以到Web页面看到名为demo1的实例了(项目-->计算-->实例)。如下:

  剩下的配置可以通过Web页面进行配置。

 4)给云主机分配浮动IP地址

  在Web页面中选择:项目-->网络-->浮动IP-->分配IP给项目

  之后出出现如下页面,选择资源池,选填描述,点击分配IP

  创建成功后的浮动IP如下所示:

  另外可以通过项目-->网络-->网络拓扑查看网络拓扑结构,如下:

  还可以在项目-->网络-->网络查看网络信息,如下:

  最重要的绑定浮动IP步骤如下,在项目-->计算-->实例-->更多-->绑定浮动IP

  出现如下页面,选择IP地址和待连接的端口,进行关联

  最后如下:

(2).使用命令查看云主机项目信息和网络连通性

  要在确保加载了环境变量的情况下执行以下命令“source /etc/kolla/admin-openrc.sh”。

  1. [root@OpenStack240 ~]# openstack router list
  2. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  3. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  4. +--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
  5. | ID | Name | Status | State | Project | Distributed | HA |
  6. +--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
  7. | f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f | demo-router | ACTIVE | UP | 7fff31018c7b4e0f82e9431c5c86e87c | False | False |
  8. +--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
  9. [root@OpenStack240 ~]# openstack router show demo-router
  10. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  11. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  12. +-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  13. | Field | Value |
  14. +-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | admin_state_up | UP |
  16. | availability_zone_hints | |
  17. | availability_zones | nova |
  18. | created_at | 2019-11-30T08:37:36Z |
  19. | description | |
  20. | distributed | False |
  21. | external_gateway_info | {"network_id": "8c73de34-f031-435a-9d80-ceaba6573d3e", "enable_snat": true, "external_fixed_ips": [{"subnet_id": "9d0c5344-d0de-465d-9eb3-65906d80d6e1", "ip_address": "192.168.128.206"}]} |
  22. | flavor_id | None |
  23. | ha | False |
  24. | id | f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f |
  25. | interfaces_info | [{"subnet_id": "3b52a206-72e8-4b0e-8c28-827619c62b90", "ip_address": "10.0.0.1", "port_id": "a15eefcc-f85c-4ea9-8b89-c6e35047b4aa"}] |
  26. | location | cloud='', project.domain_id=, project.domain_name='Default', project.id='7fff31018c7b4e0f82e9431c5c86e87c', project.name='admin', region_name='RegionOne', zone= |
  27. | name | demo-router |
  28. | project_id | 7fff31018c7b4e0f82e9431c5c86e87c |
  29. | revision_number | 4 |
  30. | routes | |
  31. | status | ACTIVE |
  32. | tags | |
  33. | updated_at | 2019-11-30T08:37:47Z |
  34. +-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. [root@OpenStack240 ~]# openstack network list  //查看网络信息
  36. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  37. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  38. +--------------------------------------+----------+--------------------------------------+
  39. | ID | Name | Subnets |
  40. +--------------------------------------+----------+--------------------------------------+
  41. | 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |
  42. | 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |
  43. +--------------------------------------+----------+--------------------------------------+
  44. [root@OpenStack240 ~]# openstack subnet list  //查看子网信息
  45. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7)
  46. or chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  47. +--------------------------------------+----------------+--------------------------------------+------------------+
  48. | ID | Name | Network | Subnet |
  49. +--------------------------------------+----------------+--------------------------------------+------------------+
  50. | 3b52a206-72e8-4b0e-8c28-827619c62b90 | demo-subnet | 2de2f8e9-f134-4d92-8202-be9b45d09355 | 10.0.0.0/24 |
  51. | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 | public1-subnet | 8c73de34-f031-435a-9d80-ceaba6573d3e | 192.168.128.0/24 |
  52. +--------------------------------------+----------------+--------------------------------------+------------------+
  53. [root@OpenStack240 ~]# openstack server show demo1  //查看云主机实例信息
  54. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
  55. chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
  56. +-------------------------------------+----------------------------------------------------------+
  57. | Field | Value |
  58. +-------------------------------------+----------------------------------------------------------+
  59. | OS-DCF:diskConfig | MANUAL |
  60. | OS-EXT-AZ:availability_zone | nova |
  61. | OS-EXT-SRV-ATTR:host | OpenStack240 |
  62. | OS-EXT-SRV-ATTR:hypervisor_hostname | OpenStack240 |
  63. | OS-EXT-SRV-ATTR:instance_name | instance-00000001 |
  64. | OS-EXT-STS:power_state | Running |
  65. | OS-EXT-STS:task_state | None |
  66. | OS-EXT-STS:vm_state | active |
  67. | OS-SRV-USG:launched_at | 2019-11-30T08:40:18.000000 |
  68. | OS-SRV-USG:terminated_at | None |
  69. | accessIPv4 | |
  70. | accessIPv6 | |
  71. | addresses | demo-net=10.0.0.45, 192.168.128.203 |
  72. | config_drive | |
  73. | created | 2019-11-30T08:39:45Z |
  74. | flavor | m1.tiny (1) |
  75. | hostId | d6416488e7208ea8095807bf5c7dd880b962d890292ba8f8940697f2 |
  76. | id | c90e4476-ec3f-44d2-8041-58c65a65e6dc |
  77. | image | cirros (3133fb61-24d2-4ee4-88d2-d7f4ae313ee4) |
  78. | key_name | mykey |
  79. | name | demo1 |
  80. | progress | 0 |
  81. | project_id | 7fff31018c7b4e0f82e9431c5c86e87c |
  82. | properties | |
  83. | security_groups | name='default' |
  84. | status | ACTIVE |
  85. | updated | 2019-11-30T08:40:18Z |
  86. | user_id | b46452d885d14cb78fb4640ed8672ffe |
  87. | volumes_attached | |
  88. +-------------------------------------+----------------------------------------------------------+

(3).使用Web界面创建OpenStack云主机

 1)创建一个OpenStack全新的项目,并分配给一个新用户

  创建一个名为testuser的用户,身份管理-->用户-->创建用户-->填写用户名和密码-->创建用户

  创建一个名为test的项目,身份管理-->项目-->创建项目-->填写项目名称-->转到项目成员-->通过左侧的加号将testuser加入右边,并选择成员的角色-->创建项目。项目组类似用户组的作用,根据需求使用。

  查看项目的配额,根据需求修改。身份管理-->项目-->修改配额-->编辑计算里的实例、VCPU数量和内存(物理机CPU4核,内存16G)-->转到网络-->修改浮动IP-->保存。

  另外,还可以回到身份管理-->用户-->testuser的编辑-->将test项目作为testuser的主项目

  此时我们就可以转到testuser用户下进行操作。

 2)创建实例类型

  创建一个新的实例类型,在创建实例时选择不同的实例类型分配设置好的资源大小,管理员-->计算-->实例类型-->创建实例类型-->填写名称、VCPU数量、内存和根磁盘-->创建实例类型。注意:设置的VCPU数量、内存和根磁盘必须小于物理机剩余资源。

  说明:临时磁盘是指除根磁盘(系统盘)和Swap磁盘之外的磁盘,可以将其当作数据盘。

 3)上传镜像

  这里以cirros镜像作为例子,下载地址http://download.cirros-cloud.net/0.4.0/,下载cirros-0.4.0-[系统架构]-disk.img。现在完成后通过网页创建镜像,管理员-->计算-->镜像-->创建镜像-->填写镜像名称,选择镜像文件地址,选择镜像格式-->创建镜像,元数据根据需求进行修改。注意:cirros镜像默认格式为qcow2格式

 4)创建两个网络:内网和外网

  创建内网in,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写段ID-->当创建子网被选中时,点击下一项进入创建子网页面-->填写子网相关信息,点击下一项-->选中激活DHCP,填写相关信息,点击创建。

  创建外网out,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写物理网络,勾选外部网络,点击下一项-->填写子网相关信息,点击下一项-->取消激活DHCP,填写相关信息,点击创建。注意:(基于供应商网络为flat下)物理网络需要是ml2_conf.ini文件中的参数“flat_networks = physnet1”,使用kolla安装的请查看/etc/kolla/neutron-openvswitch-agent/ml2_conf.ini,完整安装的请查看/etc/neutron/plugins/ml2/ml2_conf.ini。

  创建完成后可以到项目-->网络-->网络拓扑中查看。

 5)创建路由,连接内外网络

  创建一个路由连接内外网络,管理员-->网络-->路由-->创建路由-->填写路由名称、选择项目和外部网络-->新建路由。

  此时虚拟路由与out网络连接,但还没有与in网络连接,可以在网络拓扑中明显看出

  所以现在需要是路由与in网络连接,管理员-->网络-->路由-->点击路由的名称,进入到内部编辑页面-->接口-->添加接口-->选择子网,填写IP地址-->提交

  等待几秒查看两个接口的状态是否是运行中,然后再看网络拓扑

 6)创建专属安全组

  默认存在一个default安全组,规则为全部放行,实际使用中并不会如此使用,这里创建一个ssh-ping安全组,只放行TCP协议22端口(ssh)和所有ICMP协议(ping)。

  创建名为ssh-ping的安全组,项目-->网络-->安全组-->创建安全组-->填写名称-->创建安全组。

  编辑ssh-ping安全组的规则,项目-->网络-->安全组-->管理规则,进入管理规则页面-->添加规则-->填写相关信息-->添加。注意:0.0.0.0/0表示所有IP

 7)创建专属密钥对

  创建一个专属密钥对,项目-->计算-->密钥对-->创建密钥对-->填写密钥对名称,选择密钥类型-->创建密钥对。

  密钥可以点击密钥旁的小箭头查看,或点击密钥名称查看

 8)分配浮动IP(外网IP)

  准备一个浮动IP(外网IP),项目-->网络-->浮动IP-->分配IP给项目-->选择资源池-->分配IP

 9)创建实例

  准备工作全部完成后终于可以创建实例了,项目-->计算-->实例-->创建实例-->填写实例名称和数量-->点击下一项,进入源页面-->选择源,将其中一个移动到上方-->点击下一项,进入实例类型页面-->将其中一个实例类型移动到上方-->点击下一项,进入网络页面-->选择内网-->网络接口默认即可,直接跳到安全组-->调整安全组、密钥对和其他配置-->创建实例

  最后绑定浮动IP,

参考:https://blog.csdn.net/chenwei8280/article/details/79601885

   https://blog.csdn.net/chenwei8280/article/details/80876451

   https://blog.csdn.net/Poo_Chai/article/details/80858428

   https://www.cnblogs.com/daisyyang/p/11093585.html

OpenStack(三)——allinone云平台的使用方法的更多相关文章

  1. 搭建OpenStack先电云平台

    实际操作示意图 在VMware里面创建两台centos7的虚拟机作为搭建云平台的两节点配置如下: 1.第一台虚拟机   作为控制节点 2CPU 3G以上内存 硬盘50G 网络适配器一个nat 一个仅主 ...

  2. Discuz! X3.1直接进入云平台列表的方法

    Discuz! X3.1已经改版,后台不能直接进云平台列表,不方便操作,操作云平台服务时,大家可以这样操作: 1.登录后台:2.访问域名进入云平台列表http://你域名/admin.php?fram ...

  3. openStack telemetry/ceilometry 云平台资源监控度量

  4. 干货 | 手把手教你搭建一套OpenStack云平台

    1 前言 今天我们为一位朋友搭建一套OpenStack云平台. 我们使用Kolla部署stein版本的OpenStack云平台. kolla是用于自动化部署OpenStack的一个项目,它基于dock ...

  5. Kolla部署Pike版本的OpenStack-allinone云平台

    1 openstack 概述 openstack概述 : OpenStack是一个NASA美国国家航空航天局和Rackspace合作研发 的,以Apache许可证授权,并且是一个自由软件和开放源代码项 ...

  6. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  7. 搭建Openstack云平台

    实验室需要做一个大数据平台项目,临时接下需要部署实验室云平台的任务,由于之前没有接触过相关技术,仅以此篇作为纪录文,记录一下我的openstack的初步学习以及搭建过程. 1.openstcak及其组 ...

  8. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  9. OpenStack(二)——使用Kolla部署OpenStack-allinone云平台

    (1).Kolla概述 Kolla是OpenStack下用于自动化部署的一个项目,它基于docker和ansible来实现,其中docker主要负责镜像制作和容器管理,ansible主要负责环境的部署 ...

随机推荐

  1. 洛谷P4180 【模板】严格次小生成树[BJWC2010] 题解

    虽然中途写的时候有点波折,但是最后一发A,还是有点爽. 这虽然是个模板题,但还是涉及到许多知识的= = 首先我们求出一个最小生成树,并且求出其边权和\(ans\).那么现在考虑加入其它的边,每次加入在 ...

  2. 转换复杂的JSON对象为 Map对象

    最近项目需要跟客户对接一个webservice接口,客户那传json串过来,属于比较复杂的json串,这里跟大家分享下我项目中所用的解析方法: 该方法需要以下jar package com.test; ...

  3. spark调优——算子调优

    算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作.如果是普通的map算子,假设一个partition ...

  4. The difference between Virtual DOM and DOM

    dom是结构化的文本信息的抽象,是结构化的文本信息在内存中的表示 是操作结构化文本信息的api. Follow: Follow React attacks us with the virtual DO ...

  5. Ad-hoc--拉丁文--for this purpose only

    Ad-hoc这个词来源于拉丁语,在百度上解释为“for this purpose only”, 在wiki上解释为“for this”,其中文在wiki上被解释成包含“特设的.特定目的的(地).即席的 ...

  6. 利用python画小猪佩奇

    import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),"pink&quo ...

  7. 在Visual Studio中调试时,如何检查有关进程令牌的详细信息?

    从Visual Studio 2005开始,watch窗口获得了一个伪寄存器,用于调查有关进程令牌的详细信息.所以,你只要开始调试,在监视窗口中写下“$user”, 有时查看特权和组的扩展视图会很有趣 ...

  8. gtibase rpm包制作

    gitbase 是一个很不错的代码分析工具,我们可以直接使用sql来分析团队的代码,以下是rpm 包的制作 简单说明 rpm 包的制作使用了fpm 一个简单,方便可以跨平台的软件包制作工具 gitba ...

  9. Quartus RTL Simulation

    今天在做某个module的RTL Simulation时,发现之前的do文件有问题,导致信号没有导入.将sim中的XXX_tb设置成了XXX所致.改正后无误. 可参考: https://www.cnb ...

  10. ARC096 E Everything on It [容斥,斯特林数]

    Atcoder 一个900分的题耗了我这么久--而且官方题解还那么短--必须纪念一下-- 思路 发现每种元素必须出现两次以上的限制极为恶心,所以容斥,枚举出现0/1次的元素个数分别有几个.设出现1次的 ...