您的位置:首页 > 其它

samza系统的分布式部署

2017-05-24 15:40 197 查看

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。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  samza