首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

OpenStack组件Swift单机搭建(基于Keystone)

安装环境:Ubuntu 16.04 需要有两块硬盘(一块为系统盘,一块用于安装SWIFT) 需要有IP地址 环境准备 修改hosts文件 安装相关服务 修改hosts 编辑 /etc/hosts,添加 IP地址 controller 安装Openstack源并更新和安装 apt install software-properties-common add-apt-repository cloud-archive:newton apt update && apt dist-upgrade 安装完成后重启 安装Openstack客户端 apt install python-openstackclient 安装数据库 1、安装数据库服务 apt install mariadb-server python-pymysql 2、创建或修改/etc/mysql/mariadb.conf.d/99-openstack.cnf文件 (若文件存在则修改,不存在则创建,存在的文件中若未提及的选项则保持不变,下同) [mysqld] bind-address = 你的IP地址 default-storage-engine = innodb innodb_file_per_table max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 3、将/etc/mysql/mariadb.conf.d/下所有的文件中所有utf8mb4改为utf84、进入数据库,设置root密码,添加远程登录权限 # mysql -u root mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' \ IDENTIFIED BY 'root密码'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' \ IDENTIFIED BY 'root密码'; mysql> flush privileges; mysql> exit; 5、重启数据库 service mysql restart 安装消息队列服务(Message Queue) 1、安装服务 apt install rabbitmq-server 2、添加openstack用户并添加权限 rabbitmqctl add_user openstack 设置一个密码 rabbitmqctl set_permissions openstack ".*" ".*" ".*" 安装分布式缓存服务(Memcached) 1、安装服务 apt install memcached python-memcache 2、修改配置文件/etc/memcached.conf -l 你的IP地址 3、重启服务 service memcached restart 安装配置Keystone,并添加域、项目、用户和角色 准备 1、添加Keystone数据库和相关用户 # mysql -u root -p Create the keystone database: mysql> CREATE DATABASE keystone; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'Keystone密码'; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'Keystone密码'; 2、安装服务 apt install keystone 配置Keystone 1、编辑/etc/keystone/keystone.conf [database] connection = mysql+pymysql://keystone:'keystone用户的密码'@controller/keystone [token] provider = fernet 2、填充keystone数据库启动mariadb远程访问 sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mariadb.conf.d/50-server.cnf su -s /bin/sh -c "keystone-manage db_sync" keystone 3、初始化Fernet key repositories(似乎是个专有名词不知道咋翻译) keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone 4、对认证服务进行引导 keystone-manage bootstrap --bootstrap-password 设置一个admin密码 \ --bootstrap-admin-url http://controller:35357/v3/ \ --bootstrap-internal-url http://controller:35357/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne 配置Apache HTTP服务 1、编辑/etc/apache2/apache2.conf ServerName controller 2、重启apache服务,并且删除SQLite数据库 service apache2 restart rm -f /var/lib/keystone/keystone.db 3、添加一些环境变量(临时的哦) export OS_USERNAME=admin export OS_PASSWORD=这里写你刚才设置的admin的密码 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=default export OS_PROJECT_DOMAIN_NAME=default export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 创建域、项目、用户和角色 1、创建一个service项目 openstack project create --domain default \ --description "Service Project" service 2、创建一个demo项目和user创建demo项目 openstack project create --domain default \ --description "Service Project" service 创建demo用户 openstack project create --domain default \ --description "Demo Project" demo openstack user create --domain default \ --password-prompt demo(输入此句后会需要设置demo的密码) 创建user角色 openstack role create user 添加user角色到demo项目和用户中 openstack role add --project demo --user demo user 验证操作 1、基于安全的考虑在/etc/keystone/keystone-paste.ini中移除 [pipeline:public_api], [pipeline:admin_api],[pipeline:api_v3] 中的admin_token_auth 2、移除掉一些环境变量 unset OS_AUTH_URL OS_PASSWORD 3、以admin用户的身份请求一个认证令牌 openstack --os-auth-url http://controller:35357/v3 \ --os-project-domain-name default --os-user-domain-name default \ --os-project-name admin --os-username admin token issue (会要求输入admin的密码) 如果出现类似于以下的信息则表示成功 +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+ 3、以demo用户的身份请求一个认证令牌 openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name default --os-user-domain-name default \ --os-project-name demo --os-username demo token issue (会要求输入demo的密码) 如果出现类似于以下的信息则表示成功 +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+ 写脚本 由于环境变量会失效(除非你设置在bashrc里面去了,不过这不利于更换用户身份)为了方便,可以创建一些脚本 1、创建admin-openrc文件 export OS_PROJECT_DOMAIN_NAME=default export OS_USER_DOMAIN_NAME=default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=你的admin密码 export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 2、创建demo-openrc文件 export OS_PROJECT_DOMAIN_NAME=default export OS_USER_DOMAIN_NAME=default export OS_PROJECT_NAME=demo export OS_USERNAME=demo export OS_PASSWORD=你的demo密码 export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 3、验证一下 source admin-openrc openstack token issue 如果出现类似于以下的信息则表示成功 +------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+ 安装并配置Swift服务 环境准备 1、运行脚本 source admin-openrc 2、向Keystone添加swift相关信息 添加swift用户 openstack user create --domain default --password-prompt swift(此处要设置密码) 将admin角色加入到swift用户中 openstack role add --project service --user swift admin 添加swift服务实体 openstack service create --name swift \ --description "OpenStack Object Storage" object-store 添加对象存储服务API的端点(endpoints) openstack endpoint create --region RegionOne \ object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s openstack endpoint create --region RegionOne \ object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s openstack endpoint create --region RegionOne \ object-store admin http://controller:8080/v1 3、安装相关服务 apt install swift swift-proxy python-swiftclient \ python-keystoneclient python-keystonemiddleware \ memcached \ swift swift-account swift-container swift-object 配置proxy服务 1、创建并进入/etc/swift文件夹2、下载proxy-server.conf curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/newton 3、编辑proxy-server.conf [DEFAULT] bind_port = 8080 user = swift swift_dir = /etc/swift [pipeline:main] pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server [app:proxy-server] use = egg:swift#proxy account_autocreate = True [filter:keystoneauth] use = egg:swift#keystoneauth operator_roles = admin,user [filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory 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 = swift password = 你设置的swift密码 delay_auth_decision = True [filter:cache] use = egg:swift#memcache memcache_servers = controller:11211 配置存储相关服务 1、安装服务 apt install xfsprogs rsync 2、格式化硬盘为XFS格式 (如果不知道硬盘名,可使用fdisk -l查看) mkfs.xfs /dev/硬盘 3、创建挂载节点的文件目录 mkdir -p /srv/node/硬盘 4、在/etc/fstab中添加 /dev/硬盘 /srv/node/硬盘 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 5、挂载硬盘 mount /srv/node/硬盘 6、创建并编辑文件 /etc/rsyncd.conf mkdir /etc/rsyncd.conf uid = swift gid = swift log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = 你的IP [account] max connections = 2 path = /srv/node/ read only = False lock file = /var/lock/account.lock [container] max connections = 2 path = /srv/node/ read only = False lock file = /var/lock/container.lock [object] max connections = 2 path = /srv/node/ read only = False lock file = /var/lock/object.lock 7、编辑/etc/default/rsync RSYNC_ENABLE=true 8、启动rsync服务 service rsync start 9、下载配置文件 curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/newton curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/newton curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/newton 10、编辑/etc/swift/account-server.conf [DEFAULT] bind_ip = 你的IP bind_port = 6002 user = swift swift_dir = /etc/swift devices = /srv/node mount_check = True [pipeline:main] pipeline = healthcheck recon account-server [filter:recon] use = egg:swift#recon recon_cache_path = /var/cache/swift 11、编辑/etc/swift/container-server.conf [DEFAULT] bind_ip = 你的IP bind_port = 6001(2.conf为6011) user = swift swift_dir = /etc/swift devices = /srv/node mount_check = True [pipeline:main] pipeline = healthcheck recon container-server [filter:recon] use = egg:swift#recon recon_cache_path = /var/cache/swift 12、编辑/etc/swift/object-server.conf [DEFAULT] bind_ip = 你的IP bind_port = 6000 user = swift swift_dir = /etc/swift devices = /srv/node mount_check = True [pipeline:main] pipeline = healthcheck recon object-server [filter:recon] use = egg:swift#recon recon_cache_path = /var/cache/swift recon_lock_path = /var/lock 13、修改权限 chown -R swift:swift /srv/node/* mkdir -p /var/cache/swift/1 /var/cache/swift/2 chown -R root:swift /var/cache/swift/* chmod -R 775 /var/cache/swift/* 创建并分配初始化环 1、在/etc/swift中执行以下命令 swift-ring-builder account.builder create 10 1 1 swift-ring-builder account.builder add \ --region 1 --zone 1 --ip 你的IP地址 --port 6002 --device 你的硬盘 --weight 100 swift-ring-builder account.builder rebalance swift-ring-builder container.builder create 10 1 1 swift-ring-builder container.builder add \ --region 1 --zone 1 --ip 你的IP地址 --port 6001 --device 你的硬盘 --weight 100 swift-ring-builder container.builder rebalance swift-ring-builder object.builder create 10 1 1 swift-ring-builder object.builder add \ --region 1 --zone 1 --ip 你的IP地址 --port 6000 --device 你的硬盘 --weight 100 swift-ring-builder object.builder rebalance 2、在/etc/swift下下载文件 curl -o /etc/swift/swift.conf \ https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/newton 3、执行以下命令两次获得两个字符串 openssl rand -hex 10 4、编辑/etc/swift/swift.conf [swift-hash] swift_hash_path_suffix = 第一个字符串 swift_hash_path_prefix = 第二个字符串 [storage-policy:0] name = Policy-0 default = yes 5、修改权限 chown -R root:swift /etc/swift/* 6、重启服务 service memcached restart service swift-proxy restart 7、启动对象存储服务 swift-init all start 验证swift 1、运行脚本 source demo-openrc 2、获得服务状态 swift stat 显示类似以下信息即成功 Account: AUTH_ed0b60bf607743088218b0a533d5943f Containers: 0 Objects: 0 Bytes: 0 Containers in policy "policy-0": 0 Objects in policy "policy-0": 0 Bytes in policy "policy-0": 0 X-Account-Project-Domain-Id: default X-Timestamp: 1444143887.71539 X-Trans-Id: tx1396aeaf17254e94beb34-0056143bde Content-Type: text/plain; charset=utf-8 Accept-Ranges: bytes 3、创建一个容器 openstack container create 容器名 4、上传一个对象 openstack object create 容器名 对象名 5、获得对象列表 openstack object list 容器名字 6、下载对象 openstack object save 容器名 对象名 也可以用curl或postman验证

