子任务三:HBase分布式安装配置
本任务需要使用root用户完成相关配置,安装HBase需要配置Hadoop和ZooKeeper等前置环境。命令中要求使用绝对路径,具体要求如下:
配置节点hosts解析
使用命令查看自己所有节点环境的IP信息:
ip addr show
把所有节点的IP记录下来,将三个节点分别命名为master、slave1、slave2,取1个IP作为master节点,其余做slave节点。
修改容器中/etc/hosts文件,根据自己的节点的IP信息,在文件末添加类似下面的内容:
下面IP仅供参考,以自己环境的实际IP为准
10.42.123.106 master
10.42.123.46 slave1
10.42.74.171 slave2
配置及节点ssh免密登录
在master节点使用命令生成key,需要填入的内容直接留空即可
ssh-keygen -b 4096
使用下面的命令把master节点的公钥拷贝到包括master节点的所有的节点,默认密码为root
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
最后,在master节点的终端使用下面的命令初始化Hadoop环境namenode
hdfs namenode -format
确保Hadoop启动并正常运行。
# hadoop的集群启动命令为:
start-all.sh
# 启动后检查是否安装成功:
hdfs dfsadmin -report
从宿主机/opt目录下将文件apache-zookeeper-3.5.7-bin.tar.gz、hbase-2.2.3-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将ZooKeeper、HBase安装包解压到/opt/module目录下,将HBase的解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
下载所需安装包
在节点创建需要的文件夹,作为安装包储存路径和软件安装位置
mkdir /opt/software /opt/module
从宿主机目录下将文件apache-zookeeper-3.6.3-bin.tar.gz复制到容器Master中的/opt/software路径中。
scp root@10.42.2.28:/opt/zookeeper/apache-zookeeper-3.6.3-bin.tar.gz /opt/software
安装配置ZooKeeper运行环境
将Master节点ZooKeeper安装包解压到/opt/module路径中:
tar -xzf /opt/software/apache-zookeeper-3.6.3-bin.tar.gz -C /opt/module
修改节点环境中的/etc/profile文件,在文件末添加下面的内容:
# 添加ZooKeeper的环境变量
export ZOOKEEPER_HOME=/opt/module/apache-zookeeper-3.6.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
执行下面的命令使添加的ZooKeeper环境变量生效:
source /etc/profile
然后需要根据自己环境的三个节点的IP配置zoo.cfg文件
首先运行下面命令复制生成zoo.cfg文件
cd /opt/module/apache-zookeeper-3.6.3-bin/conf
cp -f ./zoo_sample.cfg ./zoo.cfg
使用vim命令编辑zoo.cfg文件
vim ./zoo.cfg
根据自己环境的三个节点的IP添加配置内容
比如这里三个节点的IP分别为: 10.42.240.106,10.42.240.46,10.42.74.171
所以这里添加的配置内容如下:
admin.enableServer=false
server.0=10.42.240.106:2888:3888
server.1=10.42.240.46:2888:3888
server.2=10.42.74.171:2888:3888
使用下面命令分别在三个节点中创建zookeeper所需路径
mkdir /tmp/zookeeper
根据添加的配置内容,在三个节点的/tmp/zookeeper下创建 myid 文件,并在该文件中写上节点IP对应的数字即可,对应上面的0,1,2
比如配置文件里为server.0=10.42.240.106:2888:3888,那么就在10.42.240.106对应的节点下执行下面的命令:
cd /tmp/zookeeper
touch ./myid
# 因为10.42.240.106前面的对应的数字是0,所以使用echo命令在文件里写入0
echo "0" > ./myid
然后模仿上面把其余节点的myid文件也创建并配置好即可
分发内容到slave节点
用scp命令并使用绝对路径从Master复制zookeeper解压并配置好的安装文件到slave1、slave2节点
scp -r /opt/module/apache-zookeeper-3.6.3-bin root@slave1:/opt/module/
scp -r /opt/module/apache-zookeeper-3.6.3-bin root@slave2:/opt/module/
可使用下面命令分发配置好的profile文件
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
记得分别在slave1、slave2节点的终端执行下面的命令使profile文件生效
source /etc/profile
三个节点都需要运行下面的命令来启动zookeeper集群:
zkServer.sh start
在节点创建需要的文件夹,作为安装包储存路径和软件安装位置
mkdir /opt/software /opt/module
从宿主机目录下将文件hbase-2.4.14-bin.tar.gz复制到容器Master中的/opt/software路径中。
scp root@10.42.2.28:/opt/hbase/hbase-2.4.14-bin.tar.gz /opt/software
安装配置HBase运行环境
在三个节点创建HBase需要的文件夹,确保Hadoop分布式集群正常启动运行
mkdir -p /hadoop/zookeeper
hdfs dfs -mkdir -p /hbase
将Master节点HBase安装包解压到/opt/module路径中:
tar -xzf /opt/software/hbase-2.4.14-bin.tar.gz -C /opt/module
修改节点环境中的/etc/profile文件,在文件末添加下面的内容:
# 添加HBase的环境变量
export HBASE_HOME=/opt/module/hbase-2.4.14
export PATH=$PATH:$HBASE_HOME/bin
执行下面的命令使添加的HBase环境变量生效:
source /etc/profile
配置/opt/module/hbase-2.4.14/conf/路径下的3个重要的配置文件: hbase-site.xml,hbase-env.sh,regionservers。
下面是添加好的文件的内容:
如果使用vim的话,有一个快捷方式,进入命令模式输入 :set number 显示行号,然后使用比如 :22,54d 这样的命令快速删除从22行到54行之间的内容。
1、hbase-site.xml
<configuration>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/hadoop/zookeeper</value>
</property>
</configuration>
hbase-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
# 停止hbase自带的zookeeper集群,使用我们已有的集群
# 自己的zookeeper pid文件所在路径,
# 是/opt/module/apache-zookeeper-3.6.3-bin/conf/zoo.cfg配置文件中dataDir的值
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/tmp/zookeeper
regionservers
master
slave1
slave2
完成ZooKeeper相关部署,用scp命令并使用绝对路径从容器master复制HBase解压后的包分发至slave1、slave2中,并修改相关配置,配置好环境变量,在容器Master节点中运行命令hbase version,将全部复制命令复制并将hbase version命令的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
用scp命令并使用绝对路径从Master复制Hbase解压并配置好的安装文件到slave1、slave2节点
scp -r /opt/module/hbase-2.4.14 root@slave1:/opt/module/
scp -r /opt/module/hbase-2.4.14 root@slave2:/opt/module/
可使用下面命令分发配置好的profile文件
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
记得分别在slave1、slave2节点的终端执行下面的命令使profile文件生效
source /etc/profile
在容器Master节点中运行命令hbase version
hbase version
启动HBase后在三个节点分别使用jps命令查看,并将结果分别截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;正常启动后在hbase shell中查看命名空间,将查看命名空间的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。
执行下面的命令启动Hbase,确保ZooKeeper分布式集群正常启动运行
start-hbase.sh
在三个节点分别使用jps命令查看
jps
如果正常启动,在hbase shell中查看命名空间
hbase shell
list_namespace