首页 文章 精选 留言 我的

精选列表

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

使用Docker搭建WordPress博客(三)nginx镜像制作

1.查看创建nginx镜像所有文件 [root@localhost nginx]# ls default.conf Dockerfile fastcgi_params run.sh 2.创建Dockerfile文件 [root@localhost nginx]# cat Dockerfile #VERSION 0.0.1 FROM centos MAINTAINER wtf "wtf@data.com" RUN rpm -ivh http://mirrors.sohu.com/fedora-epel/epel-release-latest-7.noarch.rpm RUN yum -y install nginx php php-fpm php-cli php-common php-gd php-mbstring php-mcrypt php-mysql php-pdo php-devel php-imagick php-xmlrpc php-xml php-bcmath php-dba php-enchant ADD default.conf /etc/nginx/conf.d/default.conf ADD fastcgi_params /etc/nginx/fastcgi_params ADD run.sh /tmp/ RUN chmod +x /tmp/run.sh ENTRYPOINT ["./tmp/run.sh"] EXPOSE 80 3.创建Nginx的default.conf server { listen 80 default_server; servername; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } } 4.创建fastcgi_params [root@localhost nginx]# cat fastcgi_params fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; 5.创建run.sh [root@localhost nginx]# cat run.sh #!/bin/sh /usr/sbin/php-fpm -D /usr/sbin/nginx -g "daemon off;" 6.创建nginx镜像 docker build -f Dockerfile -t weibo_nginx:v1 . 说明:-f 指定文件 , -t 指定生成镜像名称 ,冒号后为版本号。 7.查看生成的镜像 本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/2054434,如需转载请自行联系原作者

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

使用Docker搭建WordPress博客(一)yum安装docker

WordPress说明 WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统。在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站。 Windows与Linux上部署WordPress 在Windows上可以非常方便的安装WordPress,因为IIS上集成了WordPress的一键安装包。而在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境、Apache或者Nginx服务器、MySQL数据库以及各种权限和访问问题。所以在Linux上最好的办法就是使用Docker来安装WordPress。 安装docker (1)先确定内核版本是否是3.8以上 [root@centos7 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) (2)安装docker包 [root@centos7 ~]# yum install -y docker (3)docker安装报错(如有) 错误原因及解决方法: yum安装docker,有时候会报一个错误,这时按ctrl+c将其强制停止。报错原因是因为PID15269被占用,删除/var/run.yum.pid,然后重新执行yum安装docker即可! 启动docker服务 查看docker版本 (docker version和docker info都是查看版本的命令,不同之处在于,docker version 显示 Docker 版本信息,而docker info 显示 Docker 系统信息,包括镜像和容器数) 验证docker安装是否正确 [root@centos7 ~]# docker pull busybox 本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/2049861,如需转载请自行联系原作者

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

android122 zhihuibeijing 主页面使用fragment搭建

