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。