优秀的个人博客,低调大师

HBase单机及伪分布环境搭建

一.单机模式 1.安装HBase tar -xzvf hbase-0.92.1.tar.gz 2.配置参数 修改hbase-site.xml: <configuration> <property> <name>hbase.rootdir</name> <value>/home/xiongzheng/hadoop/hbase-0.92.1/data</value> </property> </configuration> 3.配置/etc/hosts , 将127.0.0.1改为本地ip 10.17.12.95 localhost 10.17.12.95 xiongzheng-Lenovo 4.启动HBase bin/start-hbase.sh 5.简单操作 bin/hbase shell (1).建立表格user_info,以及两个列族 k、v create 'user_info','k','v' (2).查看表 list (3) 查看表结构 describe 'user_info' (4) 插入行 put 表名,行名,列族名:列名标签,值 put 'user_info','memberId123','v:IP','127.0.0.1' (5) 查询表数据 get 表名,行名 get 'user_info','memberId123' (6) 全表查询 scan 'user_info' (7) 查看表中某列族所有数据 scan 'user_info',{COLUMNS => 'v'} (8) 删除表 disable 'user_info' drop 'user_info' 二.伪分布式运行模式 1.安装HBase tar -xzvf hbase-0.92.1.tar.gz 2.配置参数 编辑hbase-0.92.1/conf/hbase-env.sh,添加环境变量 exportJAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home exportHBASE_CLASSPATH=~/Hadoop-1.0.3/conf 注意:HBASE_CLASSPATH的值是Hadoop_HOME目录下的conf目录 编辑hbase-0.92.1/conf/hbase-site.xml,按如下配置 <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration> 注意:hbase.rootdir的value中,hdfs://localhost:9000是Hadoop配置文件core-site.xml中fs.default.name的值。 3.先启动Hadoop,启动HBase hbase-0.92.1/bin/start-hbase.sh

