Apache一流项目介绍3 – ZooKeeper澳门美高梅手机网站

Hadoop集群援助二种运行形式:单机格局、伪分布式格局,全分布式形式,下边介绍下在Ubuntu下的配置

再上一个watch的java用例,来自官网。

(1)单机格局

默认状况下,Hadoop被布置成一个以非分布式格局运作的独立JAVA进程,适合初始时的调剂工作。在eclipse中开发用的就是单机情势,这时不用HDFS。

好的只要没有设置JDK,那么安装步骤如下:

先到官网下载JDK的linux版本,下载后平昔加压到对应目录,这样JDk就安装好了。接下来配置环境变量

sudo gedit /etc/profile 

  参加下边代码

#set java environment

JAVA_HOME=/home/*******/jdk1.7.0_09     

export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH 

java_home的途径是自己本机上的途径。保存退出后需要注销当前用户,重新登录。

下一场打开控制台输入java -version显示java的本子等消息阐明配置成功。

将下载好的hadoop解压,重新命名为hadoop(这是为了方便未来到操作)。进入conf文件夹下,在hadoop-env.sh文件中做修改,在第九行左右到岗位中有#export
JAVA_HOME=*******如此那般到字样,首先将#(这里#为注释到效率)去掉,修改JAVA_HOME的值为你机器中jdk到文件路径即可,这里到值和/etc/profile是一样的。

当今得以单机情势运行一个Hadoop程序了,确定当前路线是Hadoop文件夹

bin/hadoop jar hadoop-ex*.jar wordcount conf output

conf是输入文件夹,output是出口文件夹,所以保证conf文件夹是存在的,并且有文件。

zk最近stable版本是3.4,系统数据模型如下:

(2)伪分布式形式

伪分布式情势是一种单点运行情势,所有进程(NameNode、Secondary
NameNode、JobTracker、DateNode、TaskTracker)都运作在仅局部一个节点上,需要运用HDFS。

先是配置六个XML文件,文件路径在hadoop目录下的conf文件夹。

core-site.xml

<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property> 
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/home/****/hadoop/logs</value>
     </property>
</configuration>

 hdfs-site.xml

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

mapred-site.xml

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

  接下去需要安装SSH
在ubnuntu下直接在控制马赛输入

sudo apt-get install openssh-server  

  假诺提醒找不到源,在软件基本输入

sudo apt-get update

  安装完SSH,需要安装签到的密钥,控制台输入

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  

ssh-keygen代表生成密钥;-t(注意区分轻重缓急写)表示指定生成的密钥类型,dsa是dsa密钥认证的趣味,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。cat
 把id_dsa.pub(公钥)追加到授权的authorized_key里。这样控制台输入ssh
localhost就不需要密码了。

下边是运作步骤(路径是hadoop路径):

(1)把NameNode格式化,并开启Hadoop进程

bin/hadoop namenode -format  

bin/start-all.sh

输入jps,查看相关5个过程是否打开。

(2)在HDFS上树立输入文件夹,并上传数据

bin/hadoop fs -mkdir input  
bin/hadoop fs -put data input 

input是白手起家的文书夹的名字,date是本土数据文件(默认路径在hadoop目录下),至于命令bin/hadoop
fs -help查看。

(3)运行Wordcount,查看结果

bin/hadoop jar hadoop-examples-*.jar wordcount input output  