fragment的生命周期: onAttach()当fragment添加进Activity的时候调用(这个时候Activity对象已经存在了,不然就依赖不上去的) onCreate()当fragment创建的时候调用。 onCreateView()当fragment画界面的时候调用。 onActivityCreated()当fragment依附的Activity创建完成的时候调用。 onStart(),onResume(),onPause(),onStop(),onDestroyView(),onDestroy(). onStart()对着onStop(), onResume()对着onPause(), onDestroyView()对着onCreateView(), onDestroy()对着onCreate()。 Mainactivity package com.itheima.zhbj52; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import com.itheima.zhbj52.fragment.ContentFragment; import com.itheima.zhbj52.fragment.LeftMenuFragment; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; /** * 主页面 */ public class MainActivity extends SlidingFragmentActivity {//使用开源SlidingMenu框架实现侧边栏, private static final String FRAGMENT_LEFT_MENU = "fragment_left_menu"; private static final String FRAGMENT_CONTENT = "fragment_content"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//主页面是一个空的FrameLayout,后面会用Fragment填充。 setBehindContentView(R.layout.left_menu);//侧边栏也是一个空的FrameLayout,后面会用Fragment填充,SlidingFragmentActivity这个库的方法,设置左侧边栏布局。 SlidingMenu slidingMenu = getSlidingMenu();// 获取侧边栏对象 slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置主屏幕可以全屏触摸进行滑动, slidingMenu.setBehindOffset(200);// 设置预留屏幕的宽度,左右侧边栏滑动的时候主屏幕最少有100像素。 initFragment(); } /** * 初始化fragment, 将fragment数据填充给布局文件 */ private void initFragment() { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction transaction = fm.beginTransaction();// 开启事务 //fl_left_menu和fl_content位于不同的xml transaction.replace(R.id.fl_left_menu, new LeftMenuFragment(), FRAGMENT_LEFT_MENU);// 用fragment替换framelayout,FRAGMENT_LEFT_MENU是名字。 transaction.replace(R.id.fl_content, new ContentFragment(), FRAGMENT_CONTENT); transaction.commit();// 提交事务 // Fragment leftMenuFragment = fm.findFragmentByTag(FRAGMENT_LEFT_MENU);根据名字找fragment, } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> 空布局,就是一个容器。 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fl_content" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> left_menu.xml <?xml version="1.0" encoding="utf-8"?> 空布局,就是一个容器。 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fl_left_menu" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> LeftMenuFragment package com.itheima.zhbj52.fragment; import com.itheima.zhbj52.R; import android.view.View; /** * 侧边栏 * * @author Kevin * */ public class LeftMenuFragment extends BaseFragment { @Override public View initViews() { View view = View.inflate(mActivity, R.layout.fragment_left_menu, null); return view; } } fragment_left_menu.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f00" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是侧边栏!" /> </RelativeLayout> ContentFragment package com.itheima.zhbj52.fragment; import com.itheima.zhbj52.R; import android.view.View; /** * 主页内容 * * @author Kevin * */ public class ContentFragment extends BaseFragment { @Override public View initViews() { View view = View.inflate(mActivity, R.layout.fragment_content, null); return view; } } fragment_content.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是主页面哦!" /> </RelativeLayout> BaseFragment package com.itheima.zhbj52.fragment; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * fragment基类 */ public abstract class BaseFragment extends Fragment { public Activity mActivity; // fragment创建 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity = getActivity();//拿到fragment所依赖Activity的对象,fragment创建创建的时候Activity对象肯定是已经存在了,所以这个对象不会是空的。 } // 处理fragment的布局 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return initViews();//子类实现,因为每个布局不一样。 } // 依附的activity创建完成 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); } // 子类必须实现初始化布局的方法 public abstract View initViews(); // 初始化数据, 可以不实现 public void initData() { } } 本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5040283.html,如需转载请自行联系原作者

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

Hadoop,HBase集群环境搭建的问题集锦(四)

21.Schema.xml和solrconfig.xml配置文件里參数说明: 參考资料:http://www.hipony.com/post-610.html 22.执行时报错: 23., /commons-cloud/src/main/resources/testClientUtil.properties 中配置的什么? 在ws-cloud中也有个 答: 好像是mysql的server, 如今预计没用了 24.在ws-cloud项目中 192.168.101.153 这又是干嘛的机器? 答: 这台机器是给定了mavens获取所须要的jar包的仓库信息 25.搭好hbase solr后台环境, 配置好相关文件, 开发机器上tomcatserver执行web-cloud和ws-cloud项目, 用maoqiang/hanwang账号登陆后, 到摘抄页面, 点击”添加”button, 想添加一个摘抄文件. Eclipse下报出例如以下信息: ====================ENTER==================input:{“uid”:”95841248414524”,”sid”:”11111111111”,”ver”:”1.0.0”,”userid”:”maoqiang”,”devid”:”hwa30_12345678”,”ftype”:”0”,”sort”:{“accessTime”:”desc”},”start”:”“,”count”:”10”,”fuid”:”“,”title”:”\u6211\u662f\u8c01”,”summary”:”\u6211\u662f\u8c01”,”content”:”\u6211\u662f\u8c01”,”serVer”:”“,”qstr”:{“start”:”“,”end”:”“,”month”:”“,”title”:”“,”cnt”:”“}} 2015-05-20 16:03:19,353 WARN [http-8080-1] (HConnectionManager.java:1098) - Encountered problems when prefetch hbase:meta table: org.apache.hadoop.hbase.TableNotFoundException: Cannot find row in hbase:meta for table: fileInfo, row=fileInfo,,99999999999999 at org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:146) at org.apache.hadoop.hbase.client.HConnectionManagerHConnectionImplementation.prefetchRegionCache(HConnectionManager.java:1095)atorg.apache.hadoop.hbase.client.HConnectionManagerHConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1155) … at java.lang.Thread.run(Thread.java:744) 2015-05-20 16:03:19,360 INFO [http-8080-1] (AuthorizeFilter.java:215) - KEY:null—URL:http://localhost:8080/ws-epen/rt/ap/v1/user/listaxis—TIME:21 我想到了hbase内也许应该建好对应的rowkey和列族等信息. 是的, 确实是这么回事, 创建好了hbase的表就好了. 26.关于Mybatis的一条信息, 怎么破? 解决的方法:( 暂未解决,下面是參考解决的方法, ) 在集成Spring + mybaits时出现下面警告org.mybatis.spring.mapper.MapperScannerConfigurer$Scanner.main No MyBatis mapper was found in ‘com.***.dao.impl’ package. Please check your configuration. 出现以上情况是由于你的配置文件写多了这一段, [java] view plaincopyprint?<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lanyuan.dao.impl" /> </bean> 亲爱吊丝们。把它删除吧。 原因:是org.mybatis.spring.mapper.MapperScannerConfigurer是扫描仓储类的接口,我不是用接口方式实现管理的.所把那段删除便可。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5258384.html,如需转载请自行联系原作者

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

MAC下Android的Eclipse开发环境的搭建

一.Eclipse的下载 到网站:http://www.eclipse.org/downloads/上,由于我们是用Java开发的所以步骤如下: 1.找到“Eclipse IDE for java Developers”此处右上角会根据你当前使用的系统自动选择,Mac下就会自动选择位“Mac OS X(Cocoa)” 2.然后点击右边的“Mac OS X 64bit”(这里我的Pro是i5处理器可以用64位的),根据你的机器也可以选择“Mac OS X 32bit”进行下载。 二.安装ADT ADT是Android应用程序的开发环境 在线安装,本来还有个离线安装的,但是我试图去下载这个离线安装包但是没有找到下载的地方,所以这里我主要介绍如何进行在线安装。 1.点击菜单中的Help——> Install New Software⋯; 2.在弹出的对话框中有个“Work with”,在右边的输入栏中输入:https://dl-ssl.google.com/android/eclipse/然后下面就会pending出来一个“Developer Tools”,勾选上,然后一路的Next下去就可以安装完成。 三.设定ADT 在菜单栏Refactor中如果能看到Android的标签表示ADT安装成功。 1下载Android SDK 打开网站:http://developer.android.com/sdk/index.html选择Mac OS X(intel)的SDK版本进行下载(因为我的pro是intel的i5处理器) 2安装Android SDK 刚下载的Mac版的SDK文件是:“android-sdk-mac_x86.rar”文件,将其解压出来,然后运行tools/Android,在弹出的Android SDK and AVD Manager对话框中选择左边的Installed packages,右边就会列出当前已经安装了的SDK,点击下面的“Update All”然后一步一步来就会下载所有的Android SDK的版本并进行安装。 然后在菜单栏Eclipse—> Preferences(偏好设置),会弹出一个Preferences对话框,选Android,然后在SDK Loaction中填入刚下载的SDK的路径或者点击右边的Browser选择。 3生成模拟器 菜单栏Window—> Android SDK and AVD Manger会弹出对话框,然后在对话框中选择new开始按自己的需求新建模拟器,至此就大功告成了!

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

云服务器 ECS 搭建WordPress网站:备案

备案 对于域名指向中国境内服务器的网站,必须进行网站备案。在域名获得备案号之前,网站是无法开通使用的。 阿里云有代备案系统,方便您进行备案。备案免费,一般审核时间为20天左右。请您耐心等待。 注意:目前只有 包年包月 的 ECS 可以备案。 操作步骤 1.首先给购买的ECS实例申请备案服务号。这个服务号在备案时会用到。打开 备案管理>备案服务号申请,然后单击申请。 2.在弹出的提示信息对话框中,单击确定。 3.申请成功后,页面自动跳转到备案服务号管理页面,显示与 ECS 实例绑定的备案号。然后单击备案专区,了解备案相关信息。 4.首次备案的用户,请使用阿里云账号登录备案入口 http://beian.aliyun.com 开始备案。 关于首次备案的详细步骤,请参考 首次备案图文引导。 下一步 配置域名解析原文链接

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

私有云搭建:基于OpenStack 但不止于OpenStack

在过去的3月份,开源厂商Redhat公司披露了它的第四个季度的财报,显示其中16%左右的收益来自于私有OpenStack。Red Hat的CEO Jim Whitehurst也表示,第四季度中三分之一左右的大型交易来自于OpenStack私有云组件。这对用户来说无疑是一个利好消息,说明已经有越来越多的企业开始尝试应用OpenStack了。 Redhat只是OpenStack企业部署的一个案例而已,那么OpenStack当前在国内的部署、实施水平如何?对此,我们有幸采访了云极星创联合创始人兼CTO刘世民先生,他曾先后在EMC和IBM公司负责OpenStack平台的架构设计与实现和OpenStack 的私有云产品国内的研发,以及云极星创IaaS平台研发部架构师刘家军先生。 OpenStack国内发展形势大好 OpenStack是以开源社区为基础,仅从对社区的代码贡献量来看,中国企业、开发人员已经成为社区的中黄金、白金会员的主力军了。刘世民说, “目前,在OpenStack领域,我认为国内与国外的差距已经不是很明显了,相反在某些方面国内甚至是超前的。”对此刘世民给出了解释: 首先,国内客户在OpenStack方面受到了良好的教育,促使开源环境部署处于了较高的水平,国内在这一开源平台上的教育过程已经基本完成。现在,面对OpenStack,客户的问题不再是“OpenStack 行与不行”的问题,而是想要深入了解厂商所提供的“OpenStack做的怎么样”的问题。 其次,OpenStack代码和功能方面的成熟度比以前有了显著的提高,尤其是在计算、存储、网络等核心模块上已经达到了很高的水平,足够在企业应用,例如商用存储、商用SDN,以及其它方面的优化,都已经能够满足大部分企业环境的需求。 第三,国内从事OpenStack的公司已经走进了成熟期。从融资的情况来看,大部分OpenStack初创企业已经走向了C轮,或者是B后期的轮融资,另外再加上以华为为代表的大企业也已经将OpenStack 锤炼成型。 第四,企业对私有云的需求在提升。私有云必须以虚拟化为基础,现在国内的虚拟化水平已经可以向私有云发展,同时,物联网应用的发展也对云计算提出了直接的需求。这也就是说,OpenStack作为构建私有云的基础平台,也备受企业青睐。 另外,刘家军补充,国内企业进行的私有与公有项目,从架构与设计都不错。在国内,基于OpenStack构建私有云的企业有很多,涉及了金融行业、电力电网行业,银行业,这些企业要么自主研发,要么与OpenStack厂商合作构建私有云。除此之外,大的互联网公司,例如360、京东、网易、美团都对OpenStack 进行了投入研发。 由此可见,OpenStack在国内发展真的一片大好的情势。但在与国外相比较时,刘世民还说“如果说有差距的话,那还是在产品化。” OpenStack 产品化:“不要OpenStack ,而要私有云” 谈到用户对OpenStack的需求时,刘世民这样说到:“企业需要的不是OpenStack,而是一个私有云,他们需要的是可以支撑业务发展的私有云。”但企业自己构建私有云比较复杂,如对环境的利旧性,对数据中心内部的建设,对网络存储等功能都有很高的要求。虽然,OpenStack本身是一个开放平台,可以支持各种网络、IT基础设施、各种负载应用,可以很好地应对用户对私有云的需求。但OpenStack本身对于用户来说更是解决问题一项技术,并不能拿来就用,他们需要是一种产品化的OpenStack,而这正OpenStack社区的弱点。在把OpenStack转变成企业所需要的产品化过程中,刘世民认为应该从以下几个方面着手: 改进OpenStack界面。界面是用户最直接接触东西,一定要做到简单易用。然而,对于管理、计费、与企业网络的用户系统的打通等功能,社区OpenStack无法做到易用。刘世民认为,客户对私有云的很大一部分需求是对界面的要求。OpenStack社区的Horizon显示界面,完全是以技术化的方式呈现的——只是简单地把资源暴露出来,最终用户完全无法直接使用,使得企业进行OpenStack构建私有云时,要重新定制化这一界面。 据刘世民介绍,云极星创在OpenStack的控制界面(CMP)方面投入了大量精力,一开始就把CMP与OpenStack置于同等重要的位置进行产品设计,尽量屏蔽掉过于技术的东西。云极星创认为社区的Horizon是依附于OpenStack的,不便于最终用户使用,因此,在云极内部专门设置了一条产品线服务于CMP的设计。 提升OpenStack稳定性。OpenStack社区有30多个组件,和难以计数的项目,其稳定性差,可维护性弱。用户认为选择OpenStack构建私有云,就意味着企业要培养一支大型的维护团队,大大地增加了人力成本。在这方面,为了确保OpenStack的稳定与可维护性,刘世民说OpenStack服务提供商要具备强大的服务系统和用户监控平台——这些也是云极星创的重点,他们并给用户提供了Venus自动化运维平台,让OpenStack功能尽在用户的掌握之中。 加强OpenStack备份功能。无论是虚拟机、文件备份,还是数据库备份,OpenStack社区都比较薄弱,对此云极星创将引入第三方专业备份机构,打造了一个生态系统,共同满足企业对安全、备份的需求。”我们不只专注于OpenStack 代码本身,我们还以它为中心、满足客户产品化需求的完整的产品体系,“刘世民表示。 此外,云极星创看到,近年来对于技术选型方面,企业已经愈发地趋于理性,越来越多从业务需求出发,可以说是用户的选择已经回归到业务的正常需求上。因此,对于用户所提出的需求,云极还提供了强大售前团队支持,帮助用户甄别出伪需求,留下有价值需求,给用户提供定制化的设计。刘世民认为,“定制化是有范围的,如果90%是标准化,10%定制化,这是合理的需求;而如果企业一味拒绝定制化,并不是长久之计。” OpenStack +容器技术:打造全栈式的云平台 对于OpenStack与容器技术,如Docker和Kubernetes,之间的关系,刘家军说OpenStack与Docker是互补的关系,只是两者解决的核心问题不太一样。 从技术看,Docker主要是运行时环境的一个封装,它把常用的程序、库函数、包括软件本身都会打包在一个镜像中;不同的Docker实例依赖同一个操作系统内核,优势在于,例如应用打包好后,在不同的Linux发行版本上都可以运行,减少了对操作系统的依赖;另外它结合了操作系统提供的功能,实现了资源的隔离,如果在同一个操作系统上运行两个程序 ,即使对同一个软件库有不同版本的要求,也不会有影响,因为它们运行在各自的镜像中,使用的版本是不一样的。 OpenStack是通用的IaaS平台,以系统虚拟化为基础,主要指的就虚拟机。虚拟机抽象模拟了计算机所需要的各种虚拟零部件,在这些零部件上安装操作系统,才能把这些虚拟的零部件运行起来。虚拟机中支持完整的操作系统,无论安装什么操作系统,底层模拟的程序和硬件提供的接口或者映像与真实机器是一样的,所以它能完全独立于底层的操作系统。与Docker的一个区别在于,Docker实例之间依赖于共同的内核,如果系统内核出现BUG,所有的Docker都会受到这个内核的影响;而虚拟机的隔离性更好,它提供给每个虚拟机一个独立的虚拟的硬件,虚拟机拥有自己的内核,如果这一个内核出现问题,不会影响别的虚拟机的。 两者技术上不一致,适用的场景和范围也不一样。Docker适合用来做应用之间的隔离——在现有的平台中更适合于PaaS场景中,程序员只需要关注于程序、代码做好就可以,他不用关心平台的运行、部署、运维等工作。 Kubernetes是容器的调度和编排工具。对大型的程序而言,其中包含的不只一个运行服务,将会有多个服务,通过一定的通信来提供整个的功能。在这种情况下,这些组件之间如何部署,如何交互,部署在什么地方合适,都通过编排工具完成的。对于底层物理硬件的调度、资源的合理分配等待调度编排是Kubernetes的核心功能。 OpenStack与Docker和Kubernetes都存在各自的优缺点。在刘世民看来,目前OpenStack与容器有几个对接方向,一是OpenStack容器化,解决可升级性问题;二是OpenStack编排容器,解决集群项目管理问题;三是OpenStack中的虚拟机与容器的整合,解决网络相关的问题。 "云极技术栈选型,不是OpenStack公司,我们的定位是打造一个以OpenStack为核心的IaaS层,这是我们的第一个目标,"刘世民称。在(IaaS)上面云极还将打造一个CaaS(容器即服务)层,同时基于CaaS层建立PaaS层来支持应用的运行;另外,在SaaS层,打造云极还将打造自己的的Marketplace,给用户提供有价值的云服务。云极星创的终极目标,是给用户提供一个SaaS 、PaaS 、IaaS 的全栈式的云服务平台。 结语 尽管,OpenStack正在不断走向成熟,但还是有一些需要改进的地方。未来,刘世民期望OpenStack社区能注重产品化的设计,便于用户、开发者的使用;更加开放,拥抱各种新技术,如容器、NFV、IOT和大数据等;并且社区能在混合云中付诸更多的行动,因为未来混合云很有可能一骑绝尘。 本文作者:蒋红冰 来源:51CTO

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

hadoop 2.7.3 集群搭建遇到问题以及解决

系统安装相关 center os安装到系统中需要用软碟通制作一个启动盘,先选择一个镜像,然在在启动菜单选择写入硬盘 出现错误 center os 7 starting timeout报了一长溜后出现dev/root dosnot exist 这是没有找到镜像文件,在报错界面cd dev,可以看到挂载的设备,有几十个,sd开头的是存储相关。我这边出现的是sda sda4 sdb。重启,在选择安装界面按e进入编辑,将vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 改为:vmlinuz initrd=initrd.imginst.stage2=hd:/dev/sda quiet 即可,然后按ctrl+x安装如果没成功改为sdb sda4总有一个会让你成功 SSH相关 1. 明明SSH已经配置值成功了,为什么start-all.sh的时候还要输入s2的密码 s3的密码? 答:ssh设置的是给hadoop用户配置的,需要su hadoop 切换到hadoop用户下再执行start-all.sh 2. ssh没有配置成功如何重新开始配置 答:先将用户切换到hadoop然后打开~/.ssh目录,将目录下的所有文件都删除(三个节点都这么做),弄完后执行ssh localhost初始化ssh hadoop相关 start-all.sh报错:ssh: Could not resolve hostname master: Temporary failure in name resolution答:请确保各配置文件里的三台机器的host名没有填错,包括/etc/hosts core-site.xml hdfs-site.xml mapred-site.xml 这几个文件都要排查 DataNode节点没有起来,查看日志发现是/user/hadoop/dfs/data 文件路径不存在答:请确保hdfs-site.xml里面的name为dfs.datanode.data.dir所对应的value路径目录文件夹已创建 DataNode节点没有起来,查看节点日志文件发现是对该文件夹没有权限,无法操作答:chown -R hadoop:hadoop /usr/hadoop 给三个节点的改目录赋该权限给hadoop群组的hadoop用户 Cannot create file/business1/2017-08-02/15/.logs.1501660021526.tmp. Name node is in safe mode.答:表示目前是安全模式,值要退出安全模式就可以了hadoop dfsadmin -safemode leave DataXceiver error processing WRITE_BLOCK operation 2017-08-03 01:27:55,667 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: s3:50010:DataXceiver error processing WRITE_BLOCK operation src: /192.168.1.113:47061 dst: /192.168.1.113:50010 java.io.InterruptedIOException: Interrupted while waiting for IO on channel java.nio.channels.SocketChannel[connected local=/192.168.1.113:50010 remote=/192.168.1.113:47061]. 60000 millis timeout left. at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:342) at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157) at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161) at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at java.io.DataInputStream.read(DataInputStream.java:149) at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:199) at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213) at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134) at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109) at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:501) at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:897) at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:802) at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137) at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74) at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:253) at java.lang.Thread.run(Thread.java:748) 字面理解为文件操作超租期,实际上就是data stream操作过程中文件被删掉了。之前也遇到过,通常是因为Mapred多个task操作同一个文件,一个task完成后删掉文件导致。 解决方案: 继续改大 xceiverCount 至8192并重启集群生效。 修改hdfs-site.xml (针对2.x版本,1.x版本属性名应该是:dfs.datanode.max.xcievers): <property> <name>dfs.datanode.max.transfer.threads</name> <value>8192</value> </property> 拷贝到各datanode节点并重启datanode即可 6. java.io.IOException: Incompatible clusterIDs java.io.IOException: Incompatible clusterIDs in /usr/hadoop/dfs/d ata: namenode clusterID = CID-86e16085-c061-4806-aac1-6f125689d567; datanode clusterID = CID-888eeac4-405f-4e3e-a5c3-c5195da71455 at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:775) at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:300) at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:416) at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:395) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:573) at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1362) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1327) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:317) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:223) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:802) at java.lang.Thread.run(Thread.java:748) 解决方案: 将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID - ###flume相关 #####1.ChannelFullException: Space for commit to queue couldn't be acquired. Sinks are likely not keeping up with sources, or the buffer size is too tight 答: 1)修改配置参数: agent.channels.memoryChanne3.keep-alive = 60 agent.channels.memoryChanne3.capacity = 1000000(给一个合适的值) 2)修改java最大内存大小 vim bin/flume-ng

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