优秀的个人博客,低调大师

lnmp团队开发环境docker环境搭建

docker-compose-nginx-php-mysql docker-compose+nginx+php+mysql+redis+elasticsearch fox.风 github库 https://github.com/foxiswho/docker-compose-nginx-php-mysql 喜欢的同学可自行下载 版本 php:5.6.x mysql:5.6.x nginx:latest elasticsearch:latest 说明 目前只针对MAC系统的安装,其他系统请自定修改 Volumes 和 Users 目录 安装方式 1.选择要安装的系统和版本 例如:mac系统 php5.6.x版本,进入mac-php56目录 cd mac-php56 2.docker-compose.yml配置更改 选择你需要的功能,不需要的用#号注释掉 3.生成镜像 这个时候 一定不能更换目录。 注意 如果你以前已经配置过一样的容器那么会自动覆盖容器 docker-compose up 时间比较长, 更新源都在国外,最好早晨拉取 nginx 配置文件位置:/etc/nginx/nginx.conf 来源:官方源 php 来源:官方源 php-fpm 配置文件及目录位置 /usr/local/etc/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d 目录 php.ini 默认加载目录位置 /usr/local/etc/php/conf.d/ 目录 redis 来源:官方源 elasticsearch 来源:官方源 使用教程-MAC系统 新建目录 /Volumes/work/lanmps/vhost/ work:分区名称 lanmps:自定义目录 vhost:nginx 站点配置文件 复制 nginx/default.conf 到 /Volumes/work/lanmps/vhost/ 目录下 1.mac硬盘设置 mac 系统默认硬盘 不区分大小写, 如果需要区分请 按 http://blog.csdn.net/fenglailea/article/details/53083785 此链接中教程 重新分区。 建议分区,我这里是分区的 2.nginx 配置 进入nginx容器 docker exec -it compose_nginx_1 bash compose_nginx_1 容器名字可能不一样 注意 自动生成的名字是根据当前项目目录名字来的。 例如项目目录为mac-php56目录,那么生成容器前缀名字是macphp56_xxxx 配置nginx.conf vim /etc/nginx/nginx.conf 找到如下配置 include /etc/nginx/conf.d/*.conf; 修改为:(根据你自己分区名称置修改) include /Volumes/work/lanmps/vhost/*.conf; 保存和退出容器 3.php 配置 略 跟nginx类似 5.测试 在 /Volumes/work/lanmps/ 目录下 新建 index.php <?php phpinfo(); X.问题 X.1 权限问题 设置 可读写执行权限 chmod -R 777 /Volumes/work/lanmps

优秀的个人博客,低调大师

Ganglia+Hadoop+Hbase监控搭建流程

