hadoop集群规划
目标:创建2个NameNode,做高可用,一个NameNode挂掉,另一个能够启动;一个运行Yarn,3台DataNode,3台Zookeeper集群,做高可用。
在hadoop2中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态
安装我都把hadoop和Zookeeper放到了/soft/下面;


0、系统环境安装

操作系统CentOS6.5,64位操作系统,采用最小化安装,为了能够实现目标,采用VMware 虚拟机来搭建6台服务器,所以建议服务器至少有8G内存;vmware使用的是VMware® Workstation 11.0.0 build-2305329;
网络配置如下:






虚拟机配置如下:



1、同步机器时间

  1. yum install -y ntp #安装时间服务
  2. ntpdate us.pool.ntp.org #同步时间
2、设置主机IP
  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  1. DEVICE=eth0
  2. IPADDR=192.168.8.101
  3. NETMASK=255.255.255.0
  4. GATEWAY=192.168.8.2
  5. HWADDR=00:0C:29:56:63:A1
  6. TYPE=Ethernet
  7. UUID=ecb7f947-8a93-488c-a118-ffb011421cac
  8. ONBOOT=yes
  9. NM_CONTROLLED=yes
  10. BOOTPROTO=none
然后重启网络服务
  1. service network restart
查看ip配置
  1. ifconfig eth0
  1. eth0 Link encap:Ethernet HWaddr 00:0C:29:6C:20:2B
  2. inet addr:192.168.8.101 Bcast:192.168.8.255 Mask:255.255.255.0
  3. inet6 addr: fe80::20c:29ff:fe6c:202b/64 Scope:Link
  4. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  5. RX packets:777 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:316 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:70611 (68.9 KiB) TX bytes:49955 (48.7 KiB)
这就说明我们配置的IP地址是成功的

注意:
使用vmware克隆了5台虚拟机,配置网卡的时候出现报错:”Bring up interface eth0:Device eth0 does not seem to be present,delaying initialization”
解决步骤:
第一步 删除文件70-persistent-net.rules
  1. rm -f /etc/udev/rules.d/70-persistent-net.rule
第二步 修改ifcfg-eth0
  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除或者注释MAC地址的配置

第三步:重启服务器

  1. reboot
这样就可以设置新的ip地址了

3、设置主机名

把一台主机的名称改为:hadoop01
  1. vi /etc/sysconfig/network
修改hostname就可以了:
  1. NETWORKING=yes
  2. HOSTNAME=hadoop01
  3. NETWORKING_IPV6=no
要修改hosts
  1. vi /etc/hosts
  1. 127.0.0.1 localhost
  2. 192.168.8.101 hadoop01
    192.168.8.102 hadoop02
    192.168.8.103 hadoop03
    192.168.8.104 hadoop04
    192.168.8.105 hadoop05
    192.168.8.106 hadoop06

关闭ipv6

1、查看系统是否开启ipv6

a)通过网卡属性查看

命令:ifconfig

注释:有 “inet6 addr:。。。。。。。“ 的表示开启了ipv6功能

b)通过内核模块加载信息查看

命令:lsmod | grep ipv6

2、ipv6关闭方法

在/etc/modprobe.d/dist.conf结尾添加

  1. alias net-pf-10 off
  2. alias ipv6 off

可用vi等编辑器,也可以通过命令:

cat <<EOF>>/etc/modprobe.d/dist.conf

alias net-pf-10 off

alias ipv6 off

EOF

关闭防火墙

  1. chkconfig iptables stop
  2. chkconfig iptables off

改好后重启服务器:

  1. reboot
hadoop02-hadoop06都需要设置

4、安装JDK

将压缩包解压到指定目录,然后编辑环境变量
  1. vi /etc/proflie
在文件后面追加环境变量
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
  2. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
刷新
  1. source /etc/profile
可以用java -version测试安装是否正确

5、SSH免密码登录

对于需要远程管理其它机器,一般使用远程桌面或者telnet。linux一般只能是telnet。但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。为

解决这个问题,推出了通信加密通信协议,即SSH(Secure Shell)。使用非对称加密方式,传输内容使用rsa或者dsa加密,可以避免网络窃听。

hadoop的进程之间同信使用ssh方式,需要每次都要输入密码。为了实现自动化操作,需要配置ssh免密码登陆方式。

hadoop01\hadoop02做为NameNode,要访问到其他的节点,我们要在hadoop01可以访问到hadoop01-hadoop06(记住hadoop01也需要免登陆自己),hadoop02可以访问到hadoop01,hadoop03是yarn服务,要可以访问到datanode,所以hadoop03要免登陆到hadoop04-hadoop06;
首先要在hadoop01上生成ssh私钥和公钥
  1. cd /root/.ssh
  2. ssh-keygen -t rsa #4个回车
