`
290434409
  • 浏览: 27132 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

快速搭建hadoop+hbase分布式集群

阅读更多

hadoop集群部署

1. 准备三台机器,如`10.8.177.23`,`10.8.177.24`,`10.8.177.25`

2. 修改主机名称,配置`hosts`文件(root用户下操作):

# 每台机器执行,我这里hd开头,后边的数字与机器ip的最后一个组一致
hostnamectl set-hostname hd-23 
hostnamectl set-hostname hd-23 --static

# 修改hosts文件,
vi /etc/hosts
#加入路由配置
10.8.177.23 hd-23
10.8.177.24 hd-24
10.8.177.25 hd-25

 

3. 每台机器上创建一个用户,如hadoop:

useradd -d /home/hadoop -m hadoop
# 最好创建一个用户,不要直接使用root进行操作

 4. 设置免密登录(==hadoop用户,下同==)

> 只需要设置master对于其他两台机器进行免密登录即可

# 1、 在Master机器上的主目录中生成ssh公钥
ssh-keygen -t rsa 
# 2、 在其余机器上主目录中创建.ssh目录(执行上边的命令也可以)
# 3、 将Master的公钥发送给其余两台服务器(需要输入免密)
scp id_rsa.pub hadoop@hd-24:/home/hadoop/.ssh/id_rsa.pub.23
scp id_rsa.pub hadoop@hd-25:/home/hadoop/.ssh/id_rsa.pub.23
# 4、 在.shh中创建authorized_keys文件,并授权
touch authorized_keys
chmod 644 authorized_keys
# 5、 将Master的公钥加入到授权文件中
echo id_rsa.pub.23 >> authorized_keys
# 以上,即可从23无密访问24,25,可以使用以下命令测试:
ssh hd-24

 5. 下载jdk、hadoop、hbase、zookeeper

> - jdk(也可以自行下载):`wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz`
> - zookeeper-3.4.8.tar.gz: `wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz`
> - hbase-1.2.2-bin.tar.gz:`wget http://mirrors.hust.edu.cn/apache/hbase/1.2.2/hbase-1.2.2-bin.tar.gz`
> - hadoop-2.7.2.tar.gz:`wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz`

 6. 解压以上文件

7. 配置环境变量

vi ~/.bashrc
JAVA_HOME=/home/hadoop/jdk1.8.0_77
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

HADOOP_HOME=/home/hadoop/hadoop-2.7.2
HBASE_HOME=/home/hadoop/hbase-1.2.2
PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HBASE_HOME/sbin
expor JAVA_HOME JRE_HOME CLASSPATH HADOOP_HOME HBASE_HOME
# 配置完成以后进行编译生效
source .bashrc

#发送给其余机器
scp .bashrc hadoop@hd-24:/home/hadoop/

 8. 配置hadoop

hadoop的配置文件位于`hadoop-2.7.2/etc/hadoop`下,需要配置`core-site.xml`,`hdfs-site.xml`,`yran-site.xml`,`mapred-site.xml`,`hadoop-env.sh`,`slaves`

 core-site.xml

<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://hd-23:6000</value>
  <final>true</final>
 </property>

 <property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/configsets/hadoop_tmp</value>
 </property>

 <property>
  <name>fs.checkpoint.period</name>
  <value>3600</value>
 </property>
 
 <property>
  <name>fs.checkpoint.size</name>
  <value>67108864</value>
 </property>

</configuration>

 hdfs-site.xml 

<configuration>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/configsets/metadata</value>
 </property>
 
 <property>
  <name>dfs.http.address</name>
  <value>hd-23:50070</value>
 </property>

 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>hd-23:50090</value>
 </property>

 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/configsets/data</value>
 </property>

 <property>
  <name>dfs.replication</name>
  <value>2</value>
 </property>
</configuration>

  yarn-site.xml

<configuration>

 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hd-23</value>
 </property>

 <property>
  <name>yarn.resourcemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>

 <property>
  <name>yarn.log.dir</name>
  <value>/home/hadoop/configsets/yarn_log</value>
 </property>
</configuration>

 mapred-site.xml,这个文件如果不存在的话`cp mapred-site.xml.template mapred-site.xml`一个

