storm部署详细步骤

1.修改主机名:

vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=MASTER

 

2.修改IP:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO="static"

HWADDR="00:0C:29:FC:62:B6"

IPV6INIT="yes"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

UUID="d0731a46-36df-4ab1-9bac-42bb151acc41"

IPADDR="192.168.1.250"

NETMASK="255.255.255.0"

GATEWAY="192.168.1.1"

DNS1="8.8.8.8"

DNS2="8.8.4.4"

 

3.修改主机和IP的映射关系

vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.250   MASTER

192.168.1.251   SLAVE-1

192.168.1.252   SLAVE-2

 

4.关闭防火墙

vim /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

继续执行命令:

service iptables stop

chkconfig iptables off

reboot

 

 

5.上传jdk安装包

 

6.解压安装

chmod +x jdk-6u45-linux-x64.bin

./jdk-6u45-linux-x64.bin

 

mkdir /usr/java

mv jdk1.6.0_45/ /usr/java/

 

7.配置环境变量

vim /etc/profile

在文件最后面添加:

export JAVA_HOME=/usr/java/jdk1.6.0_45

export CLASSPATH=$JAVA_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin

更新配置:

source /etc/profile

 

 

上传zeromq-2.1.7.tar.gz、jzmq-master.zip、storm-0.8.2.zip、zookeeper-3.4.5.tar.gz等文件

1.编译安装ZMQ:

tar -xzf zeromq-2.1.7.tar.gz

cd zeromq-2.1.7

./configure

#编译可能会出错:configure: error: Unable to find a working C++ compiler

#安装一下依赖的rpm包:libstdc++-devel gcc-c++ 

可以上网的情况下: 

yum install gcc-c++

虚拟机不能上网情况:首先到http://mirrors.163.com/centos/6.4/os/x86_64/Packages/ 下载rpm

rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm

rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm

rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm

 

./configure

make

make install

 

2.编译安装JZMQ:

cd jzmq

./autogen.sh

#报错:autogen.sh: error: could not find libtool. libtool is required to run autogen.sh. 缺少libtool

yum install libtool

或者手动安装

rpm -i autoconf-2.63-5.1.el6.noarch.rpm 

rpm -i automake-1.11.1-4.el6.noarch.rpm 

rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm

 

./configure

make

make install

 

 

storm启动

 

1、把storm的启动信息输出到指定文件

storm nimbus >/dev/null 2>&1 &

storm ui >/dev/null 2>&1 &

storm supervisor >/dev/null 2>&1 &

 

storm jar lify-cycle cn.*.TopoMain

 

storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.ExclamationTopology ExclamationTopology

storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology WordCountTopology

storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.ReachTopology ReachTopology

storm jar WordCount.jar cn.itcast.storm.topology.WordCountTopo  /home/mobileweb/hadoop/storm-starter-master/data 2

storm jar WordCount.jar cn.itcast.storm.topology.WordCountTopo  /home/mobileweb/hadoop/storm-starter-master/data 2

 

java -jar  WordCount.jar /home/mobileweb/hadoop/storm-starter-master/data 2

 

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
①前端接收enum时,将它放入一个容器script type="text/javascript"var App = {};App.module = 'merchantManage';App.mydata = {"data":[#{list items:memberStatus, as:'status'}{'title':'${status?.title}','name':'${status}'},#{/list}#{list items:memberOperationTypes, as:'target'}
多线程使用的主要目的在于: 1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。 2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。 鉴于你是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。 --举个简单的例子: 假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据库

博客搬家咯 - 2016-09-24 14:09:07

博客搬家了,最新地址: http://blog.uyiplus.com

关于java的10个谎言 - 2016-09-24 14:09:07

关于java的10个谎言 面试中总遇到各种奇葩的问题,小编在兄弟连网站上找到了下面的这些都算是比较高级的问题了,面试中一般也很少问到,因为它们可能会把面试者拒之门外。不过你可以自己找个时间来实践一下。 1. System.exit(0)会跳过finally块的执行 System.setSecurityManager(new SecurityManager() {         @Override         public void checkExit(int status) {            

Java 之浅复制和深复制 - 2016-09-24 14:09:07

1 浅复制和深复制区别 浅复制:浅复制只是复制本对象的原始数据类型,如int、float、String,对于数组和对象引用等是不会复制的。因此浅复制是有风险的。 深复制:不但对原始数据类型进行复制,对于对象中的数组和对象引用也做复制的行为,从而达到对对象的完全复制。 2 代码示例 package com;import java.util.ArrayList;public class Test implements Cloneable {// 私有属性private ArrayListString name
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。 java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得
在eclipse的preferences里,Java-Code style-Code templates,Comments-Type编辑成如下     @author ${name:git_config(user.name)} (${mail:git_config(user.email)})
一 8种基本数据类型和8种包装类的对应关系 基本数据类型 包装类 byte Byte short Short int Interger long Long char Character float Float double Double boolean Boolean   二 自动装箱和自动拆箱 1 概念介绍  自动装箱:把一个基本数据变量直接赋给对应的包装类变量或者赋值给Object变量。  自动拆箱:允许直接把包装类对象直接赋给对应的基本类型变量。 2 代码示例 public class AutoBo

通用查询,保存方法 - 2016-09-24 14:09:04

基于jqgrid页面通用查询、保存方法

mysql的事务处理与锁表 - 2016-09-24 14:09:04

数据库的事务处理可以保证一组处理结果的正确性。mysql中只有INNODB和BDB引擎的数据表才支持事务处理,对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法来实现相同的功能。 mysql的事务处理主要有两种方法来实现。 1、用begin,rollback,commit来实现。 begin 开始一个事务 rollback 事务回滚 commit 事务确认 Php代码 $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!