上面的命令会在.ssh目录生成一个私钥和一个公钥
  1. id_rsa id_rsa.pub

然后将hadoop01的公钥复制到hadoop02-hadoop06,用以下命令执行
  1. ssh-copy-id -i hadoop01
  2. ssh-copy-id -i hadoop02
  3. ssh-copy-id -i hadoop03
  4. ssh-copy-id -i hadoop04
  5. ssh-copy-id -i hadoop05
  6. ssh-copy-id -i hadoop06
上面的命令一行一行执行,先输入yes,再输入机器的密码就可以了;

现在我们来检验以一下hadoop01到hadoop05的免登陆
我们在hadoop01中无密码登录hadoop05输入:
  1. [root@hadoop01 .ssh]# ssh hadoop05
  2. Last login: Tue Nov 10 17:43:41 2015 from 192.168.8.1
  3. [root@hadoop05 ~]#
可以看到已经可以从hadoop01到hadoop05免登陆了;输入exit退出
接下来设置hadoop02到hadoop01的免登陆
在hadoop02的/root/.ssh中执行
  1. ssh-keygen -t rsa #4个回车
  1. ssh-copy-id -i hadoop01


如果出现以上信息就表示配置成功了。用exit退出;
那现在就很方便了,不用打开多个ssh,用一个就全搞定了;也可以配置一个hadoop用户,我现在都是使用root用户。
同里也要配置hadoop03到hadoop04-hadoop06的免登陆,这里就不列出了。

6、安装zookeeper

要将zookeeper集群部署到hadoop04、hadoop05、hadoop06上,先来设置hadoop04,操作如下
解压zookeeper到指定目录
  1. tar -zxvf zookeeper-3.4.6.tar.gz -C /root/soft
切换到zookeeper目录的conf目录,修改zoo.sample.cfg为zoo.cfg
  1. mv zoo.sample.cfg zoo.cfg
配置zoo.cfg
  1. vi zoo.cfg
  1. [root@hadoop04 conf]# vi zoo.cfg
  2. # The number of milliseconds of each tick
  3. tickTime=2000
  4. # The number of ticks that the initial
  5. # synchronization phase can take
  6. initLimit=10
  7. # The number of ticks that can pass between
  8. # sending a request and getting an acknowledgement
  9. syncLimit=5
  10. # the directory where the snapshot is stored.
  11. # do not use /tmp for storage, /tmp here is just
  12. # example sakes.
  13. dataDir=/soft/zookeeper-3.4.6/data
  14. # the port at which the clients will connect
  15. clientPort=2181
  16. # the maximum number of client connections.
  17. # increase this if you need to handle more clients
  18. #maxClientCnxns=60
  19. #
  20. # Be sure to read the maintenance section of the
  21. # administrator guide before turning on autopurge.
  22. #
  23. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  24. #
  25. # The number of snapshots to retain in dataDir
  26. #autopurge.snapRetainCount=3
  27. # Purge task interval in hours
  28. # Set to "0" to disable auto purge feature
  29. #autopurge.purgeInterval=1
  30. server.1=192.168.8.104:2888:3888
  31. server.2=192.168.8.105:2888:3888
  32. server.3=192.168.8.106:2888:3888

保存zoo.cfg

server.1=192.168.8.104:2888:3888
2888是通信端口,3888是zookeeper选举端口,这里用ip也可以,用主机名也可以。
注意配置文件中的datadir
dataDir=/soft/zookeeper-3.4.6/data
这个目录要真实存在才可以;
接下来要在/soft/zookeeper-3.4.6/data目录中增加一个文件"myid"
  1. vi myid
文件里面写入1,然后保存,这表示是server.1;

好了,这样就配置好了,将配置好的拷贝到hadoop05、hadoop06,注意要修改data目录中myid的内容为响应的2和3

启动hadoop04、hadoop05、hadoop06的zookeeper服务
zookeeper-3.4.6目录执行以下命令
  1. bin/zkServer.sh start #启动
  2. bin/zkServer.sh status #查看状态
