CentOS7搭建Hadoop + HBase + Zookeeper集群

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介:

CentOS7搭建Hadoop + HBase + Zookeeper集群

一、基础环境准备

1、下载安装包(均使用当前最新的稳定版本,截止至2017年05月24日)

1)jdk-8u131

2)hadoop-2.7.3

3)hbase-1.2.5

4)zookeeper-3.4.10

以上下载地址请点击“阅读原文”

2、修改hosts文件(使用的三台集群主机默认IP为192.168.0.100、192.168.0.101、192.168.0.102)


  
  
  1. # vim /etc/hosts 
  2.  
  3. 添加以下信息 
  4.  
  5. 192.168.0.100 master 
  6.  
  7. 192.168.0.101 slave1 
  8.  
  9. 192.168.0.102 slave2  

3、安装JDK


  
  
  1. -- 解压jdk安装包 
  2.  
  3. # mkdir /usr/java 
  4.  
  5. # tar -zxvf jdk-8u131-linux-x64.tar.gx -C /usr/java 
  6.  
  7. -- 拷贝jdk至slave1及slave2中 
  8.  
  9. # scp -r /usr/java slave1:/usr 
  10.  
  11. # scp -r /usr/java slave2:/usr 
  12.  
  13. -- 设置jdk环境变量 
  14.  
  15. # vim /etc/environment 
  16.  
  17. JAVA_HOME=/usr/java/jdk1.8.0_131 
  18.  
  19. JRE_HOME=/usr/java/jdk1.8.0_131/jre 
  20.  
  21. # vim /etc/profile 
  22.  
  23. export JAVA_HOME=/usr/java/jdk1.8.0_131 
  24.  
  25. export JRE_HOME=${JAVA_HOME}/jre 
  26.  
  27. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
  28.  
  29. export PATH=$PATH:$JAVA_HOME/bin  

4、设置免密登陆

slave1


  
  
  1. # ssh-keygen -t rsa 
  2.  
  3. # cp ~/.ssh/id_rsa.pub ~/.ssh/slave1_id_rsa.pub 
  4.  
  5. # scp ~/.ssh/slave1_id_rsa.pub master:~/.ssh/  

slave2


  
  
  1. # ssh-keygen -t rsa 
  2.  
  3. # cp ~/.ssh/id_rsa.pub ~/.ssh/slave2_id_rsa.pub 
  4.  
  5. # scp ~/.ssh/slave2_id_rsa.pub master:~/.ssh/  

master


  
  
  1. # ssh-keygen -t rsa 
  2.  
  3. # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
  4.  
  5. # cat ~/.ssh/slave1_id_rsa.pub >> ~/.ssh/authorized_keys 
  6.  
  7. # cat ~/.ssh/slave2_id_rsa.pub >> ~/.ssh/authorized_kyes 
  8.  
  9. -- 拷贝文件至slave1及slave2 
  10.  
  11. # scp ~/.ssh/authorized_keys slave1:~/.ssh 
  12.  
  13. # scp ~/.ssh/authorized_keys slave2:~/.ssh  

5、关闭防火墙及SELINUX


  
  
  1. -- 关闭防火墙 
  2.  
  3. # systemctl stop firewalld.service 
  4.  
  5. # systemctl disable firewalld.service 
  6.  
  7. -- 关闭SELINUX 
  8.  
  9. # vim /etc/selinux/config 
  10.  
  11. -- 注释掉 
  12.  
  13. #SELINUX=enforcing 
  14.  
  15. #SELINUXTYPE=targeted 
  16.  
  17. -- 添加 
  18.  
  19. SELINUX=disable  

二、Hadoop环境搭建

1、解压缩安装包及创建基本目录


  
  
  1. # tar -zxvf hadoop-2.7.3-x64.tar.gz -C /usr 
  2.  
  3. # cd /usr/hadoop-2.7.3 
  4.  
  5. # mkdir tmp logs hdf hdf/data hdf/name  