Hadoop集群基本部署完成,接下来就需要有一个监控系统,能及时发现性能瓶颈,给故障排除提供有力依据。监控hadoop集群系统好用的比较少,自身感觉ambari比较好用,但不能监控已有的集群环境,挺悲催的。ganglia在网上看到原生支持Hadoop、Hbase性能监控,试用一段时间感觉还不错,监控项比较全面,配置简单,软件包在epel网络源中,使用yum安装方便快捷。Ganglia是一个开源集群监控系统,主要用来监控系统性能,如:cpu、mem、硬盘利用率、I/O负载、网络流量等。Ganglia涉及到三个组件:gmond:被监控端代理程序,用于收集监控信息,并发送给gmetad。gmetad:定期从gmond获取数据,并将数据存储到RRD存储引擎中。ganglia-web:WEB前端,RRD绘图后通过PHP展示。 1.CentOS6 YUM源自带epel网络源,直接安装[root@sht-sgmhadoopnn-01 ~]# yum install epel-release[root@sht-sgmhadoopnn-01 ~]# yum install ganglia-web ganglia-gmetad ganglia-gmond 2.配置监控程序[root@sht-sgmhadoopnn-01 ~]# vi /etc/ganglia/gmetad.confdata_source "hadoop_hbase_cluster" 172.16.101.55:8649 172.16.101.56:8649 172.16.101.58:8649 172.16.101.59:8649 172.16.101.60:8649case_sensitive_hostnames 1setuid_username "root"gridname "MyGrid" 3.关联Apache,因为Ganglia自创建的配置ganglia.conf有问题,所以先删除,再创建个软连接到Apache根目录下[root@sht-sgmhadoopnn-01 ~]# rm /etc/httpd/conf.d/ganglia.conf rm: remove regular file `/etc/httpd/conf.d/ganglia.conf'? y[root@sht-sgmhadoopnn-01 ~]# ln -s /usr/share/ganglia /var/www/html/ganglia[root@sht-sgmhadoopnn-01 ~]# 4.启动Apache和Ganglia,并设置开机启动 [root@sht-sgmhadoopnn-01 ~]# chown -R root:root /var/lib/ganglia [root@sht-sgmhadoopnn-01 ~]# service httpd startStarting httpd: [ OK ][root@sht-sgmhadoopnn-01 ~]# service gmetad startStarting GANGLIA gmetad: [ OK ][root@sht-sgmhadoopnn-01 ~]# 5.安装与配置被监控端(每台同样配置)# yum install ganglia-gmond# vi /etc/ganglia/gmond.conf globals { daemonize = yes setuid = yes user = root ##root debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no allow_extra_data = yes host_dmax = 86400 /*secs. Expires (removes from web interface) hosts in 1 day */ host_tmax = 20 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no # By default gmond will use reverse DNS resolution when displaying your hostname # Uncommeting following value will override that value. # override_hostname = "mywebserver.domain.com" # If you are not using multicast this value should be set to something other than 0. # Otherwise if you restart aggregator gmond you will get empty graphs. 60 seconds is reasonable send_metadata_interval = 0 /*secs */ } cluster{ name = "hadoop_hbase_cluster" #集群名,和上面那个一样 owner = "root" ##root latlong = "unspecified" url = "unspecified"} /* Thehost section describes attributes of the host, like the location */host { location = "unspecified"} /*Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel*/udp_send_channel{ #bind_hostname = yes # Highly recommended,soon to be default. # This option tells gmond to use asource address # that resolves to themachine's hostname. Without # this, the metrics mayappear to come from any # interface and the DNSnames associated with # those IPs will be usedto create the RRDs. #mcast_join = 239.2.11.71 #关闭多播 host = 172.16.101.55 #添加发送IP/主机名 port = 8649 #默认端口 ttl = 1} /* Youcan specify as many udp_recv_channels as you like as well. */udp_recv_channel{ #mcast_join = 239.2.11.71 port = 8649 bind = 172.16.101.55 #------------ 本机的ip/hostname 接收地址 retry_bind = true # Size of the UDP buffer. If you are handlinglots of metrics you really # should bump it up to e.g. 10MB or evenhigher. # buffer = 10485760}…… 6.同步[root@sht-sgmhadoopnn-01 ~]# scp /etc/ganglia/gmond.conf root@sht-sgmhadoopnn-02:/etc/ganglia/gmond.confgmond.conf 100% 8769 8.6KB/s 00:00 You have mail in /var/spool/mail/root[root@sht-sgmhadoopnn-01 ~]# scp /etc/ganglia/gmond.conf root@sht-sgmhadoopdn-02:/etc/ganglia/gmond.confgmond.conf 100% 8769 8.6KB/s 00:00 [root@sht-sgmhadoopnn-01 ~]# scp /etc/ganglia/gmond.conf root@sht-sgmhadoopdn-01:/etc/ganglia/gmond.confgmond.conf 100% 8769 8.6KB/s 00:00 [root@sht-sgmhadoopnn-01 ~]# scp /etc/ganglia/gmond.conf root@sht-sgmhadoopdn-03:/etc/ganglia/gmond.confgmond.conf 100% 8769 8.6KB/s 00:00 #### 修改各个节点的gmond.conf的bind 为本节点ip 7.运行gmond (每台节点)[root@sht-sgmhadoopnn-01 ~]# service gmond start[root@sht-sgmhadoopnn-02 ~]# service gmond start[root@sht-sgmhadoopdn-01 ~]# service gmond start[root@sht-sgmhadoopdn-02 ~]# service gmond start[root@sht-sgmhadoopdn-03 ~]# service gmond start 8.添加Hadoop被Ganglia监控,去掉文件中以***释并修改(每台同样配置)[root@sht-sgmhadoopnn-01 ~]# vi $HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31*.sink.ganglia.period=10*.sink.ganglia.supportsparse=true*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40namenode.sink.ganglia.servers=172.16.101.55:8649 #当有多个ganglia监控系统时,以逗号分隔datanode.sink.ganglia.servers=172.16.101.55:8649 #都指定ganglia服务器resourcemanager.sink.ganglia.servers=172.16.101.55:8649nodemanager.sink.ganglia.servers=172.16.101.55:8649 [root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.properties sht-sgmhadoopnn-02:/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.propertieshadoop-metrics2.properties 100% 3183 3.1KB/s 00:00 You have new mail in /var/spool/mail/root[root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.properties sht-sgmhadoopdn-03:/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.propertieshadoop-metrics2.properties 100% 3183 3.1KB/s 00:00 [root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.properties sht-sgmhadoopdn-02:/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.propertieshadoop-metrics2.properties 100% 3183 3.1KB/s 00:00 [root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.properties sht-sgmhadoopdn-01:/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-metrics2.propertieshadoop-metrics2.properties 100% 3183 3.1KB/s 00:00 [root@sht-sgmhadoopnn-01 ~]# 9.添加HBase被Ganglia监控,添加如下(每台同样配置)[root@sht-sgmhadoopnn-01 ~]# vi /hadoop/hbase/conf/hadoop-metrics2-hbase.properties *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 hbase.sink.ganglia.period=10 hbase.sink.ganglia.servers=172.16.101.55:8649 [root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hbase/conf/hadoop-metrics2-hbase.properties sht-sgmhadoopnn-02:/hadoop/hbase/conf/hadoop-metrics2-hbase.properties[root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hbase/conf/hadoop-metrics2-hbase.properties sht-sgmhadoopdn-01:/hadoop/hbase/conf/hadoop-metrics2-hbase.properties[root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hbase/conf/hadoop-metrics2-hbase.properties sht-sgmhadoopdn-02:/hadoop/hbase/conf/hadoop-metrics2-hbase.properties[root@sht-sgmhadoopnn-01 ~]# scp /hadoop/hbase/conf/hadoop-metrics2-hbase.properties sht-sgmhadoopdn-03:/hadoop/hbase/conf/hadoop-metrics2-hbase.properties 10.查看http://172.16.101.55/ganglia

