Hadoop+HBase+ZooKeeper分布式集群环境搭建

一、环境说明

集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:

HostnameIPUserPassword
master192.168.59.133hadoop123456
slave1192.168.59.134hadoop123456
slave2192.168.59.135hadoop123456

三个节点均使用CentOS 6.5系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。

注:可以通过编辑/etc/sysconfig/network文件来修改 hostname 。


二、准备工作

2.1 安装JDK

在三台机器上配置JDK环境,下载 jdk-8u51-linux-x64.rpm 文件直接安装:

$ rpm -ivh jdk-8u51-linux-x64.rpm

修改配置文件 vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_51
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后重新加载配置文件使之生效:

$ source /etc/profile 

2.2 添加Hosts映射关系

分别在三个节点上添加hosts映射关系:

$ vim /etc/hosts

添加的内容如下:

192.168.59.133 master
192.168.59.134 slave1
192.168.59.135 slave2

2.3 集群之间SSH无密码登陆

CentOS默认安装了ssh,如果没有你需要先安装ssh 。

集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。

2.3.1 设置master无密码自登陆

主要有三步:①生成公钥和私钥、②导入公钥到认证文件、③更改权限

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

测试,第一次登录可能需要yes确认,之后就可以直接登录了:

$ ssh localhost
Last login: Sat Jul 18 22:57:44 2015 from localhost

对于 slave1 和 slave2,进行无密码自登陆设置,操作同上。

2.3.2 设置主机->从机的无密码登录

$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave1 'cat - >> ~/.ssh/authorized_keys'
$ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave2 'cat - >> ~/.ssh/authorized_keys'

测试:

[hadoop@master ~]$ ssh hadoop@slave1
Last login: Sat Jul 18 23:25:41 2015 from master

[hadoop@master ~]$ ssh hadoop@slave2
Last login: Sat Jul 18 23:25:14 2015 from master

2.3.3 设置从机->主机的无密码登录

分别在slave1、slave2上执行:

$ cat ~/.ssh/id_rsa.pub | ssh hadoop@master 'cat - >> ~/.ssh/authorized_keys'


三、Hadoop集群安装配置

这里会将hadoop、hbase、zookeeper的安装包都解压到/home/hadoop/个人主文件夹下,并重命名为hadoop、hbase、zookeeper。

3.1 修改hadoop配置

配置文件都在~/hadoop/etc/目录下

3.1.1 core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

3.1.2 hadoop-env.sh

添加JDK路径:

export JAVA_HOME=/usr/java/jdk1.8.0_51

3.1.3 hdfs-site.xml

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/home/hadoop/hadoop/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/home/hadoop/hadoop/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

3.1.4 mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    </property>
</configuration>

3.1.5 修改masters文件

master

3.1.6 修改slaves文件

slave1
slave2

注意:三台机器上都进行相同的配置,都放在相同的路径下。

使用scp命令进行从本地到远程(或远程到本地)的轻松文件传输操作:

scp -r /home/hadoop/hadoop     slave1:/home/hadoop
scp -r /home/hadoop/hadoop     slave2:/home/hadoop

3.2 启动hadoop集群

进入master的~/hadoop目录,执行以下操作:

$ bin/hadoop namenode -format

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。

然后启动hadoop:

$ sbin/start-all.sh

通过jps命令能看到除jps外有5个进程:

$ jps
4866 NodeManager
4370 NameNode
4899 Jps
4648 SecondaryNameNode
4779 ResourceManager
4460 DataNode


四、ZooKeeper集群安装配置

解压zookeeper-3.3.2.tar.gz并重命名为zookeeper。

4.1 修改配置文件zoo.cfg

进入~/zookeeper/conf目录:

$ cp zoo_sample.cfg zoo.cfg

拷贝zoo_sample.cfg文件为zoo.cfg,并编辑如下:

dataDir=/home/hadoop/zookeeper/data

server.1=192.168.59.133:2888:3888
server.2=192.168.59.134:2888:3888
server.3=192.168.59.135:2888:3888

4.2 新建并编辑myid文件

在dataDir目录下新建myid文件,输入一个数字(master为1,slave1为2,slave2为3):

$ mkdir /home/hadoop/zookeeper/data
$ echo "1" > /home/hadoop/zookeeper/data/myid  

同样使用scp命令进行远程复制,只不过要修改每个节点上myid文件中的数字。

4.3 启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本:

