Hadoop开源+zookeeper+Hbase搭建整理

本文章主要介绍的是搭建hadoop开源集群组件

1Hadoop生态圈简介

我们通常说到的hadoop包括两部分,一是Hadoop核心技术(或者说狭义上的hadoop),对应为apache开源社区的一个项目,主要包括三部分内容:hdfs,mapreduce,yarn。其中hdfs用来存储海量数据,mapreduce用来对海量数据进行计算,yarn是一个通用的资源调度框架(是在hadoop2.0中产生的)。

另一部分指广义的,广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hbase、hive、spark、pig、zookeeper、kafka、flume、phoenix、sqoop等。

生态圈中的这些组件或产品相互之间会有依赖,但又各自独立。比如habse和kafka会依赖zookeeper,hive会依赖mapreduce。

需要说明的是,上图并没有包括当前生态圈中的所有组件。而且hadoop生态圈技术在不断的发展,会不断有新的组件出现,一些老的组件也可能被新的组件替代。需要持续关注Hadoop开源社区的技术发展才能跟得上变化。

若有任何疑问,请访问HADOOP官网(http://hadoop.apache.org/

2、基础环境准备

2.1、软件环境

本文将介绍 Redhat7.3开源搭建Hadoop集群,软件版本如下:

NO.

软件名称

版本号

1.

操作系统

Redhat7.3 64位

2.

JDK

8u131-linux-x64

3.

Hadoop

2.7.7

4.

Zookeeper

3.4.10

5.

Kafka

kafka_2.11-2.1.0

6.

Hbase

1.3.1

2.2、配置规划

      本次安装共 3 台服务器,服务器配置及用途如下:

NO.

机器名称

IP

配置

1.

dlcj02

192.168.1.142

48核/32G/5.5T

2.

dlcj03

192.168.1.143

48核/32G/5.5T

3.

dlcj04

192.168.1.144

48核/32G/5.5T

2.3   软件存放目录(所有节点)

为方便管理软件的安装及减少占用根目录下空间,在此对软件进行统一存放:

142/143/144节点都存放在相同的目录下:

以142节点为例,在目录(视个人情况而定)建立如下文件夹:

hadoop:存放hadoop安装文件

hbase:存放hbase安装文件

java:存放jdk1.8安装文件

kafka:存放kafka安装文件

zookeeper:存放zookeeper安装文件

2.4、设置映射关系(所有节点)

Redhat7修改指令为:vim /etc/hosts.此处将所有节点都加入进去。此处界面如下所示:

192.168.1.144  dlcj04

192.168.1.143  dlcj03

192.168.1..142  dlcj02

2.5、设置防火墙(所有节点)

关闭防火墙

     即时生效,重启后会复原:systemctl stop firewalld

     永久生效:systemctl disable firewalld

2.6、配置免密码登录 SSH(所有节点)

a.在root用户下输入ssh-keygen -t rsa 一路回车

b.秘钥生成后在~/.ssh/目录下,有两个文件id_rsa(私钥)和id_rsa.pub(公钥),将公钥复制到authorized_keys并赋予authorized_keys600权限(若没有该文件可以直接创建)。

c. 同理在dlcj03和dlcj04节点上生成秘钥,然后将秘钥复制到master节点上的authoized_keys。这个在复制时,直接使用cat命令将秘钥打印出来,然后直接将其复制到master节点上的authoized_keys即可。

d. 将dlcj02节点上的authoized_keys远程传输到dlcj03和dlcj04的~/.ssh/目录下。

e.检查是否免密登录(第一次登录会有提示)。

2.7、关闭 SELINUX(所有节点)

关闭selinux:

     # setenforce 0 (临时生效)

# vim /etc/selinux/config (永久生效)

: SELINUX=disabled

2.8、安装 oracle JDK1.8 (所有节点)

将jdk-8u131-linux-x64.tar.gz包拷贝到linux系统中,并将其解压到指定目录下。然后在/etc/profile目录下添加(在proifile内容最后添加即可):

export JAVA_HOME=  /usr/lcoal/java/jdk1.8

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar.

最后,执行命令source /etc/profile使配置文件生效,并查看java版本信息。

3、安装Hadoop

3.1 解压Hadoop到指定目录(142

  tar –zxvf hadoop-2.7.7.tar.gz  –C /ies/hadoop

3.2 创建HDFS存储目录(142 143 144)

 进入解压后的文件夹: cd /ies_data

 mkdir hdfs

 cd hdfs

 mkdir name data tmp

 ./hdfs/name    --存储namenode文件

 ./hdfs/data      --存储数据

 ./hdfs/tmp       --存储临时文件

3.3  配置环境变量(142

   vi /etc/profile
在末尾添加:

     export HADOOP_HOME= /ies/hadoop/hadoop-2.7.7

    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    保存后使新编辑的profile生效:

    source /etc/profile

3.4 修改hadoop配置文件(142)

需要配置的文件的位置为/ieslab/hadoop/hadoop-2.7.7/etc/hadoop,需要修改的有以下几个文件:

hadoop-env.sh

yarn-env.sh

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

slaves

     其中hadoop-env.shyarn-env.sh里面都要添加jdk的环境变量

  1. hadoop-env.sh

添加如下代码:export JAVA_HOME= /ies/java/jdk1.8 到如下位置:

b. yarn-env.sh

添加如下代码:export JAVA_HOME= /ies/java/jdk1.8 到如下位置:

c. core-site.xml

添加如下代码:

<configuration>

    <property>

       <name>fs.defaultFS</name> ------文件系统用hdfs

          <value>hdfs://dlcj02:9000</value>  --namenode地址

    </property>

    <property>

        <name>hadoop.tmp.dir</name> ------临时文件的存放目录

          <value>file:/ies_data/hdfs/tmp</value>

    </property>

</configuration>

d. hdfs-site.xml

添加如下代码:

<configuration>

        <property>

                <name>dfs.namenode.secondary.http-address</name>

                <value>dlcj02:9001</value>

        </property>

        <property>

                <name>dfs.namenode.name.dir</name> ----存储namenode的路径

                <value>file:/ies_data/hdfs/name</value>

        </property>

        <property>

                <name>dfs.datanode.data.dir</name> ---存储上传数据的路径

                <value>file:/ies_data/hdfs/data</value>

        </property>

        <property>

                <name>dfs.replication</name>

                <value>3</value> ----副本数

        </property>

        <property>

                <name>dfs.webhdfs.enabled</name>

                <value>true</value>

        </property>

        <property>

                <name>dfs.permissions</name>

                <value>false</value> --设置为false可以不用检查权限

        </property>

        <property>

                <name>dfs.web.ugi</name>

                <value>supergroup</value>

        </property>

</configuration>

e. mapred-site.xml

(注意要将mapred-site.xml.template重命名为 .xml的文件   Mv mapred-site.xml.template mapred-site.xml)

添加如下代码:

<configuration>

      <property>

      <!—默认为本地单机运行而不是集群模式运行,此处配置为yarn平台运行,yarn负责分配内存!-->

                <name>mapreduce.framework.name</name>

                <value>yarn</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.address</name>

                <value>dlcj02:10020</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.webapp.address</name>

                <value>dlcj02:19888</value>

        </property>

</configuration>

f. yarn-site.xml

添加如下代码:

<configuration>

  <property>

                <name>yarn.nodemanager.aux-services</name>

                <value>mapreduce_shuffle</value>

        </property>

        <property>

                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

                <value>org.apache.hadoop.mapred.ShuffleHandler</value>

        </property>

        <property>

                <name>yarn.resourcemanager.address</name>

                <value>dlcj02:8032</value>

        </property>

        <property>

                <name>yarn.resourcemanager.scheduler.address</name>

                <value>dlcj02:8030</value>

        </property>

        <property>

                <name>yarn.resourcemanager.resource-tracker.address</name>

                <value>dlcj02:8031</value>

        </property>

        <property>

                <name>yarn.resourcemanager.admin.address</name>

                <value>dlcj02:8033</value>

        </property>

        <property>

                <name>yarn.resourcemanager.webapp.address</name>

                <value>dlcj02:8088</value>

        </property>

</configuration>

g. slaves

将里面的localhost删掉,写入从节点主机名

dlcj03

dlcj04

3.5 拷贝hadoop文件至其他节点

   scp -r /ieslab/hadoop root@dlcj03:/ieslab       (143节点)

    scp -r /ieslab/hadoop root@dlcj04:/ieslab       (144节点)

3.6 拷贝profile文件至其他节点

scp /etc/profile  root@dlcj03:/etc            (143节点)

scp /etc/profile  root@dlcj04:/etc            (144节点)

在两个子节点上分别使新的profile生效:

source /etc/profile

3.7 格式化主节点的namenode (只在142执行)

进入hadoop目录(/ieslab/hadoop/hadoop-2.7.7)

然后执行:

./bin/hadoop namenode -format

新版本用下面的语句不用hadoop命令了

./bin/hdfs namenode -format

提示:successfully formatted表示格式化成功

3.8 启动hadoop

进入hadoop目录(/ieslab/hadoop/hadoop-2.7.7)执行

./sbin/start-all.sh

主节点(142)上jps进程如下:

NameNode

SecondaryNameNode

ResourceManager

每个子节点(143/144)上的jps进程如下:

DataNode

NodeManager

如果这样表示hadoop集群配置成功

4、安装Zookeeper和Kafka

   该部分的安装,请详细参考另一博客《Kafka集群搭建》,此处不在赘述.

5、安装Hbase

5.1、准备工作

首先要有一个zookeeper和hadoop集群的环境,并启动zookeeper和hadoop.

(查看进程,已经启动zookeeper和hadoop hdfs相关进程)

5.2、上传hbase安装包并解压

tar -zvxf hbase-1.3.1-bin.tar -C /ieslab/hbase

5.3、修改Hbase配置文件

a. 把hadoop的hdfs-site.xml和core-site.xml 复制到hbase/conf下

cp /ieslab/hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml  /ies/hbase/hbase-1.3.1/conf

cp /ieslab/hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml  /ies/hbase/hbase-1.3.1/conf

b. 修改hbase-env.sh

export JAVA_HOME= /ies/java/jdk1.8

//告诉hbase使用外部的zk

export HBASE_MANAGES_ZK=false

     c. 修改 hbase-site.xml

     添加以下代码:

     <configuration>

                   <!-- 指定hbase在HDFS上存储的路径 -->

        <property>

                <name>hbase.rootdir</name>

               <value>hdfs://dlcj02:9000/hbase</value>

        </property>

                   <!-- 指定hbase是分布式的 -->

        <property>

                <name>hbase.cluster.distributed</name>

                <value>true</value>

        </property>

                   <!-- 指定zk的地址,多个用“,”分割 -->

        <property>

                <name>hbase.zookeeper.quorum</name>

                 <value>dlcj02:2181,dlcj03:2181,dlcj04:2181</value>

        </property>

</configuration>

d. 修改 regionservers文件

添加一下内容:

dlcj02

dlcj03

dlcj04

e. 修改 backup-masters来指定备用的主节点(若该文件没有可自行创建即可)

添加一下内容:

dlcj03

f. 配置hbase环境变量

vim /etc/profile

添加以下代码:

export HBASE_HOME=/ies/hbase/hbase-1.3.1

export PATH=$HBASE_HOME/bin:$PATH

source /etc/profile使其立即生效

5.4、拷贝Hbase文件至其他节点

scp -r /ieshbase root@dlcj03:/ies       (143节点)

  scp -r /ies/hbase root@dlcj04:/ies       (144节点)

5.5、拷贝profile文件至其他节点

  scp /etc/profile  root@dlcj03:/etc            (143节点)

scp /etc/profile  root@dlcj04:/etc            (144节点)

在两个子节点上分别使新的profile生效:

source /etc/profile

5.6、启动Hbase进程

首先启动zk集群,启动hdfs集群,之前已启动。

启动hbase,在主节点(142)上运行:

start-hbase.sh

142节点jps进程:

143节点jps进程:

144节点jps进程:

若出现以上进程,则hbse集群成功搭建完毕。

5.7、查看Hbase管理界面

   在浏览器输入192.168.1.142:16010即可查看hbase界面信息,如下所示: 

备用的Hmaster信息截图如下所示:

若在搭建的过程中遇到问题,请咨询博主,谢谢大家捧场!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算平台,Zookeeper是一个用于分布式应用协调和服务发现的分布式系统。HBase是一个分布式的、可伸缩的、面向列存储的数据库。Hive是Hadoop生态系统中一个用于数据仓库的数据查询与分析工具,它使用HiveQL(HQL)进行查询。 安装这四个工具的步骤如下: 1. 安装Hadoop: - 下载并解压Hadoop的安装包。 - 配置Hadoop环境变量,将Hadoop的bin目录添加到系统的PATH中。 - 修改Hadoop的配置文件,包括core-site.xml、hdfs-site.xml和mapred-site.xml。 - 格式化Hadoop分布式文件系统(HDFS):hadoop namenode -format。 - 启动Hadoop集群:start-all.sh。 2. 安装Zookeeper: - 下载并解压Zookeeper的安装包。 - 创建Zookeeper的数据目录和日志目录。 - 复制Zookeeper的模板配置文件zoo_sample.cfg为zoo.cfg,并配置相关参数。 - 启动Zookeeper服务器:zkServer.sh start。 3. 安装HBase: - 下载并解压HBase的安装包。 - 配置HBase环境变量,将HBase的bin目录添加到系统的PATH中。 - 修改HBase的配置文件,包括hbase-site.xml和hbase-env.sh。 - 启动HBase集群:start-hbase.sh。 4. 安装Hive: - 下载并解压Hive的安装包。 - 配置Hive环境变量,将Hive的bin目录添加到系统的PATH中。 - 修改Hive的配置文件hive-site.xml,包括配置HDFS、ZookeeperHBase的连接参数。 - 启动Hive服务:hive --service metastore。 需要注意的是,这只是简单的安装步骤示例,具体的安装过程可能因操作系统、版本和其他因素而有所不同。在安装过程中,还需要根据实际需求进行一些额外的配置和参数调整。建议按照官方文档或相关教程进行详细的安装和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值