搭建智慧城市的神经中枢—综合布线

近两年,我们对于智慧城市的讨论从未停歇,然而,智慧城市是一项巨大的系统工程,每一个细节都很重要。作为信息传输的高速通道,综合布线的建设更是具有战略意义。 在未来,智慧城市将遍布各种芯片和传感器,而连接这些传感器,使它们有机结合的数据中心,则是城市的“大脑”。布线系统则可理解为智慧城市和神经系统。布线系统的可靠性、安全性、高速性将影响到城市的各个细胞。 综合布线系统是建设智慧城市的血脉 从综合布线的应用范围来说:综合布线从家庭和住宅建筑综合布线系统的管理,到建筑与建筑群综合布线系统的管理,再到社区和园区综合布线系统的管理,都可以把没有生命的东西变成了有生命的物体,进行相互传递信号。此外,一个城市布线水平越高,它能给用户提供的传输的带宽越高,那么这个城市整个管理水平也就会越高。因此,综合布线不仅是衡量国家经济实力的一个核心指标,也是在信息时代国家提高自身竞争力的一个根本所在和保障。” 综合布线是一种模块化的、灵活性极高的建筑物内或建筑群之间的信息传输通道,它可以使话音设备、数据设备、交换设备及各种控制设备与信息管理系统连接起来,并且也使这些设备与外部通信网络相连的综合布线。所以综合布线不仅仅是一根根线的连接问题,也涉及到了其他区域或者城市的建设。 以综合布线为基础,提高智慧城市的管理水平 综合布线以其兼容性、开放性、灵活性、可靠性、先进性和经济性的特点,在智能建筑、智慧城市建设中成为数据传输的基础,使城市中各领域、各子系统之间的关系更加清晰和紧密,如同为城市装上了网络“神经”。 综合布线在于其应用的核心技术——物联网技术。我们可以考虑利用各种传感技术,使物与物,人与物之间得到感知。另外可以随时的获取数据和信息,包含了各种量化的信息、坐标的信息、身份的信息、视频数据等。由于传感器技术正在朝着微型化、可移动方向发展,管理平台趋于网络化、智能化及多功能集成,因此对布线系统的管理主要是利用物联网的技术。 经过综合布线实现智能化以后,可以对智能建筑、智慧城市的整个建设期和运维期进行管理。通过这些方式人们还可以把布线管理和网络管理,与城市综合管线的管理进行集成,实现资源共享,远程监控。 发展智慧城市建设,数据中心布线有原则 我们要发展智慧城市,首先就应该加快推进网络基础建设,主要有三个方面,第一就是加快推进网络基础建设,加快推进光纤到户,下一代互联网,第四代移动网络通信,加快推进物联网的一个试点,以及提升网络业务支撑和承载能力,大力推进电信网、广电网和物联网的三网融合,积极探索三网与互联网和无线宽带网和多网融合。第二是加快整个数据中心的建设,加快引进移动通信数据中心,重点产品、资源数据中心、市民健康中心等一批面向重点数据中心项目。第三就是加快整个信息安全基础建设,完善网络应用的信息安全监督体系建设。当然好,构建数据中心,综合布线并没有那么简单,还需遵守一些原则。 智慧城市数据中心布线系统构建原则包括:开放式系统结构,满足先进的国际标准支持40G(万兆)或更高速率的信息传输需求;整个布线系统的绿色环保、安全可靠;智能化的布线管理模式,提高管理维护效率。 结构化布线系统给力智慧建设 为适应智慧城市数据中心布线绿色环保、高带宽、可靠性的要求,综合布线结构化建设可由以下及部分组成。 通信电缆及组件 综合布线用电缆应用于数据中心主干布线或水平布线系统中配线架到配线架、配线架到模块、配线架到传输设备的连接。综合布线用电缆组件采用模块-模块、模块-水晶头的预成端方式,预成端数量为6-12根/组,配置牵引护套,用于电缆安装时对连接器提供保护,长度可根据用户要求定制,最长可达到100m。防火等级通过成束火焰垂直蔓延试验要求,透光率≥50%、环保性能满足RoHS指令要求。 通信光缆及组件 综合布线用光缆适用于数据中心MPO预连接系统或光纤主干布线系统的连接,支持10GBASE-SX/LRM/LX4/LX/EX万兆光纤系统的应用,产品性能满足行业标准的要求;综合布线用光缆采用OM1、OM2、OM3多模光纤或全系列单模光纤,光纤芯数从单芯到48芯,采用进口芳纶加强原件,护套采用低烟无卤阻燃护套,防火等级通过成束火焰垂直蔓延试验要求,透光率≥50%。光缆具有光缆外径小、重量轻、弯曲性能好、施工方便的特点。 作者:何妍 来源:51CTO

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册