<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>

 <property>
  <name>mapreduce.cluster.temp.dir</name>
  <value>/home/hadoop/configsets/mr_tmp</value>
  <final>true</final>
 </property>

 <property>
  <name>mapreduce.jobhistory.address</name>
  <value>hd-23:6002</value>
 </property>

 <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>hd-23:6003</value>
 </property>
</configuration>

 hadoop-env.sh 将JAVA_HOME配置进去

#将下边这句话注释了,不好用,但按理说应该能用,结果就是不好用
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/jdk1.8.0_77
```

 slaves 文件中加入25,24

hd-24
hd-25

 9. 打包发送至其他机器

jdk、hadoop、hbase、zookeeper都可以采用这种方式配置后,进行发送,zookeeper稍有不同(详见后文)

tar cf hadoop-2.7.2.tar hadoop-2.7.2
scp hadoop-2.7.2.tar hadoop@hd-24:/home/hadoop
scp hadoop-2.7.2.tar hadoop@hd-25:/home/hadoop
ssh hd-24 
tar xf hadoop-2.7.2.tar
exit
ssh hd-25
tar xf hadoop-2.7.2.tar
exit

 10. 格式化名称节点

hadoop namenode -farmat

 11. 启停hadoop集群

# 启动
start-all.sh 

#停止 
stop-all.sh

 12. jsp查看

[hadoop@hd-23 ~]$ jps
12304 QuorumPeerMain
16208 ResourceManager
24322 Jps
15843 NameNode
16042 SecondaryNameNode

[root@hd-24 home]# jps
12082 QuorumPeerMain
15116 Jps
12924 DataNode
13036 NodeManager

[hadoop@hd-25 ~]$ jps
20130 DataNode
20242 NodeManager
19317 QuorumPeerMain
21755 Jps

 13. 浏览器查看

http://hd-23:50070/
http://hd-23:8088/

 

zookeeper集群部署

1. 配置,配置文件位于`/home/hadoop/zookeeper-3.4.8/conf`

 

cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/zookeeper-3.4.8/data
clientPort=2181

# 这里需要注意下server.{id}
server.23=10.8.177.23:2181:3887
server.24=10.8.177.24:2182:3888
server.25=10.8.177.25:2183:3889
 2. 数据目录

 

> zoo.cfg定义了dataDir,需要在每个服务器的创建此目录,并建立myid文件,内部存储zoo.cfg中server.{id}的id数值

 

mkdir /home/hadoop/zookeeper-3.4.8/data
cd /home/hadoop/zookeeper-3.4.8/data
vi myid
23

ssh hd-24
mkdir /home/hadoop/zookeeper-3.4.8/data
cd /home/hadoop/zookeeper-3.4.8/data
vi myid
24
exit

ssh hd-25
mkdir /home/hadoop/zookeeper-3.4.8/data
cd /home/hadoop/zookeeper-3.4.8/data
vi myid
25
exit
 3. 启停

 

 

cd /home/hadoop/zookeeper-3.4.8/bin
./zkServer.sh start 
 

 

HBase部署

1、 配置hbase-site.xml

 

<configuration>
 <property>
  <name>hbase.rootdir</name>
  <value>hdfs://hd-23:6000/hbase</value>
 </property>

 <property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
 </property>

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hd-23,hd-24,hd-25</value>
 </property>

 <property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/home/hadoop/zookeeper-3.4.8/data</value>
 </property>
</configuration>
 2、配置regionservers

 

 

vi regionservers
hd-23
hd-24
 3、 scp发送至其他机器

 

> 具体方式参见第一章第9节

4、 启停hbase

==启动hbase之前须先启动hdfs==

start-hbase.sh
stop-hbase.sh

 5、 jps查看

[hadoop@hd-23 bin]$ jps
12304 QuorumPeerMain
16208 ResourceManager
24592 Jps
22898 HMaster
15843 NameNode
23139 HRegionServer
16042 SecondaryNameNode

[root@hd-24 home]# jps
14512 HRegionServer
12082 QuorumPeerMain
15276 Jps
12924 DataNode
13036 NodeManager

 6、 浏览器查看

 

http://hd-23:16030/

结语

总结

通过以上步骤快速搭建了hadoop环境,在此期间,只有进行SSH免密登录时需要登录其他两台机器进行添加公钥文件,其余均通过一个SSH客户端窗口搞定(其实免密登录也可以)。linux发行版本为centos7,如果使用centos 6.x的版本,修改主机名称略有不同(`etc/sysconfig/network`,`hosts`,`reboot`)。

 

> - 猜想

 

> 搭建此环境的目的有两点:

  

>  1、 提供一个hadoop测试环境。

 

>  2、 为后续采用docker进行快速部署做预研。通过以上搭建过程可知,除了zookeeper的dataDir目录中myid文件内容不同之外,其余的内容均相同,而myid的内容可以通过读取zoo.cfg文件获取,故如果此时要做多机docker集群的话,只要解决了多机docker容器能互相访问(同个局域网),就可以采用同一个镜像进行快速部署。而使多机docker的容器能够访问,可以采用open vSwitch搭建一个局域网,这个也是下个实验的目标。

 

 

0
2
分享到:
评论
1 楼 gaojingsong 2016-07-26  
想象一下这种场景:我们使用1000台廉价的PC机做Hadoop集群,虽然Hadoop号称高可用,低成本;但是廉价机器谁能保证不出现问题呢,况且世界上本身就没有不出问题的电脑,于是今天坏掉一台机器,明天需要扩充增加一个节点增加容量,但是有一个问题SSH免密码登录的认证的公钥文件在各个电脑上不能共享,如果增加一个节点,新产生的id_rsa.pub  文件在各个PC的authorized_keys文件中不存在,因此各个PC拒绝新节点来访问自己,因为新节点没有报到,此时管理员疯了:要把新节点的id_rsa.pub 文件加入到各个PC的authorized_keys中,管理员的噩梦了

永久链接: http://gaojingsong.iteye.com/blog/2282300
预览文章: 【Hadoop环境搭建之SSH免密码登录高级篇】

相关推荐

    hadoop+hbase+zookeeper集群配置流程及文件

    集群配置完成后,通常还需要进行一些验证操作,如检查Hadoop的`dfs健康报告`、HBase的`master状态`以及Zookeeper的`集群状态`。同时,定期进行维护,如监控日志、性能调优和故障排查,是保持集群稳定运行的关键。 ...

    大数据Hadoop+HBase+Spark+Hive集群搭建教程(七月在线)1

    总的来说,搭建Hadoop、HBase、Spark和Hive集群涉及多个步骤,包括安装、配置、启动以及验证。整个过程需要对大数据处理原理有深入理解,并熟悉Linux系统的操作。完成后,这个集群可以处理大量数据,支持实时查询和...

    hadoop+hbase集群搭建 详细手册

    Hadoop+HBase集群搭建详细手册 本文将详细介绍如何搭建Hadoop+HBase集群,包括前提准备、机器集群结构分布、硬件环境、软件准备、操作步骤等。 一、前提准备 在搭建Hadoop+HBase集群之前,需要准备以下几个组件:...

    Hadoop2.2+Zookeeper3.4.5+HBase0.96集群环境搭建

    Hadoop2.2+Zookeeper3.4.5+HBase0.96集群环境搭建 Hadoop2.2+Zookeeper3.4.5+HBase0.96集群环境搭建是大数据处理和存储的重要组件,本文档将指导用户从零开始搭建一个完整的Hadoop2.2+Zookeeper3.4.5+HBase0.96集群...

    zookeeper+hadoop+hbase+hive(集成hbase)安装部署教程(超详细).docx

    jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    HBase是一个分布式的、面向列的开源数据库,运行在Hadoop之上,适合存储半结构化数据。安装HBase时,需要考虑集群的Zookeeper配置,因为Zookeeper用于协调HBase的各个组件。 Oozie是Hadoop的工作流调度器,用于管理...

    Windows7下eclipse调试Fedora虚拟机的hadoop+hbase伪分布式

    本文将详细介绍如何在有限的资源条件下,利用Windows7作为主机,通过VMware虚拟化技术运行Fedora操作系统,并在此环境中搭建Hadoop和HBase的伪分布式环境,最后在Windows下的Eclipse中配置相应的开发环境以进行远程...

    Hadoop+Hbase技术使用文档(整理过的)

    实现SSH免密码登录是Hadoop集群搭建中的重要步骤之一,具体操作包括生成密钥对、分发公钥等,这些细节可以在Google等搜索引擎中查找相关教程。 #### 五、Hadoop-单节点安装配置 文档中给出了Hadoop单节点安装的具体...

    hadoop+zookeeper+hbase集群搭建配置说明

    在大数据处理领域,Hadoop、Zookeeper和HBase是三个非常关键的组件,它们共同构建了一个高效、可扩展的数据仓库集群。以下是对这三个组件及其在集群搭建中的配置说明的详细阐述。 1. Hadoop:Hadoop是Apache软件...

    hadoop+HBase教程

    Hadoop和HBase是两种广泛应用于分布式存储架构的技术,本文将深入探讨Hadoop+HBase教程,教你如何搭建这种架构。 首先,Hadoop是一个由Apache软件基金会支持的开源分布式存储与计算框架,其发展起源于Apache Lucene...

    hadoop+hbase+hive集群搭建

    在构建Hadoop+HBase+Hive集群的过程中,涉及了多个关键步骤和技术要点,下面将对这些知识点进行详细的解析。 ### 1. 时间同步:NTP配置 在分布式系统中,时间的一致性至关重要,特别是在处理日志、事件排序以及...

    徐老师大数据培训Hadoop+HBase+ZooKeeper+Spark+Kafka+Scala+Ambari

    - **定义**:HBase是基于Hadoop的一个分布式、可扩展的列族数据库。它是Apache项目的顶级项目之一。 - **特点**: - 支持大规模数据的随机读写。 - 可以水平扩展。 - 提供了高并发读写的性能。 #### 2. **...

    基于hadoop+hbase+springboot实现分布式网盘系统.zip

    本项目“基于hadoop+hbase+springboot实现分布式网盘系统”旨在利用这些技术搭建一个高效、可扩展的存储解决方案。 **Hadoop** 是一个开源的分布式计算框架,主要由HDFS(Hadoop Distributed File System)和...

    Hadoop+Hbase搭建云存储总结

    通过以上对Hadoop+Hbase搭建云存储的关键知识点的梳理,我们可以清晰地了解到这套技术组合在实际应用中的优势和应用场景,以及如何通过合理的技术选型和部署策略,构建一套既能够高效存储海量数据又能快速访问的云...

    安装笔记:hadoop+hbase+sqoop2+phoenix+kerberos

    【描述】:在本文中,我们将探讨如何在两台云主机(实际环境可能需要三台或更多)上安装Hadoop、HBase、Sqoop2、Phoenix以及Kerberos的详细过程,涵盖从伪分布式模式到Kerberos安全认证的完整步骤。 【标签】:...

    第10章Hadoop与HBase分布式集群安装与配置.pdf

    HBase分布式集群的安装与配置主要包括以下几个步骤: 1. 安装HBase:根据HBase的版本要求,在所有Hadoop节点上下载并安装HBase的tar包。 2. 配置HBase:编辑HBase的配置文件,主要是修改hbase-site.xml文件,设置...

    Hadoop+Zookeeper+Hbase+Hive部署.doc

    在配置 Hadoop 伪分布式集群之前,我们需要修改 Hadoop 的配置文件,包括 core-site.xml、hdfs-site.xml 和 yarn-site.xml。 例如,在 core-site.xml 中,我们需要配置 fs.defaultFS 的值为 hdfs://siqi01:9000。 ...

    CentOS下Hadoop+Hbase+ZooKeeper分布式存储部署详解

    通过以上步骤,我们已经在CentOS 6.5 x86_64环境下成功搭建了Hadoop 2.2.0集群,并且集成了HBase和ZooKeeper,形成了一套完整的分布式存储和处理系统。这样的系统不仅能够处理海量数据,还具备高可用性和扩展性,...

    HADOOP+HBASE+HIVE整合工程和文档

    **HBase** 是基于Hadoop的分布式列式数据库,它提供实时读写能力,适用于半结构化或非结构化的海量数据存储。HBase的数据模型类似于Google的Bigtable,支持稀疏存储,能够快速查询大规模数据。 **Hive** 是一个基于...

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6 搭建分布式集群环境详解

    本教程将深入探讨如何利用Hadoop2.7.3、HBase1.2.5和ZooKeeper3.4.6搭建一个完整的分布式集群环境,以支持大规模数据存储和处理。 首先,我们来了解下这三个组件的基本概念: 1. **Hadoop**:Apache Hadoop是一个...

Global site tag (gtag.js) - Google Analytics