Hadoop集群+Hbase集群搭建
作者:互联网
想部署hadoop集群和hbase的集群,我的方式是建议先在一台虚拟机上面部署hadoop伪分布+hbase伪分布,再以这台虚拟机生成克隆,防止出现难以解决的问题,备份一台,给自己必须留一手!!!!
进行hadoop的集群时每各节点已经部署hadoop的伪分布,所以jdk和hadoop都已经安装。
软件:VMware Workstation
操作系统:linux+ubuntu服务器
Hadoop集群部署
集群规划
主节点:Master
从节点:slave1 、slave2
Ip: Master:192.168.1.113 slave1:192.168.1.114 slave2:192.168.1.116
部署条件:Master已经有了部署hadoop+hbase伪分布。
1.修改主机名+主机ip
1: sudo gedit /etc/hostname
修改hostname为Master
2: sudo gedit /etc/hosts
添加Master 和slave1 slave2节点的IP地址 默认本地地址不用管(127.0.0.1)
(查看ip地址方法: ifconfig )
********三台虚拟机上都要这样配置 ,同时重启虚拟机才能使命令生效*************
2.查看节点相互之间是否能够ping通:
分别在master 、slave1、slave2上相互使用ping命令
Master上:ping Master -c 3
ping slave1 -c 3
ping slave2 -c 3
slave1上:ping Master -c 3
ping slave1 -c 3
ping slave2 -c 3
slave2上:ping Master -c 3
ping slave1 -c 3
ping slave2 -c 3
因为ping了3次,所以记录数received必须是3
3.设置免密登录:
sudo apt-get install openssh-server
安装后,使用ssh localhost登录本机:
生成秘钥:
1.exit # 退出刚才的 ssh localhost
2.cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
3.ssh-keygen -t rsa # 会有提示,都按回车就可以
4.cat ./id_rsa.pub >> ./authorized_keys # 加入授权
在用ssh localhost命令直接登录:
在Master上复制authorized_keys到slave1 、slave2
scp authorized_keys slave1:/home/hadoop/.ssh/
scp authorized_keys slave2:/home/hadoop/.ssh/
如果提示要输入密码,就输入hadoop用户密码
5.修改环境变量:cd ~ (可以把我的全部抄上,只要你的安装路径和我的一样)
sudo gedit ~/.bashrc
xport JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/usr/local/hbase/bin
source ~/.bashrc 使命令生效
6.修改配置文件
进入cd /usr/local/hadoop/etc/ahdoop
ls 查看配置文件
1.修改 core-site.xml
sudo gedit core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
2.修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
4.修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
5.修改slaves:
添加
slave1
slave2
6.修改 yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
7.修改 hadoop-env.sh
添加自己jdk地址
(这是我的jdk地址 jdk1.8.0_162是jdk版本 )
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
7.将Master主节点下的hadoop用户压缩用复制拷贝到
slave1,slave2
Master 节点:
cd /usr/local
sudo rm -r ./hadoop/tmp #删除hbase临时文件
sudo rm -r ./hadoop/logs/* #删除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop #先压缩再复制
slave1 slave2节点上:
sudo rm -r /usr/local/hadoop #如果有删除旧的
sudo tar -zxcf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop 添加权限
8.在Master进行初始化 hdfs namenode -format
看到这个就表示成功.
9.Master 上 start-all.sh 启动所有节点
jps 分别在Master .slave1.slave2 查看节点
Master:
slave1:
slave2:
stop-all.sh 关闭所有节点
至此hadoop集群首先部署好了!!!
接下来进行hbase集群的部署:
Hbase集群必须要有zookeeper,暂且有两种方式,一种是使用hbase自带的zookeeper,一种是首先安装配置zookeeper的集群,为了简单的学习,这里使用hbase自带的zookeeper,进行hbase集群的简单配置。
使用的hbase自带的zookeeper***
已经安装hbase伪分布;
配置环境变量:
cd ~
sudo gedit ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/usr/local/hbase/bin
(目录一样可以照抄)
1.配置 hbase-env.sh
进入 hbase目录:
cd /usr/local/hbase/conf
sudo gedit hbase-site.sh
(true表示使用hbase自带的zookeeper)
export JAVA_HOME=/export/servers/jdk
指定jdk的目录
2.配置 hbase-site.xml
sudo gedit hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,slave1,slave2</value>
</property>
</configuration>
解释:hbase.rootdir: hbase存放数据目录 (注意与core-site.xml中fs.defaultFS的配置对应,只要是端口号) hbase.cluster.distributed:是否分布式 hbase.zookeeper.quorum:zookeeper集群
3.regionservers
slave1
slave2
看个人习惯:
(1):在Master slave1 slave2 都进行这样的位置(比较麻烦)
(2)在Master上将配置好的hbase文件直接传到其他用户
为保险起见,这里先进行了压缩:
压缩传送:
Master 节点:
cd /usr/local
sudo rm -r ./hbase/tmp #删除hbase临时文件
sudo rm -r ./hbase/logs/* #删除日志文件
tar -zcf ~/hbase.master.tar.gz ./hbase #先压缩再复制
slave1 slave2节点上:
sudo rm -r /usr/local/hbase #如果有删除旧的
sudo tar -zxcf ~/hbase.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hbase 添加权限
Master节点上压缩传输到slave节点上的压缩包直接是可以看的,可以看是不是有这个文件,传输成功了再在slave节点上进行后面的操作。
(hadoop.master.tar.gz 压缩文件)
4.验证:
启动hbase首先要启动hadoop集群
在Master上 start-all.sh 启动所有hadoop集群的节点
输入jps查看hadoop是否启动成功:
Master:
slave1:
slave2:
Hadoop集群节点启动成功后,在Master上进入hbase文件目录:
cd /usr/local/hbase
start-hbase.sh
启动后,再输入jps查看节点:
Master:
slave1:
slave2:
*******hadoop和hbase节点缺一不可!!!!!************
输入hbse shell进入hbase:
hbase shell
输入status查看集群状态:
(可以看到1台Master节点,2个server节点)
hbase页面:http://192.168.32.128:16010
192.168.32.128 是自己Master的IP地址:
停止hbase节点:stop-hbase.sh
先停止hbase再停止hadoop
停止所有节点:stop-all.sh
至此hadoop+hbase部署成功!!!!
芜湖,起飞!!!!!!!!!!!!
标签:Hadoop,hadoop,集群,usr,Master,hbase,slave1,local,Hbase 来源: https://blog.csdn.net/qq_45976312/article/details/117456624