bin/hadoop fs -cat output/* >> result.txt  

假定是协调导出的jar 包可以直接用bin/hadoop jar own.jar input
output。结果放在result.txt文件中(本地Hadoop目录),不加它,在控制台查看结果。

程序运行期间可以因此浏览器http://机器名:50030查看运行情况

(4)关闭hadoop进程

bin/stop-all.sh  

澳门美高梅手机网站 1

(3)全分布式模式

对此Hadoop,不同的系统有例外的节点划分模式。在HDFS看来。节点分为NameNode和DataNode,其中DataNode可以有两个;MapReduce看来,节点分JobTracker和TaskTracker,TaskTracker可以四个。

全分布式的布局和伪分布式部署的大都。

有超出两台的机械,有一致的用户名(必须),确定IP在同一个网段,并能相互ping通。

192.168.6.30 master  
192.168.6.31 node1  

(1)主机生成SSH,并散发密钥

ssh-keygen -t rsa  

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@192.168.6.31

 假如分发不成功可以拔取上边的命令

scp ~/.ssh/id_rsa.pub MachineName@202.194.124.49:~/mas_key 

 然后在长途机器上

mkdir ~/.ssh  
chmod 700 ~/.ssh  
mv ~/mas_key ~/.ssh/authorized_keys  
chmod 600 ~/.ssh/authorized_keys  

 使用ssh-copy-id不仅可以将公钥添加到authorized_keys中去,而且也安装了正确的权杖(文件夹.ssh为700,authorized_keys为600)
参考随笔:http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
ssh免密码登录原理可参照:http://www.ruanyifeng.com/blog/2011/12/ssh\_remote\_login.html
这般在master主机上ssh 192.168.6.31主机时应该就不要输入密码了
一经出现Agent admitted failure to sign using the key这些题目
解決模式 使用 ssh-add 指令将私钥 加进来 

ssh-add   ~/.ssh/id_rsa   

(2)配置hosts文件

 

sudo gedit /etc/hosts

127.0.0.1    localhost  
#127.0.0.1 机器名  
192.168.6.38 master  
192.168.6.31 node1  

*其次行的诠释一定要诠释掉。然后将hosts文件通过scp
分发到从机上,登录从机移动hosts文件。

scp /etc/hosts 目标机器名@目标机器IP:~/hosts  

sudo mv hosts /etc/  

(3)修改hadoop配置文件

共5个文件需要配备,其中三个和伪分布式的一致,其中五个公文的字段需要改成主机的机器名(这里为master,也得以是IP),另两个公文是masters和slaves

masters

master 

slaves

master  
node1 

以此Hadoop集群中有多少个数据节点,master兼当主从机。

*5个布局文件也亟需分发到从机上(即集群中着力机器的hadoop的配置相同)

这般Hadoop的安排就到位了,用ssh node1命令,就可以直接登录了。

接下去运行Wordcount的步调和伪分布式形式一样了。

小心:每一回运行前把集群机器中logs目录清空。

  

其它,其实zk是Google的门类Chubby的开源实现,这里抛多少个引子,google可谓是dt时代身后大师,很多知名的品种包括hadoop,hbase以及zk都是依照google的几篇随想而来,zk是根源“The
Chubby lock service for loosely-coupled distributed
system”。说的直白一点,google本身在巨型分布式领域经过了多年技术沉淀,早早领先于业界,首先用google本身都是行使闭源商业支出,所以只可以抛几篇paper出来,可是仅仅这2,3片paper就对全部世界都起了大变化,业界的活佛以及各it公司如获至宝,醍醐灌顶,包括facebook以及中国的阿里与腾讯,纷纷实现Google的开源软件,以至于后来的升华已经不止了google的预测,甚至倒逼Google后来的一部分开源,如Go,
Kubernetes等,也不知是google成就了dt仍旧互赢。向Google致敬,带着浓浓硅谷底蕴,算一家伟大的技术集团!国内的要员,近来还在肆无忌惮,土豪的成人中,带着浓浓的商业气息。

始建一个node吧,run一些发令。

澳门美高梅手机网站 2

小结一下,zk目前曾经俨然成为分布式集群管理的必不可少的一个模块,包括hadoop,hbase等用它来保管namenode,
hbase里的master election,server状态同步。

zk客户端通过tcp链接一个zk服务器,zk客户端通过不断发送request,得到response,监控events,以及发送heart
beats,即心跳脉冲,假如总是断掉,会另行活动连续新的server。不用担心,zk客户端平日会被封装在其余高端产品中。

澳门美高梅手机网站 3

zk的replication如下图所示:

可以故意删除一些server,如删减server2,然后继续连接,测试zk的分布式集群。不快乐弄了。我们能够协调玩。

澳门美高梅手机网站 4

连续回到下边的znodes,这多少个是其基本之一。zonde可以保留情况信息,配置音信,location信息等。所以每个znode大小很小,多少个字节-几k而已。znodes维护了structure的图景音信,版本,acl变化。每一次znode数据变化会自动加版本,zk客户端同样可以接收版本音信。znode有一个重要的定义ephemeral
nodes,中文意思是指部分短跑生命周期的节点。ephemeral
nodes非凡有用,它的生命周期是当session创立时激活,session截至了就删除。

可以看看分布式的计划性,其主旨数据模型理念类似文件目录结构(通过/分割),其中每一个节点zk中称之为znodes,每个节点都得以用根path来控制,总体提供一个分布式环境共享的hierarchal命名空间,那样分布式服务process就足以经过这多少个命名空间协调。另外,与文件目录的反差,这多少个数据模型是动态kept
in-memory,目标是提供高并发,低顺延。注意,近来的业界,流行提到孪生术语“高产出,低顺延”。zk自己的分布式体现在它的架构设计。

值得注意的是,zk的replicaitn数据库是in-memory包含全部data tree。
zk的读请求会从local replica服务数据库获取,zk的write请求会经过agreement
protocol:所有的write请求会转化到single server,zk术语叫leader,另外的zk
server术语叫followers,哪儿都有官员啊?哈哈。音讯层负责重新选举leader,以及同步leader到followers。

别忘了建一个data目录,创立一个myid文件,里面标示server数字如1.

zk性能总计:

好了,先抛转头到这里呢,有趣味的可以连续浓厚研究。如zk的分布式锁,以fast
paxos为根基的变种ZAB协议,以及leader选举算法。

澳门美高梅手机网站 5

澳门美高梅手机网站 6

澳门美高梅手机网站 7

zoo.cfg

澳门美高梅手机网站 8

好了,来点干货,run一下啊,当然要分布式run了,先来3个server吧。Running
Replicated ZooKeeper,
单机格局很粗略,replicated形式是生产条件必备情势。zk中一个replicated
group叫做quorum,replicated形式下,所有的quorum服务器都复制相同配置文件。

澳门美高梅手机网站 9

zk的API也清楚简单,create,delete,exists,get,sync等,与普通数据库活着文件系统类似。

zk的分布式结构,znodes之间通过in-memory,以及也支撑持久化transaction
logs,snapshots, 同时明确帮助replicated。

另一个zk的造诣是watches,zk客户可以监控znodes,一个watch
event将被激活当有其他的znode变化,进而zk客户端可以做更加处理,比如发现一些server不可用,zk客户端可以负载均衡等。

ZooKeeper

澳门美高梅手机网站 10

官网介绍,zk是一个分布式的,开源的分布式应用程序协调服务,为分布式应用提供了一致性服务,大旨效用包括:配置维护,命名服务,分布式同步,组服务等。前半句相比绕口,大意为,zk本身设计,架构也是分布式的,同时它的核心效用也是为分布式应用提供服务的。呵呵,这年代,技术标榜中不提及分布式都不敢出来混。

放心,性能不佳官网也不敢上图了。此统计图来自Yahoo!
注意,啰嗦一下,yahoo前边的!是yahoo的一部分哦。

多谢我们匡助,也请关注自我的技术公众号:技术极客TechBooster

run run run zk

明日牵线Apache著名一流项目ZooKeeper,简称zk。如封面所示,管理zoo的猛烈野兽可不是简单之事。之所以先介绍zk是因为其影响力之大,范围之广,在后续的甲级项目中但凡设计分布式几乎都与其关系,所以仍然尽早铺垫为妙。

澳门美高梅手机网站 11

澳门美高梅手机网站 12

技术极客TechBooster

发表评论

电子邮件地址不会被公开。 必填项已用*标注