$ ~/zookeeper/bin/zkServer.sh start
  1. 如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。

  2. 关闭防火墙。在hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:

    • 使用API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host
    • 使用API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx
  3. 使用root权限登陆后,输入关闭防火墙命令:

    $ /etc/init.d/iptables stop
    $ service iptables stop
  4. 修改禁用selinux: /etc/selinux/config文件,设置"SELINUX=disabled"


五、HBase集群安装配置

解压hbase-1.0.1.1-bin.tar.gz并重命名为hbase。

5.1 hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_51
export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop/
export HBASE_MANAGES_ZK=false

5.2 hbase-site.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:9000/hbase</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>master</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
    <property>
        <name>zookeeper.session.timeout</name>
        <value>60000000</value>
    </property>
    <property>
        <name>dfs.support.append</name>
        <value>true</value>
    </property>
</configuration>

5.3 更改 regionservers

在 regionservers 文件中添加slave列表:

slave1
slave2

5.4 分发并同步安装包

将整个hbase安装目录都拷贝到所有slave服务器:

$ scp -r /home/hadoop/hbase  slave1:/home/hadoop
$ scp -r /home/hadoop/hbase  slave2:/home/hadoop


六、启动集群

1. 启动ZooKeeper

~/zookeeper/bin/zkServer.sh start

2. 启动hadoop

~/hadoop/sbin/start-all.sh

3. 启动hbase

~/hbase/bin/start-base.sh

4. 启动后,master上进程和slave进程列表

[hadoop@master ~]$ jps
6225 Jps
2897 SecondaryNameNode   # hadoop进程
2710 NameNode            # hadoop master进程
3035 ResourceManager     # hadoop进程
5471 HMaster             # hbase master进程
2543 QuorumPeerMain      # zookeeper进程
[hadoop@slave1 ~]$ jps
4689 Jps
2533 QuorumPeerMain       # zookeeper进程
2589 DataNode             # hadoop slave进程
4143 HRegionServer        # hbase slave进程

5. 进入hbase shell进行验证

[hadoop@master ~]$ hbase/bin/hbase shell
2015-07-20 00:42:11,725 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015

hbase(main):001:0> list
TABLE                                                                                
0 row(s) in 1.6950 seconds

=> []
hbase(main):002:0> status
2 servers, 0 dead, 1.0000 average load

hbase(main):003:0> 







个人站点:http://songlee24.github.com


