Ubuntu安装HBase和Zookeeper

先来安装Zookeeper

首先使用XFTP工具 将Zookeeper和HBase的压缩包上传到集群的节点上去(hadoop2)

在这里插入图片描述
将文件上传到集群中的一台节点后 可以使用scp apache-zookeeper-3.5.6-bin.tar.gz jee@hadoop3:/home/jee/software/ 命令将这个文件发送给集群中的另外两台机器

在hadoop2中解压Zookeeper压缩包sudo tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz -C /usr/local/

Zookeeper包的名字太长 我们修改一下名字mv apache-zookeeper-3.5.6-bin/ zookeeper

再修改他的用户和用户组(需要切换到root用户) chown -R jee:jee zookeeper/ (原本是root用户 我们修改成我们自己的普通用户)

我们创建一个zkData的文件夹用来存放数据(注意 ! 要切换回普通用户 不然这个文件夹的用户和用户组就是root了) mkdir zkData

接下来我们来配置Zookeeper

进入路径:/usr/local/zookeeper/conf,将zoo_sample.cfg改名为zoo.cfg文件 mv zoo_sample.cfg zoo.cfg

修改zoo.cfg配置文件如下信息:

#存放数据的文件夹
dataDir=/usr/local/zookeeper/zkData 
#Zookeeper分布的节点和其端口 server.后面的数字表示id 后面会配置
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
server.4=hadoop4:2888:3888

配置myid

在hadoop2上zookeeper的zkData路径下创建myid文件。写入id。
Hadoop2的myid 为2
Hadoop3的myid 为3
Hadoop4的myid 为4

写入的id需要和zoo.cfg文件中配置的一致。
在这里插入图片描述
在这里插入图片描述
至此 我们在一台节点上的Zookeeper配置就已经完成了 接下来我们在其他两台节点上解压文件+修改用户组+创建zkData文件夹 做好之后 我们另外两台节点的Zookeeper也已经安装好了 只差配置文件的修改了 我们将刚才配置好的文件分发给这两台节点就可以了

在配置好的节点上执行下面命令:
rsync -rvl /usr/local/zookeeper/conf/* jee@hadoop3:/usr/local/zookeeper/conf
rsync -rvl /usr/local/zookeeper/conf/* jee@hadoop4:/usr/local/zookeeper/conf

然后再在这两台节点的zkData中创建myid

hadoop3的zkData的目录下创建myid,写入3
Hadoop4的zkData的目录下创建myid,写入4

然后我们启动集群看是否配置成功

启停集群:

启动:
/usr/local/zookeeper/bin/zkServer.sh start
停止:
/usr/local/zookeeper/bin/zkServer.sh stop
注:zookeeper集群的每个服务器都需要启动/停止,所有zookeeper服务器启动后,只有一个Leader,其他都是follower

在这里插入图片描述
查看状态:

执行:/usr/local/zookeeper/bin/zkServer.sh status
信息如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

配置HBase

先将压缩文件解压到/usr/local/目录中 修改名字为hbase 然后修改用户和用户组sudo chown -R jee:jee hbase/

修改配置文件 hbase-env.sh

1.修改JDK环境变量JAVA_HOME

2.修改HBASE-MANAGES-ZK=false;
默认为true,表示使用Hbase自带的zookeeper。修改为false,表示使用独立安装的zookeeper。
	
3.如果使用的jdk 1.8以上版本,需要移除HBASE-MASTER-OPTS和HBASE-REGIONSERVER-OPTS配置

4.创建并配置HBASE_LOG_DIR路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再配置 hbase-site.xml

<!--zookeeper的节点主机名-->
<configuration>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop2:2181,hadoop3:2181,hadoop4:2181</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
 <!--hbase的存储根目录,设为hadoopHDFS根目录下的hbase-->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop2:9000/hbase</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>The mode the cluster will be in. Possible values are
      false: standalone and pseudo-distributed setups with managed Zookeeper
      true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
    </description>
  </property>
    <property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper/zkData</value>
</property>
</configuration>

改写regionservers文件 将我们集群的机器名写入

regionservers中的节点表示  这些节点都是RegionServer
配置从节点名称:
hadoop2
hadoop3
hadoop4

Hbase软连接Hadoop:

将hadoop的core-site.xml和hdfs-site.xml放到hbase/conf目录下。
ln 软链接命令
ln -s /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/core-site.xml
ln -s /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/hdfs-site.xml

在这里插入图片描述

至此 我们在一台节点上的HBase配置就已经全部完成了 然后我们将这台节点上的HBase拷贝到其他节点上去

sudo scp -r /usr/local/hbase root@hadoop3:/usr/local/hbase 
sudo scp -r /usr/local/hbase root@hadoop4:/usr/local/hbase 

然后再修改拷过去的HBase的用户和用户组
并且 软链接是不会拷贝过去的 所以我们需要在Hadoop2和Hadoop3中也创建两个软链接

另外 我们HBase对时间要求很苛刻 可能不同节点间 几分钟的差距 就会导致HBase命令失效 所以我们需要设置一下时钟同步 让集群中的节点时间都是相同的

将一台节点作为主节点 另外的节点作为从节点 然后从节点向主节点拉取时间即可

我们将Hadoop2作为主节点  Hadoop3和Hadoop4作为从节点 开始设置
1.先在Hadoop2中安装NTP
sudo apt-get install ntp

2.修改被同步机器的/etc/ntp.conf
主要配置:
(1) 哪些机器能够访问时钟同步服务,进行时钟同步。权限配置
(2)配置时钟同步的服务端,时间服务的层级

#限制只能是192.168.124.0/24网段的IP可以连接机器同步时间,不支持远程登陆
//需要根据自己的本地IP修改
restrict 192.168.124.0 mask 255.255.255.0 nomodify notrap
//下面这两个不用修改
server 127.127.1.0 #表示本机
fudge 127.127.1.0 stratum 10 #fudge和server相同,stratum 时间服务器的层级

关闭需要同步时间机器的ntp(除hadoop2的其他机器)
sudo service ntp stop
同步时间(除hadoop2的其他机器都要执行)
sudo ntpdate hadoop2
在除hadoop2的其他机器,将同步时间的命令放在crontab中(切换到root用户下操作)
crontab -e # 打开crontab
0 8 * * * ntpdate deptest1 #需要添加的命令,每天早上八点同步一次
发布了53 篇原创文章 · 获赞 0 · 访问量 1932

猜你喜欢

转载自blog.csdn.net/XXuan_/article/details/105036521