2、修改hadoop配置文件


  
  
  1. -- 修改 slaves 文件 
  2.  
  3. # vim /usr/hadoop-2.7.3/etc/hadoop/slaves 
  4.  
  5. -- 删除 localhost,添加 
  6.  
  7. slave1 
  8.  
  9. slave2 
  10.  
  11. -- 修改 core-site.xml 文件 
  12.  
  13. # vim /usr/hadoop-2.7.3/etc/hadoop/core-site.xml 
  14.  
  15. -- 在 configuration 节点中添加以下内容 
  16.  
  17. <property> 
  18.  
  19. <name>fs.default.name</name
  20.  
  21. <value>hdfs://master:9000</value> 
  22.  
  23. </property> 
  24.  
  25. <property> 
  26.  
  27. <name>hadoop.tmp.dir</name
  28.  
  29. <value>file:/usr/hadoop-2.7.3/tmp</value> 
  30.  
  31. </property> 
  32.  
  33. -- 修改 hdfs-site.xml 文件 
  34.  
  35. # vim /usr/hadoop-2.7.3/etc/hadoop/hdfs-site.xml 
  36.  
  37. -- 在 configuration 节点添加以下内容 
  38.  
  39. <property> 
  40.  
  41. <name>dfs.datanode.data.dir</name
  42.  
  43. <value>/usr/hadoop-2.7.3/hdf/data</value> 
  44.  
  45. <final>true</final> 
  46.  
  47. </property> 
  48.  
  49. <property> 
  50.  
  51. <name>dfs.namenode.name.dir</name
  52.  
  53. <value>/usr/hadoop-2.7.3/hdf/name</value> 
  54.  
  55. <final>true</final> 
  56.  
  57. </property> 
  58.  
  59. -- 修改 mapred-site.xml 文件 
  60.  
  61. # cp /usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml 
  62.  
  63. # vim /usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml 
  64.  
  65. -- 在 configuration 节点添加以下内容 
  66.  
  67. <property> 
  68.  
  69. <name>mapreduce.framework.name</name
  70.  
  71. <value>yarn</value> 
  72.  
  73. </property> 
  74.  
  75. <property> 
  76.  
  77. <name>mapreduce.jobhistory.address</name
  78.  
  79. <value>master:10020</value> 
  80.  
  81. </property> 
  82.  
  83. <property> 
  84.  
  85. <name>mapreduce.jobhistory.webapp.address</name
  86.  
  87. <value>master:19888</value> 
  88.  
  89. </property> 
  90.  
  91. -- 修改 yarn-site.xml 文件 
  92.  
  93. # vim /usr/hadoop-2.7.3/etc/hadoop/yarn-site.xml 
  94.  
  95. -- 在 configuration 节点添加以下内容 
  96.  
  97. <property> 
  98.  
  99. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name
  100.  
  101. <value>org.apache.mapred.ShuffleHandler</value> 
  102.  
  103. </property> 
  104.  
  105. <property> 
  106.  
  107. <name>yarn.resourcemanager.address</name
  108.  
  109. <value>master:8032</value> 
  110.  
  111. </property> 
  112.  
  113. <property> 
  114.  
  115. <name>yarn.resourcemanager.scheduler.address</name
  116.  
  117. <value>master:8030</value> 
  118.  
  119. </property> 
  120.  
  121. <property> 
  122.  
  123. <name>yarn.resourcemanager.resource-tracker.address</name
  124.  
  125. <value>master:8031</value> 
  126.  
  127. </property> 
  128.  
  129. <property> 
  130.  
  131. <name>yarn.resourcemanager.admin.address</name
  132.  
  133. <value>master:8033</value> 
  134.  
  135. </property> 
  136.  
  137. <property> 
  138.  
  139. <name>yarn.resourcemanager.webapp.address</name
  140.  
  141. <value>master:8088</value> 
  142.  
  143. </property>  

3、复制hadoop到slave节点


  
  
  1. # scp -r /usr/hadoop-2.7.3 slave1:/usr 
  2.  
  3. # scp -r /usr/hadoop-2.7.3 slave2:/usr  

4、配置 master 和 slave 的 hadoop 环境变量


  
  
  1. # vim /etc/profile 
  2.  
  3. -- 添加如下内容 
  4.  
  5. export HADOOP_HOME=/usr/hadoop-2.7.3 
  6.  
  7. export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 
  8.  
  9. export HADOOP_LOG_DIR=/usr/hadoop-2.7.3/logs 
  10.  
  11. export YARN_LOG_DIR=$HADOOP_LOG_DIR 
  12.  
  13.  
  14.  
  15. -- 保存后执行 
  16.  
  17. # source /etc/profile 
  18.  
  19.  
  20. # vim ~/.bashrc 
  21.  
  22. -- 添加如下内容 
  23.  
  24. export HADOOP_PREFIX=/usr/hadoop-2.7.3/  

5、格式化 namenode


  
  
  1. # /usr/hadoop-2.7.3/sbin/hdfs namenode -format 

6、启动 hadoop


  
  
  1. # /usr/hadoop-2.7.3/sbin/start-all.sh 