优秀的个人博客,低调大师

在archlinux上搭建twitter storm cluster

有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为基础讲解如何一步步安装twitter storm cluster. 先列出安装主要步骤 安装oracle jdk 安装必须的编译工具gcc, g++, make 安装python2.7, unzip 编译安装zeromq 编译安装jzmq 下载lein 下载storm-starter 下载storm release版本安装zookeeper为了自动运行storm cluster,安装supervisord 安装oracle jdk 在linux平台上标配的java是openjdk,如果要安装oracle的jdk的话,需要从官方下载相应的安装包。使用archlinux幸福的一点就是有yaourt,一切可以变得非常简单,:). #yaourt -S jdk 注意安装完的java路径,应该是在/opt/java,这个后面会用到。 修改/etc/profile, 添加环境变量JAVA_HOME,为PATH添加/opt/java/bin PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/java/bin" export PATH export JAVA_HOME="/opt/java" 安装编译工具 在twitter storm中会使用zeromq,因为zeromq是用c&c++编写的,所以需要安装相应的编译工具,不要使用archlinux中的版本,因为目前pacman或aur中的zeromq版本是3.x,而twitter storm中需要的zeromq是2.1.7 #pacman -S gcc g++ libtool pkg-config make autoconf git util-linux 安装python2.7, unzip #pacman -S python2 unzip 编译安装zeromq,jzmq 从http://download.zeromq.org/zeromq-2.1.7.tar.gz下载zeromq 2.1.7 #tar zvxf zeromq-2.1.7.tar.gz #config #make #make install 安装的路径是/usr/local/lib 编译安装jzmq #git clone https://github.com/nathanmarz/jzmq.git #cd jzmq #./autogen.sh #./configure --with-zeromq=/usr/local #make 注意,此处可能会出错,解决办法是修改jzmq/src/Makefile.am,将classdist_noinst.stamp修改为classnoinst.stamp #make install 安装完zeromq和jzmq之后,修改/etc/ld.so.conf,在该文件中添加如下一行 /usr/local/lib 然后运行 #ldconfig 为了验证libjzmq确实使用的zeromq是自行编译的版本,可使用如下命令进行检测。 #ldd /usr/local/lib/libjzmq.so linux-gate.so.1 (0xb779e000) libzmq.so.1 => /usr/local/lib/libzmq.so.1 (0xb7749000) libuuid.so.1 => /usr/lib/libuuid.so.1 (0xb7743000) librt.so.1 => /usr/lib/librt.so.1 (0xb773a000) libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb771e000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7635000) libm.so.6 => /usr/lib/libm.so.6 (0xb75ee000) libc.so.6 => /usr/lib/libc.so.6 (0xb743e000) libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7422000) /usr/lib/ld-linux.so.2 (0xb779f000) 如果libzmq.so.1确实指向/usr/local/lib中的版本,则说明版本使用正确。 安装storm-starter storm-starter是由storm的作者为了storm的初学者快速上手而创建的一个github项目。 #git clone https://github.com/nathanmarz/storm-starter.git 编译运行, 注意这是运行在local模式而非常cluster模式 #lein deps #lein compile #java -cp $(lein classpath) storm.starter.ExclamationTopology 注: 直接从http://leiningen.org/下载lein script,而非直接使用pacman或yaourt来安装 #chmod +x ./lein #cp ./lein /usr/local/bin #export LEIN_ROOT=1 如果想以root来运行lein,需要设置该变量 安装zookeeper #yaourt -S zookeeper 作简单的配置,修改文件/etc/zookeeper/zoo.cfg,使其内容如下所示 #The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/var/lib/zookeeper # the port at which the clients will connect clientPort=2181 因为zookeeper只对IPv6地址进行监听,为了强制其只监听IPv4地址,需要修改/opt/zookeeper-3.4.5/bin/zkServer.sh,在start)一节中加入"-Djava.net.preferIPv4Stack=true",整体看起来如下所示 case $1 in start) echo -n "Starting zookeeper ... " if [ -f $ZOOPIDFILE ]; then if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then echo $command already running as process `cat $ZOOPIDFILE`. exit 0 fi fi nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \ "-Djava.net.preferIPv4Stack=true" \ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null & if [ $? -eq 0 ] then if /bin/echo -n $! > "$ZOOPIDFILE" then sleep 1 echo STARTED else echo FAILED TO WRITE PID exit 1 fi else echo SERVER DID NOT START exit 1 fi ;; 注意蓝底红字的一行。 启动zookeeper #/opt/zookeeper-3.4.5/bin/zkServer.sh start 下载安装storm 从storm-project.net下载storm-0.8.2,将其解压到/opt目录下 #unzip storm-0.8.2.zip 修改/opt/storm-0.8.2/conf/storm.yaml, 文件内容如下 ########### These MUST be filled in for a storm configuration storm.zookeeper.servers: - "localhost" # - "server2" # nimbus.host: "localhost" # # # ##### These may optionally be filled in: # ## List of custom serializations # topology.kryo.register: # - org.mycompany.MyType # - org.mycompany.MyType2: org.mycompany.MyType2Serializer # ## List of custom kryo decorators # topology.kryo.decorators: # - org.mycompany.MyDecorator # ## Locations of the drpc servers # drpc.servers: # - "server1" # - "server2" ## Metrics Consumers # topology.metrics.consumer.register: # - class: "backtype.storm.metrics.LoggingMetricsConsumer" # parallelism.hint: 1 # - class: "org.mycompany.MyMetricsConsumer" # parallelism.hint: 1 # argument: # - endpoint: "metrics-collector.mycompany.org" java.library.path: "/usr/local/lib:/usr/local/share/java" supervisor.slots.ports: - 6700 - 6701 注意: yaml要求配置项必须以空格打头 修改storm脚本,将#!/usr/bin/python改为#!/usr/bin/python2, /usr/bin/python是指向python3的所以需要显示将其改为python2 准备运行cluster模式了 #/opt/storm-0.8.2/bin/storm nimbus #/opt/storm-0.8.2/bin/storm supervisor #/opt/storm-0.8.2/bin/storm ui 上述每条指令需要单独运行在一个终端,如果ui启动成功,可以使用浏览器来访问localhost:8080查看整个cluster的状况了。 部署Topology到cluster #./storm jar $HOME/working/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-standalone.jar storm.starter.ExclamationTopology exclamationTopology 一切顺利的话,应该可以看到类似的输出 0 [main] INFO backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar... 91 [main] INFO backtype.storm.StormSubmitter - Uploading topology jar /root/working/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-standalone.jar to assigned location: storm-local/nimbus/inbox/stormjar-c73d28f0-68fc-4e6e-98b5-c4d1355aa94f.jar 667 [main] INFO backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-c73d28f0-68fc-4e6e-98b5-c4d1355aa94f.jar 670 [main] INFO backtype.storm.StormSubmitter - Submitting topology exclamationTopology in distributed mode with conf {"topology.workers":3,"topology.debug":true} 2449 [main] INFO backtype.storm.StormSubmitter - Finished submitting topology: exclamationTopology 自动化运行storm cluster 每次都要手工启动storm cluster并不是一件很令人愉快的事,最好是能自动启动。解决办法总是有的,使用python supervisor即可。 #pacman -S supervisor #mkdir -p /var/log/storm 修改supervisor配置文件,在文件最后添加如下内容 [program:storm-nimbus] environment=JAVA_HOME=/opt/java, PATH="/usr/sbin:/usr/bin:/usr/local/bin:/opt/java/bin" command=/opt/storm-0.8.2/bin/storm nimbus ;;user=storm autostart=true autorestart=true startsecs=10 startretries=999 log_stdout=true log_stderr=true logfile=/var/log/storm/nimbus.out logfile_maxbytes=20MB logfile_backups=10 [program:storm-supervisor] environment=JAVA_HOME=/opt/java, PATH="/usr/sbin:/usr/bin:/usr/local/bin:/opt/java/bin" command=/opt/storm-0.8.2/bin/storm supervisor ;;user=storm autostart=true autorestart=true startsecs=10 startretries=999 log_stdout=true log_stderr=true logfile=/var/log/storm/supervisor.out logfile_maxbytes=20MB logfile_backups=10 注: 在上述配置中显示加入了environment一行,主要是为了解决可执行文件搜索路径的问题,否则会报错说无法找到java可执行程序因其不在标准路径/usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin中。 启动supervisord #systemctl start supervisord 想开机自动运行supervisord的话,执行如下指令 #systemctl enable supervisord 参考资料 Running a Multi-Node Storm Clusterhttp://www.michael-noll.com/tutorials/running-multi-node-storm-cluster/

