- 浏览: 18338 次
最新评论
文章列表
先说大方向的把握吧:
1.先在一台机器上把所有的配置文件都改好,然后再用scp命令,传到其他机器上,以此构成集群。不要每个机器上面改,麻烦不说,还很容易漏改或者错改。
2.必须确保namenode可以无密码ssh到datanode,datanode也可以无密码ssh到namenode。这是集群间通信和hadoop集群正常运行的基础。
3.不要小瞧了/etc/hosts配置文件中的内容,安装不成功,毛病大多出在机器的hostname和/etc/hosts中的内容不一致,或者slaves,master配置文件中的对应主机名与前面二者不一致。slaves的ip要出现在master的/etc/h ...
在写程序的时候遇到了如何求字符串占多少长度的内存空间问题。先看一行代码:
std::string s("hello");
sizeof(s)
结果有点出人意料,竟然是4。
百思不得其解,于是google求助,找到一个博客讲解的比较清楚:http://www.cnblogs.com/wanghetao/archive/2012/04/04/2431760.html
既然决定以后写博客的时候,不在ctrl+c、ctrl+v了,所以写写个人的理解与总结。
1.定义:
首先来看primer给出的定义:sizeof操作符的作用是返回一个对象或者类型名的长度,长 ...
陆陆续续总结几个常用函数的原型出来,为以后再看到时查阅的方便。
1.strcpy()
原型声明:extern char *strcpy(char *dest,const char *src);头文件:#include <string.h>功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
典型实现
/********************** * C语言标准库函数strcpy的一 ...
1.汉诺塔问题:
void hannoi (int n, char A, char B, char C)
{
if (n == 1)
{
cout << "Move disk " << n << " from " << A << " to " << C << endl;
}
else
{
hann ...
在这里总结几个常用的hash函数出来,留备后续用到时候方便查阅。原文出自:http://blog.csdn.net/eaglex/article/details/6310727。
MD5算法的wiki条目:http://zh.wikipedia.org/wiki/MD5
原文出处:http://blog.csdn.net/shifters/article/details/7558046
在用sizeof求解结构体大小的时候,结果往往会出乎自己的意料,搜了一下相关的知识,原来这里面有好多东西需要挖掘。
1. 整个结构体的总大小为最宽基本类型成员大小的整数倍。如:
typedef struct BiTNode{
TElemType data;
BiTNode *lchild;
BiTNode *rchild;
}BiTNode, *BiTree;
sizeof (BiTNode) = 12;
sizeof (BiTre ...
#include <cstdlib>
#include <iostream>
#define OVERFLOW 1
#define OK 1
#define ERROR -1
typedef int Status;
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
BiTNode *lchild;
BiTNode *rchild;
}BiTNode, *BiTree;
Status CreateBiTreeByPr ...
原文出处:http://zh.wikipedia.org/wiki/%E6%B1%89%E8%AF%BA%E5%A1%94
代码:
#include <iostream>
#include <cstdio>
using namespace std;
void hannoi (int n, char A, char B, char C)
{
if (n == 1)
{
cout << "Move disk " << n << " from ...
原文出处:
http://blog.csdn.net/gzzheyi/article/details/6686351
Status MazePath(MazeType (*Maze)[MAX],PosType start,PosType end)
{
http://blog.csdn.net/ianleelj/article/details/3939354 原文出处。
1 vector
向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预 ...
http://hi.baidu.com/xuehuo_0411/item/f72d5120d5006ad0a517b6b8 原文出处。
C++ STL 容器技术 之 deque双端队列容器
简介:
deque双端队列容器(double-ended queue)与vector非常相似,算法的时间复杂度也是常数阶O(1),deque内部的数据机制和执行性能与vector不同,一般说来,当考虑到容器元素的内存分配策略和操作的性能时,deque相对vector较为有优势。deque双端队列采用分块的线性结构来存储数据,具有高效的删除首尾元素的函数,由于deque容器是以d ...
#ifndef XXXX_H
#define XXXX_H
......
#endif
以上代码是一个宏,俗称保护头,作用:防止头文件的重复包含。
每一个.h头文件定义时,都应该加上这么一个宏,来防止文件的重复包含。
举例:
写application.h头文件的时候,加上#ifndef ......:
#ifndef APPLICATION_H
#define APPLICATION_H
#include "ns3/ptr.h"
#include "ns3/node.h"
#... ...
1.malloc()函数的函数原型如下:
void *malloc(int size);
malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
2.于new的不同:
1> new 返回指定类型的指针,并且可以自动计算所需要大小。比如:
int *p;
p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);
2> 而 malloc 则必须由我们计算要字节数,并且在返 ...
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
#include <assert.h>
void assert( int expression );
assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
大家要注意是,其中的表达式为假时,会终止程序运行,有时经常会写错代码,断言一个指针是否为空,往往写成了
assert(!p);其实应该写成assert(p);
assert是运行期的判断,并 ...
版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。
什么是 Subversion?
Subversion 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想 ...