到这一步已经成功完成了hadoop环境的搭建

三、Zookeeper 环境搭建

1、解压缩 zookeeper 安装包,并建立基本目录


  
  
  1. # tar -zxvf zookeeper-3.4.10.tar.gz -C /usr 
  2.  
  3. # mkdir /usr/zookeeper-3.4.10/data  

2、修改配置文件


  
  
  1. -- 复制配置文件模板 
  2.  
  3. # cp /usr/zookeeper-3.4.10/conf/zoo-sample.cfg /usr/zookeeper-3.4.10/conf/zoo.cfg 
  4.  
  5. -- 修改配置文件 
  6.  
  7. # vim /usr/zookeeper-3.4.10/conf/zoo.cfg 
  8.  
  9. -- 添加如下内容 
  10.  
  11. dataDir=/usr/zookeeper-3.4.10/data 
  12.  
  13. server.1=master:2888:3888 
  14.  
  15. server.2=slave1:2888:3888 
  16.  
  17. server.3=slave2:2888:3888 
  18.  
  19. -- 创建myid文件(master、slave1、slave2均需更新) 
  20.  
  21. # touch /usr/zookeeper-3.4.10/data/myid 
  22.  
  23. # vim /usr/zookeeper-3.4.10/myid 
  24.  
  25. -- 添加如下内容 
  26.  
  27. 1(master节点添加) 
  28.  
  29. 2(slave2节点添加) 
  30.  
  31. 3(slave3节点添加)  

3、启动zookeeper


  
  
  1. -- master、slave1、slave2增需要执行 
  2.  
  3. # cd /usr/zookeeper-3.4.10/bin 
  4.  
  5. # ./zkServer.sh start 
  6.  
  7. # ./zkServer.sh status  

到这一步完成了zookeeper环境的搭建

四、HBase环境搭建

1、解压缩 hbase 安装包


  
  
  1. # tar -zxvf hbase-1.2.5-bin.star.gz -C /usr 
  2.  
  3. # mkdir /usr/hbase-1.2.5-bin/logs  

2、修改配置文件


  
  
  1. # vim /usr/hbase-1.2.5/conf/hbase-env.sh 
  2.  
  3. -- 添加如下内容 
  4.  
  5. export JAVA_HOME=/usr/java/jdk1.8.0_131 
  6.  
  7. export HBASE_LOG_DIR=${HBASE_HOME}/logs 
  8.  
  9. export HBASE_MANAGES_ZK=false  

3、修改regionservers


  
  
  1. # vim /usr/hbase-1.2.5/conf/regionservers 
  2.  
  3. -- 删除localhost,新增如下内容 
  4.  
  5. master 
  6.  
  7. slave1 
  8.  
  9. slave2 

4、修改配置文件


  
  
  1. # vim /usr/hbase-1.2.5/conf/hbase-site.xml 
  2.  
  3. -- 在configuration节点下添加如下内容 
  4.  
  5. <property> 
  6.  
  7. <name>hbase.rootdir</name
  8.  
  9. <value>hdfs://master:9000/hbase</value> 
  10.  
  11. </property> 
  12.  
  13. <property> 
  14.  
  15. <name>hbase.cluster.distributed</name
  16.  
  17. <value>true</value> 
  18.  
  19. </property> 
  20.  
  21. <property> 
  22.  
  23. <name>hbase.zookeeper.quorum</name
  24.  
  25. <value>master,slave1,slave2</value> 
  26.  
  27. </property> 
  28.  
  29. <property> 
  30.  
  31. <name>hbase.zookeeper.property.dataDir</name
  32.  
  33. <value>/usr/zookeeper-3.4.10/data</value> 
  34.  
  35. </property> 
  36.  
  37. <property> 
  38.  
  39. <name>hbase.master</name
  40.  
  41. <value>hdfs://master:60000</value> 
  42.  
  43. </property>  

5、复制hbase到slave中


  
  
  1. # scp -r /usr/hbase-1.2.5 slave1:/usr 
  2.  
  3. # scp -r /usr/hbase-1.2.5 slave2:/usr  

6、启动hbase


  
  
  1. # /usr/hbase-1.2.5/bin/start-hbase.sh 

到这一步hbase环境搭建完成




作者:kolbe
来源:51CTO
相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
40 2
|
1月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
27 1
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
61 1
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
36 1
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
39 1
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
43 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
44 0
|
2月前
|
分布式计算 Java Hadoop
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
85 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
67 4
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
31 3