打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
安装ZooKeeper&hadoop的配置、启动、验证
单机安装:
解压:~]# tar -zxf /opt/soft/zookeeper-3.4.6.tar.gz -C /opt/
重命名:opt] # mv zookeeper-3.4.6 zookeeper
添加到环境变量里面:
opt]# vim /etc/profile.d/hadoop-eco.sh
添加一下内容:
ZOOKEEPER_HOME=/opt/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
让配置生效:opt]# source /etc/profile.d/hadoop-eco.sh
对zk进行配置:
cp $ZOOKEPPER_HOME/conf/zoo_sample.cfg  $ZOOKEPPER_HOME/conf/zoo.cfg
对$ZOOKEPPER_HOME/conf/zoo.cfg配置文件进行修改
dataDir=/opt/zookeeper/tmp
启动zk:
$ZOOKEEPER_HOME/bin/zkServer.sh start|status|stop
客户端连接服务器:
$ZOOKEEPER_HOME/bin/zkCli.sh
基本操作:
启动客户端连接服务器:
$ZOOKEEPER_HOME/bin/zkCli.sh
基本命令:
ls
create
get
set
delete -->删除一个empty的节点,不能删除非空节点
rmr ---->递归删除
====================================================================
ZooKeeper的Java API操作
导入maven以来:
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>

====================================================================
集群安装:
我们这里采用3台机器的一个配置方式,具体在每一台机器上安装的内容参考ppt第11页
uplooking01 192.168.43.101 jdk hadoop zk /ssh nn zkfc journale qoure
uplooking02 192.168.43.102  jdk hadoop zk /ssh  nn zkfc jn qoure dn rm nm 
uplooking03 192.168.43.103  jdk hadoop zk /ssh  rm nm jn dn qoure
在只有一台uplooking01的情况下,只需要克隆两次uplooking01即可得到另外两台机器
等到到系统之后,需要修改网络,主机名,主机名映射
以uplooking02为例
需要将网卡System eth0的mac地址和机器的mac地址保持一致
然后修改ip
ip:
192.168.43.102
netmask:
255.255.255.0
gateway:
192.168.43.1
DNS:124.207.160.106,219.239.26.42
修改主机名:
vim /etc/sysconfig/network
HOSTNAME=uplooking02
修改主机映射
vim /etc/hosts
192.168.43.100  uplooking01
192.168.43.101  uplooking02
192.168.43.102  uplooking03
关闭防火墙:
service iptables stop
从开机启动项中去掉防火漆:chkconfig iptables off
关闭selinux:
vim /etc/selinux/config
SELINUX=enforcing==>SELINUX=disabled
重启linux系统
再做一遍uplooking03的安装
在uplooking01上面把/etc/hosts也补充完整
-------------------------------------------------------------------------------------
安装
第一步:配置ssh免密码登录
uplooking02和uplooking03上只需要配置即可
以uplooking02为例:
ssh-keygen -t rsa
ssh-copy-id -i root@uplooking01
ssh-copy-id -i root@uplooking02
ssh-copy-id -i root@uplooking03
在uplooking03上也做同样的是
第二步:同步jdk
这里使用scp远程复制的命令,如果复制的是文件夹需要添加-r选项
在uplooking01执行如下命令,将jdk拷贝到uplooking02和uplooking03上面
scp -r /opt/jdk root@uplooking02:/opt/
scp -r /opt/jdk root@uplooking03:/opt/
拷贝环境变量到uplooking02和uplooking03上面
scp /etc/profile.d/hadoop-eco.sh root@uplooking02:/etc/profile.d/
scp /etc/profile.d/hadoop-eco.sh root@uplooking03:/etc/profile.d/
让两台机器上面的环境变量生效
source /etc/profile.d/hadoop-etc.sh
验证:
java -version
第三步:安装zk集群
*****如果是在上午单机的基础之上进行的配置,需要将tmp目录下面的数据删除
集群必须是奇数(2N+1)
解压:~]# tar -zxf /opt/soft/zookeeper-3.4.6.tar.gz -C /opt/
重命名:opt] # mv zookeeper-3.4.6 zookeeper
添加到环境变量里面:
opt]# vim /etc/profile.d/hadoop-eco.sh
添加一下内容:
ZOOKEEPER_HOME=/opt/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
让配置生效:opt]# source /etc/profile.d/hadoop-eco.sh
对zk进行配置:
cp $ZOOKEPPER_HOME/conf/zoo_sample.cfg  $ZOOKEPPER_HOME/conf/zoo.cfg
对$ZOOKEPPER_HOME/conf/zoo.cfg配置文件进行修改
dataDir=/opt/zookeeper/tmp
在文件的末尾添加一下内容:
server.101=uplooking01:2888:3888
server.102=uplooking02:2888:3888
server.103=uplooking03:2888:3888
server固定格式:标识是zk集群中的一台机器
100/101/102...标识zk集群中对应机器的编号,这个数字可以随意
uplooking01/uplooking02/uplooking03...标识zk集群中对应机器的主机名或者ip
2888和3888分别标识zk集群中进行选举和同步数据的端口
以上格式固定
在$ZOOKEPPER_HOME/tmp目录下面,创建一个空文件myid
然后在myid中写入上面配置的对应机器的id
一台zk配置成功:
将其拷贝到其他机器上:
scp -r zookeeper/ root@uplooking02:/opt/
scp -r zookeeper/ root@uplooking03:/opt/
非常重要:在其基础之上进行修改---------------->
保持myid文件中的内容和zoo.cfg中的配置一致
uplooking02---->102
uplooking03---->103
启动:
在每一台机器上面,启动zk服务:
zkServer.sh start
通过zkServer.sh status可以观察到每一台zk的角色,其中两台follower,一台leader
第四步:配置hadoop的一个集群
hadoop的版本:hadoop-2.6.4.tar.gz
1°、解压:
]# tar -zxvf /opt/soft/hadoop-2.6.4.tar.gz -C /opt/
2°、重命名:
opt]# mv hadoop-2.6.4/ hadoop
3°、添加hadoop相关命令到环境变量中
vim /etc/profile.d/hadoop-eco.sh
加入以下内容:
HADOOP_HOME=/opt/hadoop
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4°、创建数据存储目录:
1) NameNode 数据存放目录: /opt/hadoop-repo/name
3) DataNode 数据存放目录: /opt/hadoop-repo/data
4) 临时数据存放目录: /opt/hadoop-repo/tmp
5°、配置
1)、配置hadoop-env.sh
export JAVA_HOME=/opt/jdk
2)、配置yarn-env.sh
export JAVA_HOME=/opt/jdk
3)修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>uplooking01:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>uplooking01:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>uplooking02:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>uplooking02:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://uplooking01:8485;uplooking02:8485;uplooking03:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop-repo/journal</value>
</property>
<property>  
<name>dfs.namenode.name.dir</name>  
<value>/opt/hadoop-repo/name</value>  
</property>  
<property>  
<name>dfs.datanode.data.dir</name>  
<value>/opt/hadoop-repo/data</value>  
</property> 
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
  sshfence
  shell(/bin/true)