优秀的个人博客,低调大师

Python开发环境之pyenv环境搭建

首先到Github上下载Pyenv相应的一键安装脚本, $curl-Lhttps://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer|bash 安装完毕,设置环境变量,设置环境变量,可以添加到个人家目录的.bashrc或.bash_profile及系统的全 局的/etc/profile, #Loadpyenvautomaticallybyadding #thefollowingto~/.bash_profile: exportPATH="/home/lavenliu/.pyenv/bin:$PATH" eval"$(pyenvinit-)" eval"$(pyenvvirtualenv-init-)" 设置完毕之后,可以在命令行进行验证, [lavenliu@VM_113_230_centos~]$.~/.bash_profile [lavenliu@VM_113_230_centos~]$pyenv pyenv20160726 Usage:pyenv<command>[<args>] Someusefulpyenvcommandsare: commandsListallavailablepyenvcommands localSetorshowthelocalapplication-specificPythonversion globalSetorshowtheglobalPythonversion shellSetorshowtheshell-specificPythonversion installInstallaPythonversionusingpython-build uninstallUninstallaspecificPythonversion rehashRehashpyenvshims(runthisafterinstallingexecutables) versionShowthecurrentPythonversionanditsorigin versionsListallPythonversionsavailabletopyenv whichDisplaythefullpathtoanexecutable whenceListallPythonversionsthatcontainthegivenexecutable See`pyenvhelp<command>'forinformationonaspecificcommand. Forfulldocumentation,see:https://github.com/yyuu/pyenv#readme 以上都没有问题。比如,安装一个3.5.2的版本Python, pyenvinstall3.5.2 如果下载速度慢的话,可以事先下载之,放到~/.pyenv/cache目录即可。修改~/.pyenv/plugins/python-build/share/python-build/3.5.2文件, cat~/.pyenv/plugins/python-build/share/python-build/3.5.2 #require_gcc install_package"openssl-1.0.2g""https://www.openssl.org/source/openssl-1.0.2g.tar.gz#b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33"mac_openssl--ifhas_broken_mac_openssl install_package"readline-6.3""http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43"standard--ifhas_broken_mac_readline ifhas_tar_xz_support;then install_package"Python-3.5.2""~/.pyenv/cache/Python-3.5.2.tar.gz"ldflags_dirsstandardverify_py35ensurepip else install_package"Python-3.5.2""~/.pyenv/cache/Python-3.5.2.tar.gz"ldflags_dirsstandardverify_py35ensurepip fi 由于没有~/.pyenv/cache目录,进行手工创建, $mkdir~/.pyenv/cache 如果使用手工安装,则需要安装一些依赖, #yuminstall-ygccmakepatchgdbm-developenssl-develsqlite-develzlib-develbzip2-develreadline-devel 需要事先准备好Python-3.5.2.tar.gz的安装包,放到~/.pyenv/cache目录下。然后,在命令行直接使用pyenv install 3.5.2即可, $pyenvinstall3.5.2 安装完毕,使用version命令进行查看, pyenvversion 3.5.2(setby/home/lavenliu/.python-version) 至此,已经安装完毕。