hadoop04的结果:
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: leader
hadoop05的结果:
  1. [root@hadoop05 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
hadoop06的结果:
  1. [root@hadoop06 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
接下来测试以下zookeeper集群,在hadoop04上关闭zookeeper
  1. bin/zkServer.sh stop
hadoop04的结果:
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Error contacting service. It is probably not running.
  5. [root@hadoop04 zookeeper-3.4.6]#
hadoop05的结果:
  1. [root@hadoop05 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: follower
hadoop06的结果:
  1. [root@hadoop06 zookeeper-3.4.6]# bin/zkServer.sh status
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Mode: leader
从上面结果可以看出,zookeeper集群是没有问题的,hadoop04挂掉,hadoop06就变成了leader,这说明zookeeper集群已经部署好了。

7、hadoop安装

现在hadoop01上面配置好,然后再拷贝到其他机器上;
先解压hadoop-2.7.1.tar.gz到soft,查看hadoop目录文件如下:
  1. [root@hadoop01 hadoop-2.7.1]# ls
  2. bin etc include journal lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share
所有的配置文件都存放在etc/hadoop/文件夹里面

7.1、添加hadoop目录到环境变量

在/etc/profile文件中增加HADOOP_HOME,如下所示
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
  2. export HADOOP_HOME=/soft/hadoop-2.7.1
  3. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
应用环境变量
  1. source /etc/profile
可以用方法测试是否正确
  1. [root@hadoop01 hadoop-2.7.1]# which hadoop
  2. /soft/hadoop-2.7.1/bin/hadoop

7.2、配置hadoop-env.sh

  1. vim hadoop-env.sh
修改一个地方就可以,找到JAVA_HOME,改成第4章中jdk的路径就可以了
  1. export JAVA_HOME=/soft/jdk1.7.0_80/
保存即可。

7.3、配置core-site.xml

这一步是配置nameservice,hadoop 文件存储位置和Zookeeper集群来确保多个namenode之间的切换,修改后内容如下:
  1. <configuration>
  2. <!-- 指定hdfs的nameservice为ns1 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://ns1</value>
  6. </property>
  7. <!-- 指定hadoop临时目录 -->
  8. <property>
  9. <name>hadoop.tmp.dir</name>
  10. <value>/soft/hadoop-2.7.1/tmp</value>
  11. </property>
  12. <!-- 指定zookeeper地址 -->
  13. <property>
  14. <name>ha.zookeeper.quorum</name>
  15. <value>hadoop04:2181,hadoop05:2181,hadoop06:2181</value>
  16. </property>
  17. </configuration>

7.4、配置hdfs-site.xml

hdfs-site.xml主要配置namenode的高可用;
内容如下:
  1. <configuration>
  2. <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
  3. <property>
  4. <name>dfs.nameservices</name>
  5. <value>ns1</value>
  6. </property>
  7. <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
  8. <property>
  9. <name>dfs.ha.namenodes.ns1</name>
  10. <value>nn1,nn2</value>
  11. </property>
  12. <!-- nn1的RPC通信地址 -->
  13. <property>
  14. <name>dfs.namenode.rpc-address.ns1.nn1</name>
  15. <value>hadoop01:9000</value>
  16. </property>
  17. <!-- nn1的http通信地址 -->
  18. <property>
  19. <name>dfs.namenode.http-address.ns1.nn1</name>
  20. <value>hadoop01:50070</value>
  21. </property>
  22. <!-- nn2的RPC通信地址 -->
  23. <property>
  24. <name>dfs.namenode.rpc-address.ns1.nn2</name>
  25. <value>hadoop02:9000</value>
  26. </property>
  27. <!-- nn2的http通信地址 -->
  28. <property>
  29. <name>dfs.namenode.http-address.ns1.nn2</name>
  30. <value>hadoop02:50070</value>
  31. </property>
  32. <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
  33. <property>
  34. <name>dfs.namenode.shared.edits.dir</name>
  35. <value>qjournal://hadoop04:8485;hadoop05:8485;hadoop06:8485/ns1</value>
  36. </property>
  37. <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
  38. <property>
  39. <name>dfs.journalnode.edits.dir</name>
  40. <value>/soft/hadoop-2.7.1/journal</value>
  41. </property>
  42. <!-- 开启NameNode失败自动切换 -->
  43. <property>
  44. <name>dfs.ha.automatic-failover.enabled</name>
  45. <value>true</value>
  46. </property>
  47. <!-- 配置失败自动切换实现方式 -->
  48. <property>
  49. <name>dfs.client.failover.proxy.provider.ns1</name>
  50. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  51. </property>
  52. <!-- 配置隔离机制 -->
  53. <property>
  54. <name>dfs.ha.fencing.methods</name>
  55. <value>sshfence</value>
  56. </property>
  57. <!-- 使用隔离机制时需要ssh免登陆 -->
  58. <property>
  59. <name>dfs.ha.fencing.ssh.private-key-files</name>
  60. <value>/root/.ssh/id_rsa</value>
  61. </property>
  62. </configuration>
保存即可。

7.4、配置datanode的配置文件slaves

  1. vi slaves
修改datanode节点如下:
  1. hadoop04
  2. hadoop05
  3. hadoop06
保存即可。

7.5、配置mapreduce文件mapred-site.xml

默认是没有mapred-site.xml文件的,里面有一个mapred-site.xml.example,重命名为mapred-site.xml
  1. mv mapred-site.xml.example mapred-site.xml
配置内容如下,这里就是指明mapreduce是用在YARN之上来执行的。
  1. <configuration>
  2. <!-- 指定mr框架为yarn方式 -->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. </configuration>

7.6、配置yarn-site.xml

做规划的时候就是配置hadoop03来运行yarn,配置如下:
  1. <configuration>
  2.         <!-- 指定resourcemanager地址 -->
  3. <property>
  4. <name>yarn.resourcemanager.hostname</name>
  5. <value>hadoop03</value>
  6. </property>
  7. <!-- 指定nodemanager启动时加载server的方式为shuffle server -->
  8. <property>
  9. <name>yarn.nodemanager.aux-services</name>
  10. <value>mapreduce_shuffle</value>
  11. </property>
  12. </configuration>

到目前为止就已经配置好hadoop01了,要将配置好的hadoop文件拷贝到hadoop02-hadoop06上,cd到soft目录
  1. scp -r hadoop2.7.1 hadoop02:/soft/
  2. scp -r hadoop2.7.1 hadoop03:/soft/
  3. scp -r hadoop2.7.1 hadoop04:/soft/
  4. scp -r hadoop2.7.1 hadoop05:/soft/
  5. scp -r hadoop2.7.1 hadoop06:/soft/

7.7、启动Zookeeper服务

在hadoop04、hadoop05、hadoop06上启动Zookeeper,下面以hadoop04为例
  1. [root@hadoop04 zookeeper-3.4.6]# bin/zkServer.sh start
  2. JMX enabled by default
  3. Using config: /soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
确保这三台服务器上有一个leader,两个follower

7.8、在hadoop01上启动journalnode

  1. [root@hadoop01 hadoop-2.7.1]# sbin/hadoop-daemons.sh start journalnode
在7.4中配置了journalnode的节点是hadoop04、hadoop05、hadoop06,这三台机器上会出现JournalNode,以下是hadoop04上的进程
  1. [root@hadoop04 zookeeper-3.4.6]# jps
  2. 1532 JournalNode
  3. 1796 Jps
  4. 1470 QuorumPeerMain

7.9、在hadoop01上格式化hadoop

  1. hadoop namenode -format
格式化后会在根据7.3中core-site.xml中的hadoop.tmp.dir配置生成个文件,在hadoop01中会出现一个tmp文件夹,/soft/hadoop-2.7.1/tmp,现在规划的是hadoop01和hadoop02是NameNode,然后将/soft/hadoop-2.7.1/tmp拷贝到hadoop02:/soft/hadoop-2.7.1/下,这样hadoop02就不用格式化了。
  1. scp -r tmp/ hadoop02:/soft/hadoop-2.7.1/

7.10、在hadoop01上格式化ZK

  1. hdfs zkfc -formatZK

7.11、在hadoop01上 启动HDFS

  1. sbin/start-dfs.sh

7.12   在hadoop01上启动YARN

  1. sbin/start-yarn.sh
如果没有出错,hadoop的高可用就配置完成了;

8、使用hadoop集群测试

在本机中配置hosts文件(不是VMware虚拟机)
文件路径:C:\Windows\System32\drivers\etc\hosts
内容如下:
  1. 192.168.8.101 hadoop01
  2. 192.168.8.102 hadoop02
  3. 192.168.8.103 hadoop03
  4. 192.168.8.104 hadoop04
  5. 192.168.8.105 hadoop05
  6. 192.168.8.106 hadoop06
在浏览器中输入:http://hadoop01:50070/,就可以看到如下界面





查看hadoop02:http://hadoop02:50070/


上面可以看到hadoop01是处于active状态,hadoop02是初一standby,接下来测试以下namenode的高可用,当hadoop01挂掉时hadoop02是否能够自动切换;
在hadoop01中kill掉NameNode进程
  1. [root@hadoop01 hadoop-2.7.1]# jps
  2. 1614 NameNode
  3. 2500 Jps
  4. 1929 DFSZKFailoverController
  5. [root@hadoop01 hadoop-2.7.1]# kill -9 1614
刷新http://hadoop01:50070/,无法访问,


这是hadoop02已经处于active状态了,这说明我们的切换是没有问题的,现在已经完成了hadoop集群的高可用的搭建;







hadoop 2.7.1 高可用安装部署的更多相关文章

  1. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  2. Redis之Sentinel高可用安装部署

    背景: 之前通过Redis Sentinel 高可用实现说明和Redis 复制.Sentinel的搭建和原理说明大致已经介绍了sentinel的原理和实现,本文再次做个简单的回顾.具体的信息见前面的两 ...

  3. hadoop高可用安装和原理详解

    本篇主要从hdfs的namenode和resourcemanager的高可用进行安装和原理的阐述. 一.HA安装 1.基本环境准备 1.1.1.centos7虚拟机安装,详情见VMware安装Cent ...

  4. hadoop和hbase高可用模式部署

    记录apache版本的hadoop和hbase的安装,并启用高可用模式. 1. 主机环境 我这里使用的操作系统是centos 6.5,安装在vmware上,共三台. 主机名 IP 操作系统 用户名 安 ...

  5. hadoop HA+Federation(高可用联邦)搭建配置(一)

    hadoop HA+Federation(高可用联邦)搭建配置(一) 标签(空格分隔): 未分类 介绍 hadoop 集群一共有4种部署模式,详见<hadoop 生态圈介绍>. HA联邦模 ...

  6. Kubernetes实战(一):k8s v1.11.x v1.12.x 高可用安装

    说明:部署的过程中请保证每个命令都有在相应的节点执行,并且执行成功,此文档已经帮助几十人(仅包含和我取得联系的)快速部署k8s高可用集群,文档不足之处也已更改,在部署过程中遇到问题请先检查是否遗忘某个 ...

  7. Centos下SFTP双机高可用环境部署记录

    SFTP(SSH File Transfer Protocol),安全文件传送协议.有时也被称作 Secure File Transfer Protocol 或 SFTP.它和SCP的区别是它允许用户 ...

  8. Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

    Nginx.LVS.HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能. 1)在四层(tcp)实现负载均衡的 ...

  9. LVS+Keepalived 高可用环境部署记录(主主和主从模式)

    之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...

随机推荐

  1. /touch滑屏事件

    //touch滑屏事件     var windowHeight = $(window).height(),     $body = $("body");     $body.cs ...

  2. java基础77 Http协议及Servlet中的GET、POST提交方式

    本文知识点(目录): 1.什么是http协议    2.查看http协议的工具    3.http协议的内容    4.请求方式    5.请求头和响应头(以及获取请求头信息的方法)    6.实体内 ...

  3. java基础58 JavaScript的几种格式和变量的声明方式(网页知识)

    1.JavaScript的几种格式 1.1.JavaScript的特点 1.跨平台性    2.安全性.(javaScript代码不能直接访问电脑硬盘上的信息) 1.2.Java与javaScript ...

  4. 洛谷P1725 琪露诺

    传送门啦 本人第一个单调队列优化 $ dp $,不鼓励鼓励? 琪露诺这个题,$ dp $ 还是挺好想的对不,但是暴力 $ dp $ 的话会 $ TLE $ ,所以我们考虑用单调队列优化. 原题中说她只 ...

  5. 压力测试随笔之:JMeter,LoadRunner 相得益彰

    做压力测试,我喜欢先写 JMeter 脚本,功能测通以后再翻译成 LoadRunner 脚本,最后用 LoadRunner 完成压测.也许我是 Java 出身吧,对 JMeter 总是有一种亲切感用着 ...

  6. Effective STL 学习笔记14: Use reserve to avoid unnecessary reallocations.

    vector 和 string 容器在动态插入一个新的对象时,如果容器内空间不够,该容器会: 重新分配空间 通常的做法是分配当前 Capacity 大小两倍的空间. 将旧空间中的所有元素拷贝进新的空间 ...

  7. 20165333 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux系统安装 在老师的教程帮助下成功的完成了虚拟机的安装,但安装过程中也遇到了一些问题.在下载ubuntu时,总是下载失败,在求助同学后,在中文版官网的网址,才 ...

  8. BFS && DFS

    HDOJ 1312 Red and Black http://acm.hdu.edu.cn/showproblem.php?pid=1312 很裸的dfs,在dfs里面写上ans++,能到几个点就调了 ...

  9. NopCommerce Plugins 不能智能提示的解决方法(MVC 5 & RAZOR 3.0)

    分享给需要的朋友: http://mhammadchehab.com/wordpress/2013/12/enabling-intellisense-for-razor-in-class-librar ...

  10. C/C++经典面试题

    1.指向数组的指针 和 指向数组首元素的指针 2018-03-07 昨天在牛客上看到这么一道C语言面试题,挺经典的,特来分享给大家. 程序如下,问输出结果 #include <stdio.h&g ...