精华内容
下载资源
问答
  • 1.前言Openstack计算服务通过认证服务获取认证;通过镜像服务获取镜像;通过仪表盘提供的用户界面与用户交互。...Openstack计算服务包含如下几部分,每部分都对应一组件: nova-api接收并响应终端用户的计算服务A

    1.前言

    Openstack计算服务通过认证服务获取认证;通过镜像服务获取镜像;通过仪表盘提供的用户界面与用户交互。镜像的存取受工程和用户的限制,配额受工程的限制(例如不同工程允许虚拟机实例数量不同)。Openstack计算服务可以在标准硬件上进行横向扩展,可以下载镜像并开启虚拟机实例。
    Openstack计算服务包含如下几部分,每部分都对应一个组件:

    • nova-api

      接收并响应终端用户的计算服务API调用。该服务执行若干策略并且发起大多数编排行为,比如运行某个虚拟机实例。

    • nova-api-metadata 服务
      接收来自虚拟机实例的元数据请求。当用户处在多主机模式中与nova-network协作时,通常会使用nova-api-metadata 。更多信息参考Metadata service in the OpenStack Administrator Guide.

    • nova-compute service
      一个守护进程(worker daemon),通过虚拟机管理程序的API来创建和销毁虚拟机实例。例如:
      XenAPI for XenServer/XCP
      libvirt for KVM or QEMU
      VMwareAPI for VMware
      处理过程是相当复杂的。基本的,该进程接收队列中的动作并且声称一系列系统命令,例如启动一个KVM实例或者在数据库中更新它的状态。

    • nova-scheduler service
      从队列中获取虚拟机实例的请求并决定其运行在哪个实际的计算服务节点。

    • nova-conductor module
      提供nove-compute服务与数据库的交互方式,防止nova-compute服务与云计算系统数据库有直接的交互。Nova-conductor支持横向扩展。需要注意的是,不要将nova-conductor服务部署在运行着nova-compute服务的节点上。更多信息,参见metadata service
      理论上,Openstack计算服务支持任何形式的关系型数据库。一般情况下,测试与研发过程多使用SQLite3,还包括MySQL,PostgreSQL。

    2.控制节点安装

    2.1安装前提

    在安装和配置Nova前,需要创建数据库,服务认证和API endpoint。

    2.1.1 创建数据库

    • 创建使用root用户登陆数据库client:
      mysql -u root -p

    • 2.创建nova-api和nova数据库
      MariaDB [(none)]> CREATE DATABASE nova_api;
      MariaDB [(none)]> CREATE DATABASE nova;

    • 3.给数据库赋予权限
      NOVA_DBPASS用合适的密码替代:123456

    GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
    
    GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%'  IDENTIFIED BY 'NOVA_DBPASS';
    
    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
    
    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
    
    • 4.退出数据库:exit

    2.1.2source admin-openrc

    . admin-openrc

    2.1.3 创建服务授权证书

    • 1.创建“nova”user,用户密码为123456
      openstack user create --domain default --password-prompt nova
      这里写图片描述
    • 2.将admin角色添加到“nova”user
      openstack role add --project service --user nova admin
    • 3.创建nova服务实例
      openstack service create --name nova --description "OpenStack Compute" compute
      这里写图片描述

    2.1.4 创建计算服务API endpoint

    • Public

      openstack endpoint create --region RegionOne \ 
      compute public http://controller:8774/v2.1/%\(tenant_id\)s

      这里写图片描述

    • Internal

    openstack endpoint create --region RegionOne \ 
    compute internal http://controller:8774/v2.1/%\(tenant_id\)s

    这里写图片描述

    • admin
     openstack endpoint create --region RegionOne \
     compute admin http://controller:8774/v2.1/%\(tenant_id\)s

    这里写图片描述

    2.2安装与配置组件

    2.2.1安装包

    apt-get install nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler

    2.2.2配置文件

    1.修改配置文件/etc/nova/nova.conf

    • 在[DEFAULT]部分

    添加如下部分,仅仅enable comput和metadate APIS,其他的部分删除ec2

     [DEFAULT]
    ...
    enabled_apis = osapi_compute,metadata
    • 在[api_database] 和 [database] 部分
      配置数据参数信息,NOVA_DBPASS用nova数据库的密码123456替代。
    [api_database]
    ...
    connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
    
    [database]
    ...
    connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
    • 在 [DEFAULT] 和 [oslo_messaging_rabbit] 部分
      配置消息队列参数RabbitMQ:RABBIT_PASS用具体密码代替
     [DEFAULT]
    ...
    rpc_backend = rabbit
    
    [oslo_messaging_rabbit]
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    • 在[DEFAULT]和[Keystone_authtoken]
      配置身份认证参数,NOVA_PASS用实际的密码123456替换
    [DEFAULT]
    ...
    auth_strategy = keystone
    
    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = NOVA_PASS
    • 在[DEFAULT]里配置网络
      添加参数“my_ip”为管理节点的ip地址
    [DEFAULT]
    ...
    my_ip = 10.10.80.180
    use_neutron = True
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    • 在[VNC]配置
      VNC代理,配置为管理节点$my_ip,值在上一步骤中赋予。
    [vnc]
    vncserver_listen = $my_ip
    vncserver_proxyclient_address = $my_ip
    • 在[glance]部分
      配置镜像服务API
    [glance]
    api_servers = http://controller:9292
    • 在 [oslo_concurrency] 部分
      配置lock path
    [oslo_concurrency]
    lock_path = /var/lib/nova/tmp
    • 在[default]中移除logdir

    2.2.3 同步数据库

    su -s /bin/sh -c "nova-manage api_db sync" nova
    su -s /bin/sh -c "nova-manage db sync" nova

    2.2.4完成安装,重启服务

    service nova-api restart
    service nova-consoleauth restart
    service nova-scheduler restart
    service nova-conductor restart
    service nova-novncproxy restart

    3.计算节点安装

    3.1 安装包

    apt-get install nova-compute

    3.2 配置文件/etc/nova/nova.conf

    • 在[DEFAULT]和[oslo_messaging_rabbit]部分
      配置RabbitMQ接口,RABBIT_PASS用实际使用密码123456替代。
    [DEFAULT]
    ...
    rpc_backend = rabbit
    
    [oslo_messaging_rabbit]
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    • 在[DEFAULT]和[keystone_authtoken]部分
      配置身份认证接口,NOVA_PASS用认证服务中为nova配置的实际密码123456替代。
    [DEFAULT]
    ...
    auth_strategy = keystone
    
    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = NOVA_PASS
    • 在[DEFAULT]和[keystone_authtoken]部分
      配置身份认证接口,NOVA_PASS用认证服务中为nova配置的实际密码123456替代。
    [DEFAULT]
    ...
    auth_strategy = keystone
    
    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = NOVA_PASS
    • 在[DEFAULT]部分
      配置my_ip,ip地址为此计算节点的ip
    [DEFAULT]
    ...
    my_ip = 10.10.80.181
    • 在[DEFAULT]部分
      添加支持网络服务参数
    [DEFAULT]
    ...
    use_neutron = True
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    • 在[vnc]部分
      激活和配置远程端口访问
    [vnc]
    enabled = True
    vncserver_listen = 0.0.0.0
    vncserver_proxyclient_address = $my_ip
    novncproxy_base_url = http://controller:6080/vnc_auto.html
    
    • 在[glance]部分
      配置image的API服务
    [glance]
    api_servers = http://controller:9292
    • 在[oslo_concurrency]部分
      配置lock路径
    [oslo_concurrency]
    lock_path = /var/lib/nova/tmp
    • 在[default]中移除“logdir”参数

    3.3安装完成

    3.3.1确定是否计算节点支持虚拟设备的硬件加速

    egrep -c '(vmx|svm)' /proc/cpuinfo
    这里写图片描述
    如果返回1或更多,则计算节点支持硬件优化,不需要额外配置。
    如果返回zero,则计算节点不支持硬件优化,必须配置libvirt来使用QEMU,而不是KVM。具体的配置参考:配置libvirt中finalize installation-1。

    3.3.2重启计算服务

    service nova-compute restart

    4.验证

    在控制节点上进行以下操作:

    • 1.在/root目录下执行命令
      . admin-openrc
    • 2.列举所有的服务,验证是否成功启动和注册
      openstack compute service list
      正常情况在管理节点出现三个激活的服务组件,在计算节点列出一个激活的服务组件:
      这里写图片描述
    展开全文
  • 1.概述 网络配置有两种方式:provider网络或者self-service网络,具体情况参考官方文档 provider网络参考和self-service网络参考...输出节点应该包含在控制节点上有三个代理,在每一个计算节点上有一个代理:

    1.概述

    网络配置有两种方式:provider网络或者self-service网络,具体情况参考官方文档
    provider网络参考和self-service网络参考。更多关于网络服务(包括虚拟网络组件、分层、流量)等信息,请参考Mitaka网络指南
    Neutron包含如下组件:

    • neutron-server
      接收并路由API请求到合适的openstack网络插件。
    • OpenStack Networking plug-ins and agents
      创建网络或子网,提供IP地址。这些插件和代理依靠特定云中使用的供应商和技术,插件可以使用Cisco虚拟和物理交换机,NEC openFlow products,open vSwitch,linux briding 和VMwareNSX。常规的代理有Layer3,DHCP等。
    • Messaging queue
      大多数openstack网络使用它连接neutron-server和各种不同代理间信息交互。此外,也作为一个存储网络状态的数据库。

    Openstack网络主要为openstack compute实例提供网络和连通性。

    2.控制节点上部署(10.10.80.180)

    2.1安装前提

    2.1.1 创建数据库

    • 1.以root用户登录数据库
      mysql -u root -p

    • 2.创建“neutron”数据库
      MariaDB > CREATE DATABASE neutron;

    • 3.赋予“neutron”权限
      用123456替代NEUTRON_DBPASS,在openstack安装部署1中规划openstack部署——前言&规划

    >GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
    >IDENTIFIED BY 'NEUTRON_DBPASS';
    >GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \  
    >IDENTIFIED BY 'NEUTRON_DBPASS';
    
    • 4.退出数据库
      > exit

    2.1.2 source环境配置

    . admin-openrc

    2.1.3 创建服务凭据

    • 1.创建“neutron”用户,密码为123456,规划见openstack部署——前言&规划
      openstack user create --domain default --password-prompt neutron
      这里写图片描述

    • 2.将“admin”role赋予“neturon”user
      openstack role add --project service --user neutron admin

    • 3.创建“neturon”服务实例
      openstack service create --name neutron --description "OpenStack Networking" network
      这里写图片描述

    2.1.4创建网络服务API endpoint

    • public
      openstack endpoint create --region RegionOne network public http://controller:9696
      这里写图片描述

    • internal
      openstack endpoint create --region RegionOne network internal http://controller:9696
      这里写图片描述

    • admin
      openstack endpoint create --region RegionOne network admin http://controller:9696
      这里写图片描述

    2.2安装&配置

    本次实验选择安装provide网络架构。

    2.2.1安装组件

    apt-get install neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent

    2.2.2配置服务组件

    网络组件的配置包括:数据库、认证机制、消息队列、拓扑变化通知、插件。
    编辑/etc/neutron/neutron.conf文件

    • 1.在[database]部分配置数据库接口
      用创建数据库时的实际密码123456替代NEUTRON_DBPASS
    [database]
    connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
    • 2.在[DEFAULT]部分配置modular Layer2(ML2)插件,并禁用其他插件
     [DEFAULT]
     ···
    core_plugin = ml2
    service_plugins =
    • 3.在[DEFAULT]部分和[oslo_messaging_rabbit]部分
      配置RabbitMQ,用123456替换RABBIT_PASS
    [DEFAULT]
    ···
    rpc_backend = rabbit
    
    [oslo_messaging_rabbit]
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    • 4.在[DEFAULT]部分和[keystone_authtoken]部分配置认证服务接口
      NEUTRON_PASS用“neutron”user的密码123456替换。
    [DEFAULT]
    ...
    auth_strategy = keystone
    
    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = neutron
    password = NEUTRON_PASS
    • 5.在[DEFAULT]部分和[nova]部分配置网络来公告拓扑改变
      NOVA_PASS用nova用户密码123456替换
    [DEFAULT]
    ...
    notify_nova_on_port_status_changes = True
    notify_nova_on_port_data_changes = True
    
    [nova]
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = nova
    password = NOVA_PASS

    2.2.3 配置Modular Layer 2(ML2)插件

    ML2 插件通过Linux网桥机制为实例创建二层(bridging and switching) 虚拟网络设施。编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件:

    • 1.在[ml2]部分,激活flat和VLAN网络
    [ml2]
    ...
    type_drivers = flat,vlan
    • 2.在[ml2]部分,禁用self-service 网络
    [ml2]
    ...
    tenant_network_types =
    • 3.在[ml2]部分,激活linux bridge机制
     [ml2]
    ...
    mechanism_drivers = linuxbridge

    【备注:在配置ML2插件后,移除type_drivers选项中的值会导致数据库的不一致性,注释掉该行代码
    这里写图片描述

    • 4.在[ml2]部分,激活端口安全的扩展驱动
    [ml2]
    ...
    extension_drivers = port_security
    • 5.在[ml2_type_flat]部分,配置provider 虚拟网络作为一个flat网络
    [ml2_type_flat]
    ...
    flat_networks = provider
    • 6.在[securitygroup] 部分,激活ipset 来提高安全组规则的效率
    [securitygroup]
    ...
    enable_ipset = true

    2.2.4配置linux 网桥代理

    Linux网桥代理为实例创建二层(网桥和交换)虚拟网络设施,并管理安全组。修改配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini。

    • 1.在[linux_bridge]部分
      将provider 虚拟网络和provider物理网络接口映射,将PROVIDER_INTERFACE_NAME替换为底层物理网络接口名称,具体请参考官方文档
      physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
      这里写图片描述

    • 2.在[vxlan]部分,禁用VXLAN

    [vxlan]
    enable_vxlan = False
    • 3.在[securitygroup]部分
      激活安全组并配置linux网桥防火墙
    [securitygroup]
    ...
    enable_security_group = True
    firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    2.2.5 配置DHCP代理

    编辑 /etc/neutron/dhcp_agent.ini 文件:
    在[DEFAULT]部分,配置如下内容:

    [DEFAULT]
    ...
    interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
    dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
    enable_isolated_metadata = True

    2.3配置元数据代理

    供了实例的各种配置信息,例如实例的认证信息。
    编辑文件/etc/neutron/metadata_agent.ini,在在[DEFAULT] 部分配置metadata host 和shared secret,用合适的密码123456替代METADATA_SECRET

    [DEFAULT]
    ...
    nova_metadata_ip = controller
    metadata_proxy_shared_secret = METADATA_SECRET

    2.4配置compute,使用networking

    编辑/etc/nova/nova.conf,在 [neutron] 部分配置参数接口,激活元数据proxy和配置secret,用密码123456替代NEUTRON_PASS,用123456替代METADATA_SECRET。

    [neutron]
    url = http://controller:9696
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = NEUTRON_PASS
    service_metadata_proxy = True
    metadata_proxy_shared_secret = METADATA_SECRET

    2.5完成安装

    2.5.1 Populate the database:

     su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
    --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

    2.5.2重启计算API服务

    service nova-api restart

    2.5.3 重启网络服务

    service neutron-server restart
    service neutron-linuxbridge-agent restart
    service neutron-dhcp-agent restart
    service neutron-metadata-agent restart

    3.计算节点部署(10.10.80.181)

    3.1安装组件

    apt-get install neutron-linuxbridge-agent

    3.2配置通用组件

    编辑配置文件/etc/neutron/neutron.conf

    • 1.在[database]部分
      注释掉所有“connection”选项,因为计算节点不直接访问数据库。

    • 2.在[DEFAULT]和 [oslo_messaging_rabbit]部分
      配置RabbitMQ 消息队列接口,RABBIT_PASS用rabbit用户的密码123456替代

    [DEFAULT]
    ...
    rpc_backend = rabbit
    
    [oslo_messaging_rabbit]
    ...
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    • 3.在[DEFAULT] 和[keystone_authtoken]的部分配置身份认证

      NEUTRON_PASS用123456替代。需要移除keystone_authtoken中除了下列参数以外的选项。

    [DEFAULT]
    ...
    auth_strategy = keystone
    [keystone_authtoken]
    ...
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = neutron
    password = NEUTRON_PASS

    3.3配置网络选项

    配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini

    • 1.在[linux_bridge]配置物理网络接口
      PROVIDER_INTERFACE_NAME用物理网络接口eth0替代
    [linux_bridge]
    physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
    • 2.在[vxlan]部分,禁用vxlan
    [vxlan]
    enable_vxlan = False
    • 3.在[securitygroup]部分配置防火墙
    [securitygroup]
    ...
    enable_security_group = True
    firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    3.4配置计算服务来使用网络

    编辑文件/etc/nova/nova.conf

    • 1.在[neutron]中配置参数
      NEUTRON_PASS用neutron密码123456替代。
    [neutron]
    url = http://controller:9696
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = NEUTRON_PASS

    3.5重启服务

    • 1.重启计算服务

    service nova-compute restart

    • 2.重启网络代理

    service neutron-linuxbridge-agent restart

    4.验证操作

    source环境变量,在/root目录下执行 (该脚本在openstack部署3——keystone安装中第六部分创建openstack安装部署3——keystone安装(仅部署在控制节点)
    . admin-openrc

    4.1 验证neutron-server

    neutron ext-list
    这里写图片描述

    4.2 验证neturon代理正确性

    neutron agent-list
    输出节点应该包含在控制节点上有三个代理,在每一个计算节点上有一个代理:
    这里写图片描述

    展开全文
  • 一、Hadoop单个节点初始配置环境: Win10系统装虚拟机: 虚拟机VMware-workstation-full-10.0.0-812388.exe Linux系统 : Ubuntu16.04 JDK : openjdk-8-jre openjdk-8-jdk或者其它版本搭建步骤: 1. 首先在win...

    一、Hadoop单个节点初始配置

    环境:
    Win10系统装虚拟机: 虚拟机VMware-workstation-full-10.0.0-812388.exe
    Linux系统 : Ubuntu16.04
    JDK : openjdk-8-jre openjdk-8-jdk或者其它版本

    搭建步骤:
    1. 首先在win10系统装虚拟机,执行VMware-workstation-full-10.0.0-812388.exe;
    2. 在虚拟机上装Ubuntu16.04;
    3. 创建hadoop用户:
    相关命令:

    useradd -m hadoop -s /bin/bash
    passwd hadoop //接着使用如下命令设置密码,可简单设置为 hadoop
    adduser hadoop sudo //可为 hadoop 用户增加管理员权限,方便部署
    sudo shutdown –r now //最后命令重启
    1. 安装完成Ubuntu16.0.4之后,需要安装JDK,下面是安装jdk的具体步骤:

    方法一:

    a. 从sun公司网站www.sun.com下载linux版本的jdk, 将jdk复制到/usr目录下,然后进入/usr目录cd /usr
    5. 安装完成Ubuntu16.0.4之后,需要安装JDK,下面是安装jdk的具体步骤:
    b. 从sun公司网站www.sun.com下载linux版本的jdk, 将jdk复制到/usr目录下,然后进入/usr目录cd /usr
    c. 添加执行权限

    chmod +x jdk-6u7-linux-i586.bin

    d. 执行安装命令./jdk-6u7-linux-i586.bin

    d.安装成功会在/usr目录下生成jdk1.6.0_45目录,就是jdk的安装目录重启电脑,打开终端,输入java –version如图。
    这里写图片描述
    4.安装完JDK后我们需要对jdk进行一些配置,步骤如下:
    a.进入/etc目录,对profile配置文件进行一些修改,输入命令:nano profile
    b.最后面添加如下内容

    export JAVA_HOME=/home/hadoop/jdk1.6.0_45 #将“JDK安装路径”改为上述命令得到的路 $
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    这里写图片描述

    配置完成之后输入命令:source /etc/profile执行配置文件,
    e. 配置完成之后,重启,下面需要进行验证。
    输入命令查看环境变量:echo $PATH
    如图所示,jdk配置完毕。

    这里写图片描述
    注意!ubantu在配置完profile之后需要重启一下,不然切换窗口命令行后环境变量无法实时更新!

    方法二:

    直接用命令安装ubantu自带的OpenJDK 8即可
    相关下载命令:sudo apt-get install openjdk-8-jre openjdk-8-jdk
    配置环境变量:
    修改~/.bashrc
    在开头加上

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
    export PATH=$JAVA_HOME/bin:$PATH 
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    至此,jdk配置完毕
    5、1. 安装ssh服务,命令如下

    :sudo apt-get install ssh openssh-server

    相关命令:

    ssh localhost
    cd ~/.ssh/ 
    ssh-keygen -t rsa # 一直按enter键就可以
    cat ./id_rsa.pub >> ./authorized_keys # 加入授权

    安装完成SSH后,可以使用命令查看SSH是否启动:ps -e|grep ssh

    这里写图片描述

    1. 安装SSH服务完成后就需要配置无密码登录,见相关命令。
      注意:
      测试连接本地ssh时如果
      出现ssh: connect to host localhost port 22: Connection refused
      解决方法:

      ```
      sudo apt-get purge openssh-server
      sudo apt-get install openssh-server
      ```
      
    2. 安装hadoop2
      相关命令:
    sudo tar -xvzf hadoop-2.6.0.tar.gz -C /usr/local/ # 解压到/usr/local中
    cd /usr/local/
    sudo mv hadoop-2.6.0 ./hadoop # 改文件名
    sudo chown -R hadoop ./hadoop # 修改所属用户与所属用户组

    Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息。
    相关命令:

    cd /usr/local/hadoop 
    bin/hadoop version

    如图所示,hadoop2已经安装完毕
    这里写图片描述

    在安装完ssh,hadoop,jkd,之后,下面进行第二部分步骤:

    二、Hadoop完全分布式配置

    拓扑图如下:

    这里写图片描述

    在安装完单个节点Master(控制节点)的基本软件之后,关闭虚拟机,复制镜像文件作为另外两个节点Slave1和Slave2,下面我们对着三个节点进行分别配置。

    第一步:hostname配置:
    相关命令:

    sudo nano /etc/hostname

    保存完毕后,重启Slave1和Slave2节点,值得配置生效。
    重启后如图所示:
    保存完毕后,重启Slave1和Slave2节点,值得配置生效。
    重启后如图所示:

    这里写图片描述

    这里写图片描述

    第二步:net配置:
    使用ifconfig命令查看IP地址和网关
    对三个节点的/etc/hosts文件都配上所查到的IP地址
    如图所示:
    这里写图片描述

    **第三步:配置/etc/network/interfaces,配置如下:
    Master节点:

    interfaces(6) file used by ifup(8) and ifdown(8)
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto ens33 #网卡名
    iface ens33 inet static #静态配置
    address 10.12.18.47
    netmark 255.255.255.0
    gateway 10.12.18.2#网关

    Slave1节点:

    interfaces(6) file used by ifup(8) and ifdown(8)
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto ens33 #网卡名
    iface ens33 inet static #静态配置
    address 10.12.18.48
    netmark 255.255.255.0
    gateway 10.12.18.2#网关

    Slave2节点:

    interfaces(6) file used by ifup(8) and ifdown(8)
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto ens33 #网卡名
    iface ens33 inet static #静态配置
    address 10.12.18.49
    netmark 255.255.255.0
    gateway 10.12.18.2#网关

    第四步:配置DNS(如果不需要联网可以跳过此步骤!)
    相关命令

    sudo vim /etc/resolvconf/resolv.conf.d/base

    添加如下内容

    nameserver 114.114.114.114

    第五步:SSH相关配置
    相关命令:
    ssh-keygen -t rsa

    cat ./id_rsa.pub >> ./authorized_keys
    tar -czvf aaa * //打包发送使使各点内容同步
    scp sss hadoop@Slave1:/home/hadoop#通过SCP远程服务把Master打包的ssh秘钥发送到Slave1节点上
    scp sss hadoop@Slave2:/home/hadoop#通过SCP远程服务把Master打包的ssh秘钥发送到Slave2节点上

    Slave1和Slave2节点操作:
    首先创建一个文件夹:mkdir ~/.ssh
    把在home/hadoop目录下的接受的sss文件解压到~/.ssh
    相关命令:

    mv aaa ~/.ssh
    cd ~/.ssh
    tar -xzvf aaa

    如图所示,ssh 已经可以实现无密码传输
    这里写图片描述

    最后一步:hadoop相关操作:
    但当我们进入/user/local/hadoop/etc/hadoop/目录下我们可以看到如图:
    这里写图片描述
    下面,我们需要进行一些文件的修改
    a.slaves需要文件配置关联数据节点注册:
    相关命令:`sudo nano slaves
    这里写图片描述

    b.配置hadoop-env.cmd 文件
    相关命令:

    sudo nano hadoop-env.cmd 

    如图
    这里写图片描述

    c.配置mapred-site.xml 文件!默认文件名为 mapred-site.xml.template.在这一步要注意的是要先改名
    相关命令:mv mapred-site.xml.template mapred-site.xml
    改完名之后在这个文件添加如下内容:

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master(主机名):10020</value>
    </property>
    
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
    </property>
    </configuration>

    d.配置hdfs-site.xml文件
    添加如下内容:

    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Master:50090</value>
    </property>
    
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/tmp/dfs/data</value>
    </property>
    
    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>

    e.配置yarn-site.xml文件
    添加如下内容:

    configuration>
    
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>Master</value>#这边注意的是Master就是主机名
    </property>
    
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    
    </configuration>

    f.配置core-site.xml,用于启动nameNode进程。
    配置如下:

    <configuration>
    
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://Master:9000</value> //master即为控制节点的主机名,
    </property>
    
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>
    
    </configuration>

    最后在Master节点配置完毕之后打包起来发送到Slave1和Slave2节点
    相关命令:

    sudo tar -cvzf ~/hadoop.master.tar.gz ./hadoop # 压缩复制
    cd ~   
    scp ./hadoop.master.tar.gz Slave1:/home/hadoop
    scp ./hadoop.master.tar.gz Slave2:/home/hadoop

    在Slave1和Slave2解压hadoop.master.tar.gz放在和Master节点相同的目录
    最后的最后,还要配置三个节点的hadoop的环境变量
    输入命令:sudo nano~/.bashrc
    在里面的最前面添加如下内容

    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

    改完之后执行一下:source ~/.bashrc

    三运行前的准备

    首先使用命令:hdfs namenode -format //初始化(#只能执行一次),用来建立hdfs结构来存元数据。
    下面进入目录:hadoop@Master:/usr/local/hadoop/sbin$ 下运行hadoop
    相关命令:

    开启hadoop 的命令是:start-*.sh
    
    关闭hadoop 的命令是:stop-*.sh

    注意的是开启和关闭的过程会比较慢,稍微等一下

    开启之后,发现开启了6个进程,用jps命令查看jdk下的进程如图

    这里写图片描述

    网页输入网址如图:
    http://ip地址:8088/cluster
    这里写图片描述
    http://IP地址:50070/dfshealth.html#tab-overview
    这里写图片描述

    遇到的问题!

    问题1:如果出现虚拟机上hadoop已经成功开启,但是Windows系统上的浏览器打不开端口?
    解决方案:
    打开“网络和共享中心”->“更改适配器设置”中查看VM服务是否开启,如果被禁用了,启动服务即可。

    展开全文
  • 在之前有关es的博客中,提到过,自es7.0之后,由于种种原因,es的变化很大,这也导致了在部署上,es7与之前的版本在部署上的不同,这也就是为什么目前es集群部署方式有很多种的原因。所以这博客的中重点是es7中...

     简介:

    在项目部署过程中,我们可能使用到es集群,目前网上在搭建es集群的时候有很种,配置文件的参数也不同,导致部署过程遇到很多问题,因此写下了这篇博客。在之前有关es的博客中,提到过,自es7.0之后,由于种种原因,es的变化很大,这也导致了在部署上,es7与之前的版本在部署上的不同,这也就是为什么目前es集群部署方式有很多种的原因。所以这个博客的中重点是es7中集群的搭建,不适用于其他版本(关键

    安装环境

    Centos7.2      Elasticsearch7.1          三个主节点的配置(10.10.10.1     10.10.10,2       10.10.10.3)

     步骤

    1、首先创建es的用户,这一点与之前版本的相同,因为es启动时,不允许使用root用户启动。创建用户后,并切换到新添加的用户下进行后续操作

    # 添加用户组
    groupadd es
    
    # 添加用户
    useradd -m -g es es
    
    # 配置密码
    passwd es
    
    #增加sudo权限(在最后添加  es ALL=(ALL)  NOPASSWD:ALL    )
    visudo
    
    #切换用户
    su es

    2、下载es,这里可以使用自己的安装包(如果自己封装了插件的话),或者从官网上进行下载,如果使用7.1的话可以直接使用下面的方式进行下载

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz

    3、将es压缩包进行解压

    tar xvf elasticsearch-7.1.1-linux-x86_64.tar.gz /usr/data/elasticsearch
    

    4、配置(这个配置文件需要同步到10.10.10.1     10.10.10,2       10.10.10.3三个主机上)

    4.1 修改es的配置文件

    vi /usr/data/elasticsearch/config/elasticsearch.yml
    
    # 增加以下内容
    # 集群名称必须相同
    cluster.name: es-test
    
    node.name: node-3
    # 当前节点是否可以被选举为master节点,是:true、否:false
    node.master: true
    # 当前节点是否用于存储数据,是:true、否:false
    node.data: true
    
    # 数据和日志存储的地方,建议与es的安装目录区分,方式es删除后数据的丢失
    path.data: /data/es/data
    path.logs: /data/es/logs
    
    # 需求锁住物理内存,是:true、否:false
    bootstrap.memory_lock: false
    
    # SecComp检测,是:true、否:false
    bootstrap.system_call_filter: false
    
    network.host: 0.0.0.0
    # 有些时候并不需要此配置,我的没有设置
    network.publish_host: 10.240.0.8
    
    # 主机访问的端口号
    http.port: 9200
    
    # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    # es7之后,不需要discover.zen.ping.unicast.hosts这个参数,用discovery.seed_hosts替换
    discovery.seed_hosts: ["10.10.10.1","10.10.10.2","10.10.10.3"]
    
    # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes:["10.10.10.1","10.10.10.2","10.10.10.3"]
    
    # 是否支持跨域,是:true,在使用head插件时需要此配置
    http.cors.enabled: true
    
    # "*" 表示支持所有域名
    http.cors.allow-origin: "*"

    4.2 修改 jvm.options

    vim config/jvm.options
    
    # 按需修改如下内存大小即可
    -Xms4g
    -Xmx4g

    4.3 创建数据和日志目录(也就是4.1中配置的路径)

    mkdir -p /data/es/data
    mkdir -p /data/es/logs

    4.4 在三台机器上分别启动es

    ./usr/data/elasticsearch/bin/elasticsearch
    # 后台启动的话,使用下面的这个命令
    ./usr/data/elasticsearch/bin/elasticsearch -d

    4.5 检查集群是否部署成功,可参考 《ES7(ElasticSearch7) 操作集群基础

    # 检查集群的健康状态
    GET /_cat/health?v
    
    # 集群中所有的节点
    GET /_cat/nodes?v

     

    参数说明:

    1、在新版7.0的es中,对es的集群发现系统做了调整,不再有discovery.zen.minimum_master_nodes这个控制集群脑裂的配置,转而由集群自主控制,并且新版在启动一个新的集群的时候需要有cluster.initial_master_nodes初始化集群列表。

    2、在es7中,discovery.zen.* 开头的参数,有些已经失效

    问题解决(以下部分参考 ElasticSearch 7.1.1 集群环境搭建

    1、每个进程最大同时打开文件数太小

    vim /etc/security/limits.conf
    
    # 增加如下: 
    # elsearch为用户名
    elsearch  soft nofile 65536
    elsearch  hard nofile 65536
    
    # 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功
    ulimit -Hn
    ulimit -Sn
    

    2、申请锁定内存失败

    vim config/elasticsearch.yml
    
    # 修改,不锁定内存
    bootstrap.memory_lock: false
    

    3、 最大虚拟内存太小

    vim /etc/sysctl.conf
    
    # 增加如下:
    vm.max_map_count=262144
    
    # 修改完之后,执行如下命令生效
    sysctl -p
    

    4、 因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动

    vim config/elasticsearch.yml
    
    设置为false
    bootstrap.system_call_filter: false
    

    5、 最大线程数太小

    vim /etc/security/limits.conf
    
    # 增加如下: 
    # elsearch为用户名
    elsearch  soft nproc 4096
    elsearch  hard nproc 4096
    
    # 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功
    ulimit -Hu
    ulimit -Su
    

    6、 network.host 监听 0.0.0.0 之后无法组成集群

    报错(警告):

    始终只有一个节点:

    解决:

    vim config/elasticsearch.yml
    
    # 增加如下配置,用于集群内各机器间通信:
    network.publish_host: 10.240.0.8

     

     

     

    参考资料:

    1、ElasticSearch 7.1.1 集群环境搭建

    2、Elasticsearch 7.0.0 集群搭建

    3、ES7(ElasticSearch7) 操作集群基础

    4、7.0.0 elasticsearch 集群部署踩坑记

    展开全文
  • 1、在三个节点上都下载es 如果要安装es,首先就要从官网elastic.co/downloads/elasticsearch下载es的安装包,并且最新es版本要求有JDK 8以上的版本。 es安装包的目录结构大致如下: bin:存放es的一些可执行脚本...
  • C# TreeView控件动态组树(可控制节点级别)

    千次阅读 热门讨论 2016-04-03 22:48:34
    需求分析: 面对如此“强(wu)大(yu)”的需求,本菜鸟也是想尽...我们的查询界面变成了树+下拉框+复选框,每界面都有树,我就索性把树封装了,不同的界面,树所指引到的节点是不一样的,所以也要插入一级别。
  • ROS教程():创建程序包及节点(图文)

    万次阅读 多人点赞 2020-12-10 14:36:10
    文章目录前言一、创建功能包二、创建节点三、修改CMakeList.txt四、配置package.xml文件五、编译并执行1.编译2.执行六、rostopic工具总结 前言 根据前篇教程已经创建好了工作空间,并已经成功生效了环境变量,接...
  • k8s pod 在节点间调度控制

    千次阅读 2019-03-24 12:57:35
    需要在指定pod运行在某个节点上时,可以通过以下几种方式: 1. 在部署pod的yaml中,指定nodeName 指定了nodeName的Pod会直接跳过Scheduler的调度逻辑,直接写入PodList列表,该匹配规则是强制匹...
  • 区块链节点与主节点分别是什么

    万次阅读 2018-12-18 11:48:23
    虽然币市低迷,但是区块链技术的发展却并未受到影响,本文将和大家分享一些区块链的基础知识,即节点和主节点分别是什么,我们如何参与及他们在区块链网络中执行的任务是什么?希望帮助大家更好的认识区块链技术。 ...
  • 1. Master 单节点可用性 Master节点在Spark中所承载的作用是分配Application到Worker节点,维护Worker节点,Driver,Application的状态。 在Spark中,Master本身也提供了基于硬盘的单节点的可用性,也就是可以直接...
  • 节点修改IP地址

    千次阅读 多人点赞 2020-04-21 12:28:29
    确定控制节点和计算节点的IP网络地址 首先进入CentOS7命令行 修改controller的网卡 输入用户和密码 controller login:root Password:123456 [root@controller ~]# cd /etc/sysconfig [root@controller sysconfig]#...
  • ROS节点

    千次阅读 2019-12-28 16:25:22
    从程序角度来说,node就是一可执行文件(通常C++编译生成的可执行文件、Python脚本)被执行,加载到了内存之中 从功能角度来说,通常一node负责者机器人的某一单独的功能。由于机器人的功能模块非常...
  • Elasticsearch 6.6 官方文档 之「节点

    千次阅读 2019-04-23 09:35:48
    每次启动 Elasticsearch 实例时,都会启动一个节点。连接节点的集合称之「集群」。如果你运行的是单个 Elasticsearch 节点,那么你也就拥有一由一个节点组成的集群。
  • ShaderGraph节点大全

    千次阅读 2021-03-26 17:00:53
    按条件比较 Is Front Face 是否正面 是正面为真 Is Infinite 无限大 是无际大返回真 Is NaN 非数字 输入不是数字返回真 Nand 为假 输入值都为假反加真 Not 取反 假为真,真为假 Or 或 一个为真,则返回真 节点(UV) ...
  • 通过kubeadm搭建kubernetes集群环境,加入node节点,部署应用进行体验
  • 本章中会讲述一些集群简单配置命令,法定人数概念,配置一VIP服务并且如何防止资源在节点恢复后移动。接着搭建继续来写在搭建完pacemaker之后如果不在里面配置任何服务其实这东西是完全没有什么用的。那么我们从...
  • 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连。光明小学的每班都有M学生,所以你要他们设计出一条恰好经过M条边的路径。 光明小学的小朋友们希望全盘考虑所有的因素,所以你需要把任意两点...
  •  B-样条曲线:移动控制点  移动控制点是改变B-样条曲线形状的最明显的方法。在前面页讨论的局部修改方案说明了修改控制点Pi的位置仅影响在区间[ui,ui+p+1)上的曲线C(u)。其中p是B-样条曲线的次数。实际上,形状的...
  • 为了避免X某个设备因为自身原因(例如硬件损坏)导致无法正确收发报文而不断的破坏总线的数据帧,从而影响其它正常节点通信,CAN网络具有严格的错误诊断功能,CAN通用规范中规定每CAN控制器中有一发送错误计数器...
  • Slurm如何管理和使用节点资源

    千次阅读 2019-10-31 15:35:21
    Slurm管理和使用集群节点资源主要分为四环节:分别是初始化节点资源、更新节点资源、测试节点资源可用、实际分配节点资源。 1.初始化节点资源 slurmctld初始化时解析节点配置文件,借助几全局数据结构(select...
  • UE4-介绍大蓝图、常用节点、情景关联选项

    万次阅读 多人点赞 2019-06-25 19:22:16
    蓝图菜单创建时有种: 1.关卡蓝图:用于制作当前游戏场景的程序。 2.游戏模式:与制作中的游戏整体相关的设置、动作,在最初阶段基本不用,了解如何开发Unreal Engine后才加以使用。 3.蓝图类:类集中处理几...
  • 我们在上面学了如何访问内部节点属性和外部节点属性 ——我们将在这里学习可以对这些节点和属性做哪些常用操作 1、激活,关闭节点——active this.node.active = true; //false。  激活——在父节点同样激活的...
  • Druid.io系列(): Druid集群节点

    千次阅读 2016-10-28 14:20:14
    Druid集群节点
  • Unity 之 ShaderGraph Procedural节点解析汇总

    千次阅读 多人点赞 2021-08-24 22:42:46
    还在看不懂官方文档困扰吗? 我对ShaderGraph的Utility下节点一一分析说明,总结的超级全面,进来看看吧~
  • 如果在循环体进行大量复杂的运算,游戏就会...Delay:指定一延时的时间进行一次操作,倒计时过程中再次调用无效(时间不会被重置) Retriggerable Delay:可重新触发延时时间进行一次操作,倒计时过程中再次调用...
  • ROS可以通过launch文件进行节点的管理、初始参数的设置,但是launch文件不能指定节点的启动顺序,因此本文简单介绍下通过launch进行节点启动管理,通过shell来控制节点启动顺序。 1,我将读取参数的代码片段放在了...
  • 虚幻引擎4蓝图节点

    千次阅读 多人点赞 2020-04-13 19:09:32
    收集一些自己了解的蓝图节点,以便更好地学习。
  • Unity 之 ShaderGraph UV节点解析汇总

    千次阅读 2021-08-17 21:49:00
    还在看不懂官方文档困扰吗? 我对ShaderGraph的UV下节点一一分析说明,总结的超级全面,进来看看吧~

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 487,619
精华内容 195,047
关键字:

为什么控制节点需要三个