快速搭建Hadoop及HBase分布式环境
本文旨在快速搭建一套Hadoop及HBase的分布式环境,自己测试玩玩的话ok,如果真的要搭一套集群建议还是参考下ambari吧,目前正在摸索该项目中。下面先来看看怎么快速搭建一套分布式环境。
准备
- 三台虚拟机:1台作为NameNode和HMaster 两台作为DataNode和HRegionServer。同时三台都安装zookeeper。
- Hadoop-2.7.3,HBase-1.2.4 ,Zookeeper-3.4.9 , JDK1.8.0_121 安装包
基础环境准备
对三台机器创建新用户hadoop,并将其加入sudoers,并更改hostname
useradd hadoop
passwd hadoop
vi /etc/sudoers
hadoop ALL=(ALL) ALL
vi /etc/hostname
#配置为 namenode-1/datanode-1/datanode-2
配置免密登录,配置一台机器,生产ssh密钥并配置本机免密登录,然后将整个.ssh文件夹传到其他机器上,更改authorized_keys的权限即可
ssh-keygen #可一直回车
#配置本机免密
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
#上传到其他机器
scp -r .ssh hadoop@xxxx:~
#登录到其他机器,设置authorized_keys权限
chmod 644 .ssh/authorized_keys
关闭防火墙并禁止开机启动
service iptables status #查看防火墙状态`
service iptables stop #关闭防火墙`
chkconfig iptables --list #查看防火墙开机启动状态`
chkconfig iptables off #关闭防火墙开机启动`
reboot # 重启`
安装JDK
mkdir /usr/java
tar zxvf xxjdk.tar.gz
mv jdk1.8.0_121/ /usr/java # 安装JDK
vi /etc/profile # 添加JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
安装Zookeeper并配置集群
根据三台机器的ip配置hosts(配置一份然后scp到其他机器):
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.3 namenode-1
192.168.8.4 datanode-1
192.168.8.5 datanode-2
解压缩zookeeper安装文件,修改配置项:
tar -zxvf zookeeper-3.4.9.tar.gz -C /home/hadoop
cd /home/hadoop/zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
#修改dataDir的值
dataDir=/home/hadoop/zookeeper-3.4.9/tmp
#在文件后面添加(server后面的数字与myid保持一致)
server.1=namenode-1:2888:3888
server.2=datanode-1:2888:3888
server.3=datanode-2:2888:3888
创建tmp文件,并创建myid文件
mkdir /home/hadoop/zookeeper-3.4.9/tmp
echo 1 > /home/hadoop/zookeeper-3.4.9/tmp/myid
将配置好的zookeeper文件夹传到其他机器上
scp -r /home/hadoop/zookeeper-3.4.9 hadoop@xxxx:~
然后分别更改其他机器的myid文件,对应配置文件中server后面的数字。分别启动三台机器的zookeeper
cd /home/hadoop/apps/zookeeper-3.4.9/bin/
./zkServer.sh start
查看目前zookeeper状态,一个leader,两个follower,命令如下:
./zkServer.sh status
安装Hadoop
解压Hadoop安装包
tar zxvf hadoop-2.7.3.tar.gz
配置各项配置文件
hadoop-env.sh
在hadoop-env.sh中配置JAVA_HOME环境变量
export JAVA_HOME="/usr/java/jdk1.8.0_121"
core-site.xml
用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode-1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
hdfs-site.xml
HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoopdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoopdata/data</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
</configuration>
mapred-site.xml
HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hmaster:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hmaster:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>namenode-1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>namenode-1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>namenode-1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>namenode-1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>namenode-1:8088</value>
</property>
</configuration>
slaves
Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和NodeManager
datanode-1
datanode-2
将上面配置好的hadoop文件夹scp拷贝到其他两台机器上。
格式化HDFS存储
进入hadoop目录
# bin/hdfs namenode -format
在格式化过程中注意输出结果,成功后会有类似下面的输出:
17/05/17 16:18:16 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = namenode-1/192.168.8.3
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.3
......
17/05/17 16:18:17 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/name has been successfully formatted.
17/05/17 16:18:18 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
17/05/17 16:18:18 INFO util.ExitUtil: Exiting with status 0
17/05/17 16:18:18 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at namenode-1/192.168.8.3
************************************************************/
启动Hadoop服务
启动和停止脚本位于${HADOOP_HOME}下sbin目录
启动HDFS
# sbin/start-dfs.sh
启动Yarn
# sbin/start-yarn.sh
启动MapReduce JobHistory Server
# sbin/mr-jobhistory-daemon.sh start historyserver
验证服务是否正常运行
查看Master节点上服务:
[hadoop@namenode-1 hadoop]$ jps
4283 NameNode
4643 ResourceManager
4466 SecondaryNameNode
5259 Jps
5173 JobHistoryServer
查看Master节点上服务:
[hadoop@datanode-1 ~]$ jps
3116 Jps
2844 DataNode
2976 NodeManager
各服务Web UI默认端口
NameNode 50070
ResourceManager 8088
MapReduce JobHistory Server 19888
登录各服务Web界面查看服务运行状况。
停止Hadoop服务
停止HDFS
# sbin/stop-dfs.sh
停止Yarn
sbin/stop-yarn.sh
停止MapReduce JobHistory Server
# sbin/mr-jobhistory-daemon.sh stop historyserver
安装HBase
解压HBase安装包
tar hbase-1.2.4.tar.gz
配置HBase
hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_121
export HBASE_MANAGES_ZK=false
hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode-1:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>namenode-1,datanode-1,datanode-2</value>
</property>
</configuration>
regionservers
配置regionservers主机列表
datanode-1
datanode-2
将配置好的hbase目录scp到其他两天机器上。
启动停止HBase
HBase脚本位于${HBASE_HOME}/bin目录下。
# bin/start-hbase.sh
停止HBase
# bin/stop-hbase.sh
查看HBase状态
分别在Master节点和Slave节点上使用jps查看HBase相关进程是否正常运行
[hadoop@namenode-1 ~]$ jps
2302 ResourceManager
1942 NameNode
1730 QuorumPeerMain
3781 HMaster
4653 Jps
2127 SecondaryNameNode
[hadoop@datanode-1 ~]$ jps
2268 HRegionServer
1915 NodeManager
1804 DataNode
1662 QuorumPeerMain
2715 Jps
可进入HBase Web UI进行查看,默认端口为16010。
参考文章:
http://www.coolee.me/hadoop-hbase-installation.html
快速搭建Hadoop及HBase分布式环境的更多相关文章
- 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境
本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境.(默认已安装好 Java.Maven 环境) 一.搭建源码阅读环境 一)idea 导入 hadoop 工程 从 github 上拉取代码 ...
- 【Head First Servlets and JSP】笔记6:什么是响应首部 & 快速搭建一个简单的测试环境
搭建简单的测试环境 什么是响应首部 最简单的响应首部——Content-Type 设置响应首部 请求重定向与响应首部 在浏览器中查看Response Headers 1.先快速搭建一个简单的测试环境, ...
- 快速搭建Spring Boot + Apache Shiro 环境
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Apache Shiro 介绍及概念 概念:Apache Shiro是一个强大且易用的Java安全框 ...
- 【Hadoop基础教程】4、Hadoop之完全分布式环境搭建
上一篇blog我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTrac ...
- 【Hadoop】伪分布式环境搭建、验证
Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...
- 【Hadoop基础教程】3、Hadoop之伪分布式环境搭建(转)
伪分布式模式即单节点集群模式,所有的守护进程都运行在同一台机器上.这种模式下增加了代码调试功能,可以查看内存.HDFS文件系统的输入/输出,以及与其他守护进程交互.以hadoop用户远程登录K-Mas ...
- CentOS7.4伪分布式搭建 hadoop+zookeeper+hbase+opentsdb
前言 由于hadoop和hbase都得想zookeeper注册,所以启动顺序为 zookeeper——>hadoop——>hbase,关闭顺序反之 一.前期准备 1.配置ip 进入文件编辑 ...
- docker应用-3(搭建hadoop以及hbase集群)
要用docker搭建集群,首先需要构造集群所需的docker镜像.构建镜像的一种方式是,利用一个已有的镜像比如简单的linux系统,运行一个容器,在容器中手动的安装集群所需要的软件并进行配置,然后co ...
- 快速搭建 SpringCloud 微服务开发环境的脚手架
本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 SpringCloud 项目. 本文作者:HelloGitHub-秦人 HelloGitHub ...
随机推荐
- Shell中的循环语句实例
1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do echo number $x done 注:" ...
- KMP超强模板贴一份
)== ) { ); next[]=; ; ;i<=n;i++) { ]!=str[i]) j=next[j]; ...
- chrome源代码目录结构简介(版本4.1.249.1059)
为了对庞大的源码项目进行分析,先对源码目录树作一个简单的介绍,粗略的了解一下各个模块的功能分布情况,chrome源代码src目录下的结构如下图: app:该目录下的代码主要是和各个操作系统平台相关的应 ...
- ISO 7064:1983.MOD11-2校验码计算法 : (身份证校验码-18位)
/* 假设某一17位数字是 17位数字 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 加权因子 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 计算17位 ...
- 20180725关于quartz的初识
请参照: https://www.ibm.com/developerworks/cn/opensource/os-cn-quartz/ https://www.w3cschool.cn/quartz_ ...
- 洛谷—— P2919 [USACO08NOV]守护农场Guarding the Farm
https://www.luogu.org/problem/show?pid=2919 题目描述 The farm has many hills upon which Farmer John woul ...
- token的生成规则
1.token生成规则要添加时间戳,timestamp,以便解析token时,可以根据判断时间超过30分钟不予处理.像session过期时间一样.
- Javascript: 动态显示进度条
{% if not config.exec_id == '' %} <br /> <div class="progress"> <div class= ...
- 拉普拉斯分布,高斯分布,L1 L2
之前那篇文章里提到,L1其实是加上服从拉普拉斯分布的先验,L2是加上服从高斯分布的先验: http://www.cnblogs.com/charlesblc/p/7977732.html 那么记住拉普 ...
- OCX 打包 CAB 与 JS 调用具体教程
近期在做一个 WEB 项目.须要调用 OCX 进行连接读卡器读卡.本来并不想用 OCX 技术.由于 ActiveX 技术是微软出品.这样就导致整个系统仅仅能使用 IE 浏览器(其它浏览器能够通 ...