赞
踩
已经搭建好 hadoop和hbase伪集群。如果没有,参照博主另外一个文章搭建伪集群
主节点:Master
从节点:slave1 、slave2
Ip:
Master:192.168.10.130
slave1:192.168.10.131
slave2:192.168.10.131
部署条件:Master已经有了部署hadoop+hbase伪分布。
不同主机不同名字:sudo vim /etc/hostname
sudo vim /etc/hosts
#三台一样
192.168.10.130 Master
192.168.10.131 slave1
192.168.10.132 slave2
这里的静态ip在桌面设置的,也可以在文件设置
******三台虚拟机上都要这样配置 ,同时重启虚拟机才能使命令生效*************
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
以下每个机子上都要弄
sudo apt-get install openssh-server
生成秘钥:
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
登录本机
ssh localhost
在 Master 上复制authorized_keys到 slave1 、slave2
scp authorized_keys slave1:/home/user/.ssh/
scp authorized_keys slave2:/home/user/.ssh/
如果提示要输入密码,就输入user用户密码
在 slave1 上复制authorized_keys到 Master 、slave2
scp authorized_keys Master:/home/user/.ssh/
scp authorized_keys slave2:/home/user/.ssh/
在 slave2 上复制authorized_keys到 Master 、slave1
scp authorized_keys Master:/home/user/.ssh/
scp authorized_keys slave1:/home/user/.ssh/
sudo vim /etc/profile
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351/
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/hadoop-3.1.3
export PATH=$PATH:/usr/local/hadoop/hadoop-3.1.3/sbin:/usr/local/hadoop/hadoop-3.1.3/bin:/usr/local/hbase/hbase-2.2.2/bin
使命令生效: source /etc/profile
进入
cd /usr/local/hadoop/hadoop-3.1.3/etc/hadoop
sudo vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value> #这里与伪集群不一样,伪集群是本机
</property>
</configuration>
sudo vim 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/hadoop-3.1.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.3/tmp/dfs/data</value>
</property>
</configuration>
sudo vim 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>
sudo vim workers
sudo vim 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>
sudo vim hadoop-env.sh
添加自己jdk地址
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351
Master 节点:
cd /usr/local
sudo rm -r ./hadoop/hadoop-3.1.3/tmp #删除hbase临时文件
sudo rm -r ./hadoop/hadoop-3.1.3/logs/* #删除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop #先压缩再复制
复制:
scp -r hadoop.master.tar.gz user@slave1:/home/user
scp -r hadoop.master.tar.gz user@slave2:/home/user
slave1 slave2节点上:
sudo rm -r /usr/local/hadoop #如果有删除旧的
sudo tar -zxvf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R user:user /usr/local/hadoop 添加权限
./bin/hdfs namenode -format
start-all.sh
jps检查
Master
slave1
slave2
还可以在线查看 HDFS 中的文件
Hadoop2.x 为 http://localhost:50070
Hadoop3.x 已改为http://localhost:9870 http://192.168.10.130:9870
http://local:8088/cluster 远程: http://192.168.10.130:8088/cluster
hadoop 关闭:
cd /usr/local/hadoop/hadoop-3.1.3
./sbin/start-all.sh
Hbase集群必须要有zookeeper,暂且有两种方式,一种是使用hbase自带的zookeeper,一种是首先安装配置zookeeper的集群,为了简单的学习,这里使用hbase自带的zookeeper,进行hbase集群的简单配置。
配置环境变量:
cd ~
sudo vim /etc/profile
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351/
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/hadoop-3.1.3
export PATH=$PATH:/usr/local/hadoop/hadoop-3.1.3/sbin:/usr/local/hadoop/hadoop-3.1.3/bin:/usr/local/hbase/hbase-2.2.2/bin
cd /usr/local/hbase/hbase-2.2.2/conf/
sudo vim hbase-env.sh
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351
export HBASE_MANAGES_ZK=true
sudo vim 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>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
解释:hbase.rootdir: hbase存放数据目录 (注意与core-site.xml中fs.defaultFS的配置对应,只要是端口号) hbase.cluster.distributed:是否分布式 hbase.zookeeper.quorum:zookeeper集群
sudo vim regionservers
slave1
slave2
Master 节点:
cd /usr/local
sudo rm -r ./hbase/hbase-2.2.2/tmp #删除hbase临时文件
sudo rm -r ./hbase/hbase-2.2.2/logs/* #删除日志文件
tar -zcf ~/hbase.master.tar.gz ./hbase #先压缩再复制
传输:
cd ~
scp -r hbase.master.tar.gz user@slave1:/home/user
scp -r hbase.master.tar.gz user@slave2:/home/user
slave1 slave2节点上:
sudo rm -r /usr/local/hbase #如果有删除旧的
sudo tar -zxvf ~/hbase.master.tar.gz -C /usr/local
sudo chown -R user:user /usr/local/hbase 添加权限
启动hbase首先要启动hadoop集群
hadoop启动:start-all.sh
输入jps看是否启动成功
Hadoop集群节点启动成功后,在Master上进入hbase文件目录
start-hbase.sh
jps截图
Master
slave1
slave2
*hadoop和hbase节点缺一不可!!!!!
输入hbse shell进入hbase:
hbase shell
查看集群状态
shell输入:status
hbase页面:
http://192.168.10.130:16010
停止hbase节点:
stop-hbase.sh
先停止hbase再停止hadoop
停止所有节点:
stop-all.sh
至此hadoop+hbase部署成功!!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。