samza系统的分布式部署

来源:互联网 发布:java求100到200的素数 编辑:程序博客网 时间:2024/05/17 22:50

1.安装环境

系统环境分为开发环境和生产环境,开发环境下的一些工具在生产环境下不必须安装,会以“(开发环境)”注明。

操作系统: Ubuntu 14.04 LTS – 64bit
Java版本: java-7-openjdk-amd64
Maven版本:Apache Maven 3.0.5 (开发环境)
Samza系统:samza-0.10

Samza系统集成于hello-samza,由公司内相关开发人员提供,通常由hello-samza-YYYYMMDD.tar.gz 和m2-YYMMDD.tar.gz两个tar包。其中包m2内的文件为Samza工程编译时依赖相关的jar包。

Java和Maven可以通过Ubuntu源中下载:
Java :

     $ sudo apt-get install openjdk-7-jdk

Maven:

     $ sudo apt-get install maven     

注意:maven版本3.0以下的用mvn编译工程时会出问题。


2.配置环境


配置主机别名文件/etc/hosts

配置主服务器和从服务器的Ip和主机名称,以便在samza各系统配置中全局使用该Ip配置。图例如下:

     $ sudo vim /etc/hosts     

127.0.1.1对应的名称为系统samza系统对应用户名,samza内部系统yarn的job运行时需要使用该配置,建议每台主机使用相同的用户名,如示例中的ubuntu。Master为samza系统配置的主机,Slave1为从机。


配置ssh秘钥登录(免密码登录)

于分布式的samza多台主机之间需要相互远程访问,需在各主机上开放ssh密钥登录权限。对于ssh目录所有者,开发环境大多为ubuntu用户, 生产环境大多为root用户组,两者配置实现有以下区别:
当ssh目录权限所有者为ubuntu用户时:

     $ ssh localhost     $ ssh-keygen -t rsa -P ""     $ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。
第二条命令将生成的密钥写入authorized_keys文件。
这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。

当ssh目录权限所有者为root用户时: 以sudo生成rsa秘钥,并指定在ubuntu的.ssh目录下

     $ sudo ssh-keygen –t rsa –P ""

Input: /home/ubuntu/.ssh/ id_rsa

     $cd /home/ubuntu/.ssh

创建.ssh/known_hosts, id_rsa和id_rsa.pub文件并将其所有者设置为ubuntu

     $ sudo vim known_hosts              $ sudo chown ubuntu:ubuntu known_hosts id_rsa id_rsa.pub

将id_rsa.pub的公钥内容,添加到authorized_keys的文件的末尾 示例如下:


配置JAVA_HOME

找到Jdk安装的目录,由ubuntu源安装的java目录为“/usr/lib/jvm/java-7-openjdk- amd64”。

在/etc/profile文件最后添加

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64    export CLASSPATH=.:$JAVA_HOME/lib

之后刷新环境变量

     $ . /etc/profile

在/etc/environment文件最后添加

     export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

之后刷新环境变量

     $ . /etc/environment

3.部署Samza


各主机解压项目包

将hello-samza-*.tar.gz和m2-*.tar.gz文件拷贝到各主机的samza系统用户的目录下,并分别执行

     $ tar –xzvf hello-samza-*.tar.gz      $ tar –xzvf m2-*.tar.gz (开发环境)

在各主机上创建/var/samza目录和并授权给samza的系统用户,例如:

     $ sudo mkdir /var/samza    /home/ubuntu/.samza     $ sudo chown –R ubuntu:ubuntu /var/samza .samza     $ sudo mkdir .samza/conf     $ cp /home/ubuntu/hello-samza/deploy/yarn/etc/hadoop/yarn-site.xml /home/ubuntu/.samza/conf

该目录为samza中zookeeper,yarn和kafka模块在配置的目录,因具体配置而异。


配置主服务器中的从服务器ID

进入yarn目录,修改其中的slaves,内容为/etc/hosts中对应的从服务器名称,例如

     $ cd hello-samza/deploy/yarn/etc/hadoop/slaves     $ vim slaves       


首次部署时,需要fomat hdfs

bin/hdfs namenode -format


一键启动与关闭

在主机执行下面命令:

     $ cd hello-samza     $ bin/grid start all

将依次启动zookeeper, yarn和kafka,其中yarn包括hdfs, resourcemanager和nodemanager并启动从机的yarn。

在主机执行下面命令:

     $ bin/grid stop all

将关闭启动的zookeeper, yarn和kafka,结束运行中的yarn Jobs。 

原创粉丝点击