参考:
[1] www.smalldeng.blog.51cto.com/1038075/1329290
[2] www.marysee.blog.51cto.com/1000292/629405

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
### 回答1: 搭建大数据环境需要以下步骤: 1. 安装HadoopHadoop是一个分布式计算框架,用于处理大规模数据集。安装Hadoop需要下载Hadoop软件包,并进行配置。 2. 安装Hive:Hive是一个数据仓库工具,用于在Hadoop上进行数据分析和查询。安装Hive需要下载Hive软件包,并进行配置。 3. 安装Spark:Spark是一个快速的大数据处理框架,用于在Hadoop上进行数据处理和分析。安装Spark需要下载Spark软件包,并进行配置。 4. 安装ZookeeperZookeeper是一个分布式协调服务,用于管理Hadoop集群中的节点。安装Zookeeper需要下载Zookeeper软件包,并进行配置。 5. 安装HBaseHBase是一个分布式的NoSQL数据库,用于存储和管理大规模数据。安装HBase需要下载HBase软件包,并进行配置。 以上是搭建大数据环境的基本步骤,需要根据实际情况进行具体的配置和调整。 ### 回答2: 随着互联网技术的不断发展,越来越多的数据被产生和需要处理,因此,搭建大数据环境成为了一项非常重要的工作。目前,Hadoop、Hive、Spark、ZookeeperHbase等大数据技术成为了最为重要的技术。下面,我们来详细介绍这些技术的大数据环境搭建。 1. Hadoop的安装 Hadoop是一个开源的分布式文件系统和数据处理框架,可以处理大规模数据的存储和处理。Hadoop的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hadoop的二进制包; 3)解压Hadoop的二进制包,并配置环境变量; 4)修改Hadoop的相关配置文件; 5)启动Hadoop。 2. Hive的安装 Hive是一个基于Hadoop的数据仓库工具,提供了类似于SQL的查询语言,可以用于大规模数据仓库的创建和查询。Hive的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hive的二进制包; 3)解压Hive的二进制包,并配置环境变量; 4)修改Hive的相关配置文件; 5)启动Hive。 3. Spark的安装 Spark是一个快速而通用的大数据处理引擎,可以执行大规模数据处理任务,并支持分布式计算。Spark的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Spark的二进制包; 3)解压Spark的二进制包,并配置环境变量; 4)修改Spark的相关配置文件; 5)启动Spark。 4. Zookeeper的安装 Zookeeper是一个高性能分布式应用程序协调服务,可以用于协调和同步大规模集群中的应用程序。Zookeeper的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Zookeeper的二进制包; 3)解压Zookeeper的二进制包,并配置环境变量; 4)修改Zookeeper的相关配置文件; 5)启动Zookeeper。 5. Hbase的安装 Hbase是一个基于Hadoop分布式非关系型数据库,提供了类似于Google的Bigtable的基于列的存储方式。Hbase的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hbase的二进制包; 3)解压Hbase的二进制包,并配置环境变量; 4)修改Hbase的相关配置文件; 5)启动Hbase。 在完成上述大数据技术的安装后,我们还需在使用时将它们进行整合,以达到更加高效的数据处理和管理。这些技术之间的整合一般都需要配置相关的XML文件和环境变量,具体操作可根据实际情况去修改和设置。小编建议,初学者应该多参考一些大佬的经验,互联网上有很多大牛分享了上述技术的搭建方法,读者可以多花些时间去学习和了解。 ### 回答3: 随着现代信息技术的不断发展,大数据的应用越来越广泛。作为目前大数据环境的主流组件,Hadoop、Hive、Spark、ZookeeperHBase都是大数据领域的重要工具。为了能够更好地进行大数据分析和处理,需要对这些工具进行合理的搭建和配置。 1. Hadoop搭建 Hadoop是一个分布式存储和计算的框架,搭建Hadoop需要安装JAVA环境,并下载相应的Hadoop压缩包。将Hadoop解压到本地目录,在安装文件中设置JAVA_HOME和HADOOP_HOME环境变量。启动Hadoop需要先启动NameNode和DataNode,然后启动JobTracker和TaskTracker。搭建Hadoop后,还需要使用HDFS命令行或Hadoop API进行文件的上传、下载、删除等基本操作。 2. Hive的搭建 Hive是一个基于Hadoop的数据仓库工具,可以将结构化数据映射到Hadoop的存储系统中。Hive搭建需要先安装JAVA环境和Hadoop,然后下载并解压Hive压缩包。将Hive和Hadoop的配置文件进行关联,启动Hive服务时需要启动Metastore和HiveServer2服务。搭建完成后,可以使用HiveQL语句进行数据的查询、插入、删除等操作。 3. Spark的搭建 Spark是一个快速通用的大数据计算引擎,可用于数据分析、机器学习等场景。Spark搭建需要安装JAVA和Scala等相关组件,并下载Spark压缩包。将Spark解压到本地目录后,设置SPARK_HOME环境变量以及Hadoop和YARN的配置相关参数。启动Spark服务时需要先启动Master和Slave节点。搭建完成后,可以使用Spark Shell和Spark SQL进行数据处理和分析。 4. Zookeeper搭建 Zookeeper是一个分布式的协调服务,可以用于管理各类分布式应用程序的配置和信息。将Zookeeper下载并解压到本地目录,设置ZOOKEEPER_HOME环境变量,并修改Zoo.cfg配置文件中的端口号、数据目录等相关参数。启动Zookeeper服务时需要先启动一个Leader和多个Follower。搭建完成后,可以使用ZooKeeper API对Zookeeper的节点进行管理和配置。 5. HBase搭建 HBase是一个列存储数据库,可以在Hadoop上提供实时读写服务。HBase搭建需要安装JAVA环境、HadoopZookeeper,并下载HBase压缩包。将HBase解压到本地目录,并进行相关配置,比如修改HBase-site.xml配置文件的参数、设置HBASE_HOME环境变量等。启动HBase服务前需要先启动Zookeeper服务。搭建完成后,可以使用Java API或HBase Shell进行数据的读写操作。 综上所述,搭建大数据环境需要先安装基础的JAVA环境和相关组件,然后根据各个工具的安装包进行相应的配置和启动,最后进行测试和调试。在搭建过程中需要注意版本、路径等问题,避免出现配置错误。经过搭建和调试后,可以使用这些工具进行海量数据的分析和处理,为企业的决策提供有力的支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值