工作中一般使用的都是zookeeper和Hbase的分布式集群.
more /etc/profile
cd /usr/local
zookeeper-3.4.5.tar.gz
zookeeper在安装部署的时候,节点数量必须是不少于三个的奇数个.
===================================
伪分布式搭建(3个节点):
伪分布式集群,就是在一台pc中,启动多个zookeeper的实例,完全分布式是指每台pc,启动一个zookeeper实例.
1.1 解压缩zookeeper-3.4.5.tar.gz
tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 zookeeper
cd zookeeper
rm -rf docs/
rm -rf src/
cd conf/
1.2 执行命令:
cp zoo_sample.cfg zoo1.cfg
more zoo1.cfg
tickTime=2000:集群中,各个节点通信的单位叫tick,通信时间是2000毫秒.
initLimit=10:10个tick,初始化同步时需要的时间.
syncLimit=5:同步使用的时间.
dataDir=/tmp/zookeeper:存储数据使用的一些目录.
clientPort=2181: 客户端与zookeeper通信所使用的端口.
1.3 修改文件conf/zoo1.cfg,修改内容如下:
vi zoo1.cfg
dataDir=/usr/local/zookeeper/zoo1/data/
clientPort=2181
#描述zookeeper三个节点之间的关系,
#4:每个节点的标示. hadoop4:标示zookeeper所在的机器.
server.1=hadoop4:2888:3888
server.2=hadoop4:2889:3889
server.3=hadoop4:2890:3890
1.4 执行命令:
cp zoo1.cfg zoo2.cfg
1.5 修改文件conf/zoo2.cfg,修改内容如下:
vi zoo2.cfg
dataDir=/usr/local/zookeeper/zoo2/data/
clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
server.1=hadoop4:2888:3888
server.2=hadoop4:2889:3889
server.3=hadoop4:2890:3890
1.6 修改文件conf/zoo2.cfg,修改内容如下:
vi zoo2.cfg
dataDir=/usr/local/zookeeper/zoo2/data/
clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
server.1=hadoop0:2888:3888
server.2=hadoop0:2889:3889
server.3=hadoop0:2890:3890 cp zoo1 .cfg zoo3.cfg
vi zoo3.cfg
dataDir=/usr/local/zookeeper/zoo3/data/
clientPort=2183//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
server.1=hadoop4:2888:3888
server.2=hadoop4:2889:3889
server.3=hadoop4:2890:3890
1.7 执行命令,产生存储数据的目录:
clear
mkdir -p /usr/local/zookeeper/zoo1/data/
mkdir -p /usr/local/zookeeper/zoo2/data/
mkdir -p /usr/local/zookeeper/zoo3/data/
1.8 产生标记文件:
//myid 标注在这个节点下的数据是输入哪一个节点的.
cd ..
echo '1' > zoo1/data/myid
echo '2' > zoo2/data/myid
echo '3' > zoo3/data/myid
1.9 分别启动节点:
cd zookeeper
bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg
jps 查看节点,多出一个zookeeper进程:QuorumPeerMain
在一个节点上启动三个zookeeper进程,组成的节点就是zookeeper的伪分布.
zookeeper的操作:
bin/zkCli.sh
//连接某一个节点
connect hadoop4:2182
//ls 显示zookeeper的目录结构
ls /
ls /zookeeper/quota
//create 创建节点
create /crxy hadoop
//get 读取节点的值
get /crxy
//set 修改节点的值
set /crxy 44444
zookeeper就是一个读写数据的,管理这些数据的时候,就是一个树状结构.
zookeeper最大的特点:保证数据的同步.
ip修改和主机名绑定:
修改主机名:
vi /etc/sysconfig/network
修改ip:
vi /etc/sysconfig/network-scripts/ifcfg-Auto-eth1
删除硬件地址:HWADDR,UUID
修改ip地址:IPADDR
重启网络:
service netwotk restart
查看ip地址:
ifconfig
添加ip地址和主机名绑定:
vi /etc/hosts
===================================
Hbase伪分布式搭建(只有一个节点,使用自己的zookeeper实例):
2.1 解压缩:
tar -zxvf hbase-0.94.13-security.tar.gz
mv hbase-0.94.13-security.tar.gz hbase
rm -rf *.gz
cd hbase
rm -rf docs/
rm -rf src/
2.2 编辑文件conf/hbase-env.sh,修改内容:
vi conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk
//告诉HBASE是否应该自己管理自己的zookeeper实例,true 表示zookeeper是hbase自己搭建的,与外部的没有关系.
export HBASE_MANAGES_ZK=true
2.3 编辑文件conf/hbase-site.xml 修改内容:
vi conf/hbase-site.xml
<configuration>
<!-- 存放数据的目录-->
<property>
<name>rootDir</name>
<value>hdfs://hadoop4:9000/hbase</value>
</property>
<!--是否是分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- zookeeper存放的机器-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop4</value>
</property>
</configuration>
2.4 启动hbase之前,需要检查hadoop的hdfs是否正常运行的.
启动hbase
cd hbase
bin/start-hbase.sh
2.5 检查,执行jps命令,看到三个新的java进程,分别是:
HQuorumPeer,HMaster,HRegionServer
查看hdfs://hadoop4:60010
===================================
zookeeper集群部署:
1.在hadoop4上解压缩zookeeper-3.4.5.tar.gz
2.执行命令cp conf/zoo_sample.cfg conf/zoo.cfg
3.修改文件conf/zoo.cfg
dataDir=/usr/local/zookeeper/data
clientPort=2181 server.1=hadoop4:2888:3888
server.2=hadoop5:2889:3889
server.3=hadoop6:2890:3890
4.执行命令,产生存储数据的目录
mkdir -p /usr/local/zookeeper/data
5.产生标记文件
echo '0' > /usr/local/zookeeper/data/myid
6.把hadoop4上的zookeeper复制到其他节点
scp -rq zookeeper hadoop5:/usr/local
scp -rq zookeeper hadoop6:/usr/local
7.在hadoop5,hadoop6上产生标记文件:
在hadoop5上执行 echo '1' > /usr/local/zookeeper/data/myid
在hadoop6上执行 echo '2' > /usr/local/zookeeper/data/myid
8.在三个节点分别执行bin/zkServer.sh start
9.检查(1)执行jps查看 (2)执行bin/zkServer.sh status
hbase关闭:
hbase/bin/stop-hbase.sh
查看zookeeper的状态:
bin/zkServer.sh ststus
===================================
搭建Hbase集群(hadoop4作为主节点,hadoop5和hadoop6作为从节点):
1.在hadoop4上 解压缩,
2.编辑文件conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
3.编辑文件conf/hbase-site.xml
<configuration>
<!-- 存放数据的目录-->
<property>
<name>rootDir</name>
<value>hdfs://hadoop4:9000/hbase</value>
</property>
<!--是否是分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- zookeeper存放的机器-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop4,hadoop5,hadoop6</value>
</property>
</configuration>
4.编辑文件conf/regionservers修改内容
hadoop5
hadoop6
5.复制hbase到其他节点,hadoop5,hadoop6
cd ..
scp hbase hadoop5:/usr/local
scp hbase hadoop6:/usr/local
6. 启动hbase之前,要检查hadoop的hdfs,zookeeper,集群是否正常运行.
hadoop4上执行bin/start-hbase.sh
7.检查.执行jps命令,在hadoop0看到看到一个新的进程,HMaster
查看http://hadoop4:60010