</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
4)修改$HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-repo/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>uplooking01:2181,uplooking02:2181,uplooking03:2181</value>
</property>
</configuration>
5)、修改$HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<!-- mr依赖的框架名称 yarn-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- mr转化历史任务的rpc通信地址-->
<property>  
<name>mapreduce.jobhistory.address</name>  
<value>uplooking02:10020</value>  
</property>
<!-- mr转化历史任务的http通信地址-->
<property>  
<name>mapreduce.jobhistory.webapp.address</name>  
<value>uplooking02:19888</value>  
</property>
<!-- 会在hdfs的根目录下面创建一个history的文件夹,存放历史任务的相关运行情况-->
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/history</value>
</property>
<!-- map和reduce的日志级别-->
<property>
<name>mapreduce.map.log.level</name>
<value>INFO</value>
</property>
<property>
<name>mapreduce.reduce.log.level</name>
<value>INFO</value>
</property>
</configuration>
6)、修改$HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<!-- 开启RM高可靠 -->
<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>yrc</value>
</property>
<!-- 指定RM的名字 -->
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>uplooking02</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>uplooking03</value>
</property>
<!-- 指定zk集群地址 -->
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>uplooking01:2181,uplooking02:2181,uplooking03:2181</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
</configuration>
7)、配置hdfs中的从节点
修改$HADOOP_HOME/etc/hadoop/slaves文件
添加以下内容:
uplooking02
uplooking03
指定的是datanode的节点位置
第五步:启动Hadoop集群
1°、启动zk集群(已经启动,则不需要再启动)
2°、启动journalnode
根据hdfs-site.xml中的配置在对应的机器上面启动journalnode,启动命令
hadoop-daemon.sh start journalnode
3°、进行格式化
在uplooking01上面执行hdfs namenode -format
4°、将/opt/目录下面的hadoop-repo/name目录拷贝到uplooking02上的对应的目录中
scp -r /opt/hadoop-repo/name root@uplooking02:/opt/hadoop-repo/
为的是同步namenode元数据信息
5°、格式化ZKFC
hdfs zkfc -formatZK
6°、启动
在uplooking01上面执行start-dfs.sh
在uplooking02上面执行start-yarn.sh
在uplooking03上面执行yarn-daemon.sh start resourcemanager
第六步:验证Hadooop集群
验证HDFS HA
  首先向hdfs上传一个文件
  hadoop fs -put /etc/profile /profile
  hadoop fs -ls /
  然后再kill掉active的NameNode
  kill -9 <pid of NN>
  通过浏览器访问:http://uplooking01:50070
检测Yarn
  yarn rmadmin -getServiceState rm1 来查看rm1的状态
  yarn rmadmin -getServiceState rm2 来查看rm2的状态
  yarn/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /hello /out/
  干掉uplooking02中的Resourcemanager和Nodemanager,重新检测:


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ZooKeeper学习第二期---ZooKeeper安装配置
Hadoop+HBase+ZooKeeper分布式集群环境搭建(转)
[Hadoop] Zookeeper伪分布式集群部署
Zookeeper学习之路 (二)集群搭建
ZooKeeper的部署以及简单使用
kafka的安装及使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服