优秀的个人博客,低调大师

搭建hadoop1.2集群

环境准备 我使用的是vmware workstation,首先安装ubuntu 12.04,安装完成后通过vmware的clone,clone出两个虚机,设置的IP分别是: 192.168.74.130 master 192.168.74.132 node1 192.168.74.133 node2 然后修改各个主机的/etc/hosts中的内容。 使用vi或者gedit,将上边的内容编缉进去。 创建用户 先创建hadoop用户组: sudo addgroup hadoop 然后创建用户hadoop: sudo adduser -ingroup hadoop hadoop 注:在centos 和 redhat下直接创建用户就行,会自动生成相关的用户组和相关文件,而ubuntu下直接创建用户,创建的用户没有根目录。 给hadoop用户添加权限,打开/etc/sudoers文件; sudo gedit /etc/sudoers 按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。 在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL, hadoop ALL=(ALL:ALL) ALL 为本机(master)和子节点(node..)安装JDK环境。 其实网上挺多的,参考http://blog.csdn.net/klov001/article/details/8075237,这里不详细描述了。 修改本机(master)和子节点(node..)机器名 打开/etc/hostname文件; sudo gedit /etc/hostname 分别改为master、node1和node2。 本机(master)和子节点(son..)安装ssh服务 主要为ubuntu安装,cents和redhat系统自带。 ubuntu下: sudo apt-get install ssh openssh-server 建立ssh无密码登录环境 做这一步之前首先建议所有的机子全部转换为hadoop用户,以防出现权限问题的干扰。 ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。 创建ssh-key,这里我们采用rsa方式; ssh-keygen -t rsa -P "" (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的) 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的; cd ~/.ssh cat id_rsa.pub >> authorized_keys 可以使用ssh 主机名测试一下是否成功。 为mater安装hadoop 在hadoop用户下建立hadoop文件夹,然后将hadoop-1.2.0.tar.gz上传到这个目录下。 tar -zxvf hadoop-1.2.0.tar.gz 解压缩。然后到hadoop目录下conf下找到hadoop-env.sh 配置JAVA_HOME为你上面配置的JAVA_HOME。 找到core-site.xml,配置信息如下: <configuration> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp/hadoop-${user.name}</value> <description>A base for other temporarydirectories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> <description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem. </description> </property> </configuration> 修改hdfs-site.xml: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>2</value> <description>Default block replication. The actual number of replications can be specified when the file iscreated. The default is used if replication is not specified in create time. </description> </property> </configuration> 修改mapred-site.xml: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> <description>The host and port that the MapReduce job trackerruns at. If "local", then jobs are run in-process as a singlemap and reduce task. </description> </property> </configuration> 修改masters: master 修改slaves: node1 node2 启动hadoop 在master主机上的hadoop安装目录下的bin目录下,执行格式化 ./hadoop namenode -format 正常情况下会出现如下提示: 说明格式化成功。 启动所有结点: ./start-all.sh 会按先后顺序启动,启动完成后,分别到主机和两个node上使用jps查看。 master上显示如下: node1和node2上显示: 在操作的过程中遇到了DataNode不能启动的问题,经过查看node1的hadoop的日志,发现提示错误信息: org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid. 经过查找是因为权限的问题,于是 sudo chmod 755 “你配置的data目录” 问题解决。 运行示例 在根目录下新建文件a,并且向a中随意添加字符串信息。 然后在hdfs上创建目录: ./hadoop dfs -mkdir test1 把刚才创建的文件a上传到test1下: ./hadoop dfs -put ~/a test1 然后查看文件中的内容: ./hadoop dfs -cat test1/a 显示结果如下:

