Hadoop+hbase+zookeeper大数据实践(一):搭建伪集群环境

在本部分中,我们将使用VMware在Centos7上配置一个伪集群的环境
基本环境是:Hadoop+zooKeeper+hbase

前期准备

创建虚拟机

需要创建三台:其要求如下

主机名静态ip网关
master192.168.80.100192.168.80.2
slave1102.168.80.101192.168.80.2
slave2192.168.80.102192.168.80.2

整个创建流程参考该教程:
链接:https://pan.baidu.com/s/19J-o1jRSB4Uw7Ttf73PzWA?pwd=fp36

创建好后先进去把防火墙给狠狠的关掉

systemctl stop firewalld
systemctl disable firewalld

ssh免密登录

注意,以下所有操作,在三台机器上都要做一遍(自然要求三台机器都是开机状态)

修改机器host文件

echo "192.168.80.100 master" >> /etc/hosts
echo "192.168.80.101 slave1" >> /etc/hosts
echo "192.168.80.102 slave2" >> /etc/hosts

生成密钥:在输入以下命令后一直回车即可

ssh-keygen -t rsa

将本机公钥文件复制到其它虚拟机上
回车后输入yes
回车后输入接收方的root密码

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

之后可以尝试一下是否成功

ssh slave1

安装jdk1.8

【在master上操作】

首先卸载原有的所有jdk

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

创建三个新目录

mkdir /opt/data
mkdir /opt/tools
mkdir /opt/module

去oracle官网进行下载https://www.oracle.com/java/technologies/downloads/#java8-linux,下载完成后选择任意方式传输到虚拟机的/opt/tools目录下(我这里用的是wincp),之后解压到/opt/module

tar -zxvf /opt/tools/jdk-8u381-linux-x64.tar.gz -C /opt/module

之后进入/opt/module为我们解压完的东西重命名为java8(只是为了好记)

cd /opt/module
mv jdk1.8.0_381 java8

之后修改环境变量。进入/etc/profile

vi /etc/profile

将下面的内容复制到文件末尾

export JAVA_HOME=/opt/module/java8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新一下

source /etc/profile

之后查看是否成功

java -version

出现一下内容,成功

java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

搭建伪集群Hadoop

安装hadoop

【在master上操作】

进入/opt/tools后,去清华镜像把hadoop下载下来

wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/stable/hadoop-3.3.6.tar.gz

解压+重命名

tar -zxvf /opt/tools/hadoop-3.3.6.tar.gz -C /opt/module
#在module目录下
mv hadoop-3.3.6 hadoop3

配置环境变量,就是vi /etc/profile之后,将以下内容复制一下

export HADOOP_HOME=/opt/module/hadoop3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后使用source /etc/profile让环境起效
使用`hadoop version看看是否成功

Hadoop 3.3.6

配置hadoop

【在master上操作】

进入hadoop配置所在的目录

cd /opt/module/hadoop3/etc/hadoop

修改hadoop-env.sh文件中的JAVA_HOME。在vim中,输入/export JAVA_HOME,找到该配置所在的行,修改成我们的JAVA_HOME

vi hadoop-env.sh
export JAVA_HOME=/opt/module/java8

同样的,配置core-site.xml如下

<configuration>
    <!--用于设置Hadoop的文件系统,由URI指定-->
    <property>
        <name>fs.defaultFS</name>
        <!--用于指定namenode地址master机器上-->
        <value>hdfs://master:9000</value>
    </property>
    <!--配置Hadoop的临时目录,默认/tem/hadoop-${user.name}-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop3/tmp</value>
    </property>
</configuration>

`
配置hdfs-site.xml如下

<configuration>
    <!--指定HDFS的数量-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--secondary namenode 所在主机的IP和端口-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>
</configuration>

配置mapred-site.xml如下

<configuration>
    <!--指定MapReduce运行时的框架,这里指定在YARN上,默认在local-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置yarn-site.xml如下

<configuration>
    <!--指定YARN集群的管理者(ResourceManager)的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

防止hadoop启动报错:Attempting to operate on hdfs namenode as root。在以下脚本文件的开头加入指定内容
首先进入cd /opt/module/hadoop3/sbin
在start-dfs.sh,stop-dfs.sh两个文件顶部添加

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在start-yarn.sh,stop-yarn.sh两个文件顶部添加

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

最后修改环境变量:vim /etc/profile

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

让配置起效source /etc/profile

配置workers如下:注意进去后先输入dd将第一行删掉

master
slave1
slave2

向slave1\2分发配置

【在master上操作】将/opt/module整个复制到slave1/2上去

scp -r /opt/module slave1:/opt/
scp -r /opt/module slave2:/opt/

【在master上操作】将/etc/profile文件复制到slave1/2上去

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile

【在slave1/2中分别执行】让配置起效

source /etc/profile

