这篇文章主要是针对大数据平台的搭建,主要包括的内容有
- vagrant虚拟机环境搭建
- Hadoop集群搭建
- memcached集群搭建
- storm集群搭建
一些架构可行的架构:Flume + Kafka + Strom + Hbase使用vagrant搭建系统
安装
上 http://www.vagrantbox.es/ 找下载需要的 box , 譬如 Ubuntu 14.10(based on amd64 server iso file)初始化&配置
add 镜像并初始化 box12vagrant box add ubuntu-14.04 xxxxx(box path)vagrant init
配置Vagrantfile
出错
出现vboxsf错误使用
没下载成功
或者参考segmentfault的文章手工为Vagrant安装VBoxGuestAdditions
搭建Hadoop集群
1)安装SSH
sudo apt-get install ssh
2)安装java
sudo apt-get install jdk
或者直接下载sun公司的jdk文件进行安装
3)安装Hadoop
hadoop包,北京交通大学镜像http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-2.6.0/
墙裂推荐,下面的安装教程,按照下面的来完全没问题,如果出现问题,应该重装下系统再装Hadoop!
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
- 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
- Hadoop集群安装配置教程_Hadoop2.6.0/Ubuntu 14.04
- 零基础学习hadoop到上手工作线路指导(初级篇)
- 零基础学习hadoop到上手工作线路指导(中级篇)
- 零基础学习hadoop到上手工作线路指导(编程篇)
搭建memcached集群
安装Memcached
A、通过源码编译安装
编译前,请先确认gcc、make、patch等编译工具是否已安装,并可正常使用。1234567891011121314151617181920212223242526272829303132333435#1.分别把memcached和libevent下载回来,放到 /tmp 目录下:# cd /tmp# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz#2.先安装libevent:# tar zxvf libevent-1.2.tar.gz# cd libevent-1.2# ./configure --prefix=/usr# make# make install#3.测试libevent是否安装成功:# ls -al /usr/lib | grep libeventlrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.lalrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3#还不错,都安装上了。#4.安装memcached,同时需要安装中指定libevent的安装位置:# cd /tmp# tar zxvf memcached-1.2.0.tar.gz# cd memcached-1.2.0# ./configure --with-libevent=/usr# make# make install#如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。#安装完成后会把memcached放到 /usr/local/bin/memcached ,#5.测试是否成功安装memcached:# ls -al /usr/local/bin/mem*-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
B、通过APT包安装
测试是否安装成功
见到以上显示即连接成功。
memcached的基本设置:
1.启动Memcache的服务器端:
- -d选项是启动一个守护进程,
- -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
- -u是运行Memcache的用户,我这里是root,
- -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
- -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
- -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
- -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
2.如果要结束Memcache进程,执行:1# kill `cat /tmp/memcached.pid`
Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
实现menmcached分布式存储
memcached本身不提供分布式的解决方案,因此memcached集群环境是一个个memcached服务器的堆积,主要有两种方式实现分布式,客户端做路由和服务器端集群。
客户端做路由
可以使用一致性hash算法做路由,这里有一致性hash算法的介绍一致性 hash 算法( consistent hashing )
这段代码非常清晰,就是通过ketamaNodes这个数据结构按照一致性hash算法把node分区,每次都把映射到一个分区的key对于到负责这个分区的node上。
在Memcache的实际使用中,遇到的最严重的问题,就是在增减服务器的时候,会导致大范围的缓存丢失,从而可能会引导数据库的性能瓶颈,这就需要一致性hash算法,通过存取时选定服务器算法的改变来实现。
我们大致能弄明白在客户端如何做路由来让memcached分布式,其实在大多数的项目中,以上这些简单的处理办法就足够了
memcached服务端做集群
Facebook数据的存储都基本在memcached上完成,后端的mysql仅仅只是做持久化的作用,由于数据量巨大,实现了类似于mysql读写分离的策略,这方面资料较少,未完待续
安装storm集群
- 搭建Zookeeper集群;
- 安装Storm依赖库;
- 下载并解压Storm发布版本;
- 修改storm.yaml配置文件;
- 启动Storm各个后台进程
netstat -apn|grep <端口号>
netstat -apn|grep 80
ps -aux|grep <进程号>
lsof -i:21
参考资料
1.vagrant安装指南作者:segmentfault的ytwman
2.Vagrant常见问题汇总Vagrant启动会时无响应,Timeout,不能挂载共享文件夹
3.vagrant使用入门
4.vagrant的基本配置
5.Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
6.ubuntu memcached安装和java中memcached使用demo
7.零基础学习hadoop到上手工作线路指导(编程篇)