优秀的个人博客,低调大师

GaussDB 数据库实验环境搭建指导

文章目录 简介 内容描述 实验环境说明 1 GaussDB数据库购买 1.1 实验介绍 1.1.1 关于本实验 1.1.2 实验目的 1.2 购买GaussDB数据库 1.2.1 登录华为云 1.2.2 购买华为云GaussDB数据库 简介 本指导书适用于在华为云部署购买GaussDB数据库,通过该指导书可以顺利完成GaussDB数据库在华为云的购买。 内容描述 本实验指导书主要内容为华为云购买GaussDB数据库。 实验环境说明 组网说明 本实验环境为华为云环境,需要购买GaussDB数据库。 设备介绍 为了满足数据库原理与实践课程实验需要,建议每套实验环境采用以下配置: 设备名称、型号与版本的对应关系如下: 设备明细表 设备名称 设备型号 软件版本 数据库 GaussDB 4 核 16 GB 本实验概览图 1 GaussDB数据库购买 1.1 实验介绍 1.1.1 关于本实验 本实验主要描述华为云GaussDB数据库的购买。 1.1.2 实验目的 掌握华为云购买GaussDB数据库。 1.2 购买GaussDB数据库 1.2.1 登录华为云 步骤 1登录华为云官网。 登录https://www.huaweicloud.com/,进入华为云官网,输入账号及密码,登录。 1.2.2 购买华为云GaussDB数据库 步骤 1进入控制台,选择区域“广州-友好用户环境”。在左侧图标栏,单击服务列表图标,选择云数据库GaussDB。 步骤 2进入数据库购买界面,选择GaussDB,然后购买数据库实例。 步骤 3配置数据库。 计费模式选择按需计费,区域选择华南-广州-友好用户环境,实例名称按需修改,数据库版本选择基础版,其他保持默认。 其余默认即可,默认端口号为8000,并输入数据库密码。 参数模板默认即可,标签可以不填,单击立即购买。 在确认页面,确认所购买实例是否为广州-友好用户环境下的免费实例。确认后,单击“提交”提交订单。 请务必确认金额后再购买。 提交完成后,回到实例界面。 等待数据库创建。 等待10至20分钟后,数据库创建成功。 购买成功! 注意:本次购买数据库服务的价格为公测价格,具体价格以华为云官网为准。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。