测试hadoop

【在master上操作】在主节点格式化文件系统

hdfs namenode -format

【在master上操作】hadoop,启动!!!

start-all.sh

等待其启动,如果期间不报错,且在浏览器打开
192.168.80.100:9870
192.168.80.100:8088
显示正常,则成功

配置zookeeper

安装zookeeper

【在master中操作】

首先到清华镜像给zookeeper下载下来,解压到我们的/opt/module,并重命名成zookeeper3

cd /opt/tools
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.8.2-bin.tar.gz
tar -zxvf /opt/tools/apache-zookeeper-3.8.2-bin.tar.gz -C /opt/module
mv apache-zookeeper-3.8.2-bin zookeeper3

配置环境变量(打开和最后的source不再赘述)

export ZOOKEEPER_HOME=/opt/module/zookeeper3
export PATH=$PATH:$ZOOKEEPER_HOME/bin

进入cd /opt/module/zookeeper3/conf来进行配置
先将sample复制一下

cp zoo_sample.cfg zoo.cfg

然后对其进行修改vi zoo.cfg

#输入 /dataDir 在文件中找到该行,改成下面这样
dataDir=/opt/module/zookeeper3/data
#在最后加入
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

在我们的/opt/module/zookeeper3/下创建这个data目录并进入

mkdir /opt/module/zookeeper3/data
cd /opt/module/zookeeper3/data

创建一个myid文件,在里面输入1

echo "1">>myid

分发zookeeper配置

【在master上进行操作】将我们的/opt/module/zookeeper3分发到剩下的两台机器上

scp -r /opt/module/zookeeper3 slave1:/opt/module
scp -r /opt/module/zookeeper3 slave2:/opt/module

【分别在slave1/2上进行操作】 将myid中的内容更改为2/3

cd /opt/module/zookeeper3/data
rm myid
echo "2">>myid 
#在 slave2 中就是 echo "3">>myid

【在master上操作】 分发环境配置

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile

【在slave1/2上分别操作】 让环境起效

source /etc/profile

测试zookeeper

【在每台机器上逐一进行操作】

打开三台zookeeper

zkServer.sh start

出现zkServer.sh start后继续下一步
继续查看状态

zkServer.sh status

出现Mode: follower或者Mode: leader说明已成功

配置hbase

安装hbase

【在master上进行】

首先到清华镜像给hbase下载下来,解压到我们的/opt/module,并重命名成hbase2

cd /opt/tools
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-2.5.5-hadoop3-bin.tar.gz
tar -zxvf /opt/tools/hbase-2.5.5-hadoop3-bin.tar.gz -C /opt/module
mv hbase-2.5.5-hadoop3 hbase2

配置环境变量

export HBASE_HOME=/opt/module/hbase2
export PATH=$PATH:$HBASE/bin

进入cd /opt/hbase2/conf下修改配置文件
首先是hbase-env.sh

#输入 /JAVA_HOME 找到行修改
export JAVA_HOME=/opt/module/java8
#输入 /HBASE_MANAGES_ZK 找到行修改
export HBASE_MANAGES_ZK=false

在hbase-site.xml下添加:

<configuration>

	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>master,slave1,slave2</value>
		<description>The directory shared by RegionServers.</description>
	</property>
	
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/opt/module/hbase2/zookeeperdata</value>
		<description>Property from ZooKeeper config zoo. cfg.The directory where the snapshot is stored.</description>
	</property>
	
	<property>
		<name>hbase.tmp.dir</name>
		<value>/opt/module/hbase2/tmpdata</value>
	</property>
	
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://master: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.wal.provider</name>
    	<value>filesystem</value>
	</property>

  	<property>
    	<name>hbase.unsafe.stream.capability.enforce</name>
    	<value>false</value>
  	</property>

</configuration>

进入文件vim regionservers,先输入dd将第一行删掉,然后加入

master
slave1
slave2

分发hbase配置

【在master上进行操作】将我们的/opt/module/hbase2分发到剩下的两台机器上

scp -r /opt/module/hbase2 slave1:/opt/module
scp -r /opt/module/hbase2 slave2:/opt/module

【在master上操作】 分发环境配置

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile

【在slave1/2上分别操作】 让环境起效

source /etc/profile

测试hbase

按照以下步骤逐步启动

【在master中操作】启动hadoop

start-all.sh

【三台机器都输入】启动zookeeper

zkServer.sh start

【在master操作】 启动hbase

start-hbase.sh

尝试在我们的hbase中创建一个表
先进入shell

hbase shell

创建一个表(下一节会用到)

create 'my_table', 'cf'

如果创建成功,则基本宣告大功告成


最新:本人于该小学期未将选择题答案誊抄到最后一页空白纸,导致挂科,卷子找不回来。希望大火以此为鉴,认真考试。
哈哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值