Hadoop伪分布式搭建

avatar
作者
筋斗云
阅读量:0

伪分布式模式也是在一台单机上运行,集群中的结点由一个NameNode和若干个DataNode组,另有一个SecondaryNameNode作为NameNode的备份。一个机器上,既当namenode,又当datanode,或者说既是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。开启多个进程模拟完全分布式,但是并没有真正提高程序执行的效率。hadoop伪分布式集群以后只是一个空的hadoop,只有YARN,MapReduce,HDFS,而这些实际上我们一般不会直接使用,而是需要另外部署Hadoop的其他组件来辅助使用。下面开始搭建hadoop伪分布式。

一、hadoop安装

1、环境搭建

本文是基于CentOS 7 , jdk1.8 和Hadoop2.6.0环境搭建,准备好CentOS7 64位的镜像,然后在VMware上安装虚拟机

1)配置网络

修改/etc/sysconfig/network-scripts/ifcfg-ens33配置文件,在最后追加比如下面的配置:

BOOTPROTO="static"		#表示静态获取 ONBOOT="yes"			#开机自动静态获取 IPADDR=192.168.134.151  #ip地址 NETMASK=255.255.255.0	#子网掩码 GATEWAY=192.168.134.2	#网关 DNS1=8.8.8.8 			#DNS 

重启网络服务

  • centos6重启方法:service network restart
  • centos7重启方法:systemctl restart network

2)关闭防火墙

systemctl status firewalld.service	#查看防火墙状态  systemctl stop firewalld.service	#关闭防火墙:   systemctl disable firewalld.service	#禁用防火墙开机自启 

3)修改主机名

方法一:通过命令 hostnamectl set-hostname “主机名” 来修改主机名

方法二:编辑 /etc/ hostname 文件,删除原有内容,添加主机名:hadoop,保存退出

4)修改IP映射

使用 vi 编辑器打开 /etc/hosts 文件

vi /etc/hosts  

在文件添加内容,格式:IP地址 主机名(中间用空格分隔),例如:

192.168.242.130 hadoop  

设置完成后,重启网路服务: systemctl restart network,使用 ping 命令 ping 一下主机名,如果可以ping 通表示设置成功。

4)配置免密登录

Hadoop 中的NameNode和DataNode是通过ssh进行通信,所以先完成 SSH免密码登录。操作如下:

[hadoop@hadoop~]$ ssh-keygen -t rsa [hadoop@hadoop ~]$ ssh-copy-id localhost  

ssh hadoop 可以实现免密码登录到本机。验证方式如下:

2、配置环境变量

将jdk与hadoop减压,配置环境变量,添加以下内容:

export JAVA_HOME=/opt/jdk export HADOOP_HOME=/opt/hadoop export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH  

刷新环境变量:source /etc/profile

4、配置hadoop

1)hadoop-env.sh

export JAVA_HOME=/opt/jdk  

2)core-site.xml

 <property>     <!-- 配置NameNode的主机名和端口号 -->     <name>fs.defaultFS</name>     <value>hdfs://hadoop:8020</value>   </property>  

3)hdfs-site.xml(确保下面路径中的文件夹是存在的,没有的话先创建)

 <property>   <!-- 设置HDFS元数据文件存放路径 -->     <name>dfs.namenode.name.dir</name>     <value>/opt/hd_space/hdfs/name</value>   </property>      <property>   <!-- 设置HDFS数据文件存放路径 -->     <name>dfs.datanode.data.dir</name>     <value>/opt/hd_space/hdfs/data</value>   </property>    <property>   <!-- 设置HDFS数据文件副本数 -->     <name>dfs.replication</name>     <value>1</value>   </property>    <property>   <!-- 设置其他用户执行操作时会提醒没有权限 -->     <name>dfs.permissions</name>     <value>false</value>   </property>  

4)map-site.xml

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

5)yarn-site.xml

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

6)slaves

hadoop  

5、格式化 HDFS

首次使用Hadoop平台需要先格式化文件系统。进入到Hadoop的bin目录里执行:hdfs namenode -format

[hadoop@hadoop ~]$ cd /opt/hadoop/bin [hadoop@hadoop ~]$ ./hdfs namenode -format  

6、启动

进入到Hadoop安装目录下的sbin目录里,执行:start-all.sh

[hadoop@hadoop ~]$ cd /opt/Hadoop/sbin [hadoop@hadoop ~]$ start-all.sh  

Hadoop启动成功后,通常使用以下几种方式进行验证。

  1. 通过 jps 命令查看启动的进程,命令执行后,如果可以看到 NameNodeDataNodeSecondaryNameNodeResourceManagerNodeManager 进程,证明 Hadoop平台已经启动成功。

  2. 通过webui验证, HDFS的网址:http://hadoop:50070 ,YARN 的网址:http://hadoop:8088

start-all.sh是启动Hadoop所有进程,
单独启动进程的时候要先启动HDFS(start-dfs.sh),然后再启动YARN(start-yarn.sh)

二、zookeeper安装

1、解压安装

解压缩包并重命名,配置环境变量vi /etc/profile,添加如下:

export ZK HOME=/opt/zookeeper export PATH=SZK_HOME/bin:SPATH  

2、配置 ZooKeeper

ZooKeeper配置文件ZK_HOME/conf/目录下,默认是没有该文件,但是提供了zoo_sample.cfg模板文件。需要复制zoo.cfg文件。

cp zoo_sample.cfg zoo.cfg   

创建完成后,需要配置zoo.cfg 文件,主要配置 ZooKeeper 数据文件目录 dataDir.由于 dataDir的默认值是在/tmp目录下,系统重启后会清空数据,所以需要将文件中dataDir的值设置为自己的本地路径,步骤如下。
(1) 创建数据文件目录。

mkdir /opt/zookeepe/zkData   

(2) 配置 dataDir。

vi /opt/zookeeper/conf/zoo.cfg    #将dataDir的值修改为/opt/zookeeper/zkData dataDir=/opt/zookeeper/zkData 

(3) 配置 ZooKeeper 的日志路径

mkdir /opt/zookeeper/logs   

(2) 配置ZOO LOG DIR。

vi /opt/zookeeper/libexec/zkEny.sh    #将ZOO_LOG_DIR的值修改为/opt/zookeeper/logs ZOO_LOG_DIR=/opt/zookeeper/logs 

3、启动

ZooKeeper相关的命令都放在SZK_HOME/bin 目录下。

  1. 启动 zooKeeper
    启动:zkServer.sh start
    停止:zkServer.sh stop

  2. 查看 zooKeeper 运行模式:zkServer.sh status

  3. 验证

    • 通过jps命令查看进程,如果看到进程QuorumPeerMain,说明ZooKeeper启动成功。
    • 使用ZooKeeper客户端验证连接,zkCli.sh -server localhost:2181

三、hive安装

1、配置环境变量

解压hive重命名为hive配置环境变量 ,将hive的bin目录,添加到环境变量PATH中,保存退出。

export HIVE_HOME=/opt/hive   export PATH=$HIVE_HOME/bin:$PATH  

执行source命令,使Hive环境变量生效。

source /etc/profile  

由于hive 需要将元数据,存储到MySQL中。所以需要拷贝 mysql-connector-java-5.1.26-bin.jar 到 hive 的 lib 目录下。

cp /opt/software/mysql-connector-java-5.1.26-bin.jar /opt/hive/lib/  

2、配置 hive

1.配置Hive,切换到/opt/hive/conf目录下,创建hive的配置文件hive-site.xml。

cd /opt/hive/conf   touch hive-site.xml  

使用 vi 打开 hive-site.xml 文件。

vi hive-site.xml  

将下列配置添加到 hive-site.xml 中。

<configuration>      <property>          <name>javax.jdo.option.ConnectionURL</name>          <value>jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>       </property>       <property>          <name>javax.jdo.option.ConnectionDriverName</name>        <value>com.mysql.jdbc.Driver</value>       </property>       <property>   	   <name>javax.jdo.option.ConnectionUserName</name> 	   <value>root</value>       </property>       <property>   	   <name>javax.jdo.option.ConnectionPassword</name>        <value>123456</value>       </property>   </configuration>  

由于Hive的元数据会存储在Mysql数据库中,所以需要在Hive的配置文件中,指定mysql的相关信息。
javax.jdo.option.ConnectionURL:数据库链接字符串,此处的主机名要设置为自身系统的主机名。
javax.jdo.option.ConnectionDriverName:连接数据库的驱动包。
javax.jdo.option.ConnectionUserName:数据库用户名。
javax.jdo.option.ConnectionPassword:连接数据库的密码。

2.另外还需要需要修改 hive-env.sh 文件,添加Hadoop的环境配置。
先将 hive-env.sh.template 重命名为 hive-env.sh。

mv /opt/hive/conf/hive-env.sh.template  /opt/hive/conf/hive-env.sh  

在hive-env.sh文件里 追加 Hadoop的路径,以及 Hive配置文件的路径到文件中。

HADOOP_HOME=/opt/hadoop export HIVE_CONF_DIR=/opt/hive/conf  

3、配置MySQL

首先保证 MySQL 已经启动(用于存储Hive的元数据)执行启动命令

service mysqld start  

开启MySQL数据库。

mysql -u root -p  

创建名为 hive 的数据库,编码格式为 latin1,用于存储元数据。

mysql> create database hive CHARACTER SET latin1;  

查看数据库 hive是否创建成功。

mysql> show databases;  

退出 MySQL

mysql> exit;  

4、启动

启动Hadoop后,在终端命令行界面,直接输入hive便可启动Hive命令行模式。

输入HQL语句查询数据库,测试Hive是否可以正常使用。

hive> show databases;  

四、HBase安装

1. 配置环境变量

HBase安装包解压完成并配置好环境变量

export HBASE_HOME=/opt/hbase export PATH=.:$HBASE_HOME/bin:$PATH  

2. 配置 hbase

HBase的配置文件存放目录是在安装目录的 conf目录下。伪分布式环境搭建需要配置两个文件:hbase-env.shhbase-site.xml

(1)配置hbase-env.sh 文件
hbase-env.sh 文件用来配置全局 HBase集群系统的特性。在这个文件中,需要添加JDK的安装路径,同时还要配置ZooKeeper。
编辑hbase-env.sh并添加配置内容。

export JAVA_HOME=/opt/jdk export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop export HBASE_MANAGES_ZK=false  

配置说明如下:

exportJAVA_HOME=/opt/jdk:配置JDK的安装目录。

HBASE_CLASSPATH=/opt/hadoop/etc/hadoop:配置 Hadoop
Master配置文件的路径,也就是core-site.xml的路径。
exportHBASE_MANAGES_ZK=false:该属性可以设置true和false两个值,默认是true,表示使用 HBase自带的ZooKeeper,false表示使用外部安装的ZooKeeper。这里使用自己安装的ZooKeeper,所以设置为false。

(2)配置 hbase-site.xml 文件,编辑文件并添加配置内容:

<configuration>     <property>         <name>hbase.rootdir</name>         <value>hdfs://hadoop:8020/hbase</value>     </property>     <property>         <name>hbase.master</name>         <value>hadoop:60000</value>     </property>     <property>         <name>hbase.cluster.distributed</name>         <value>true</value>     </property>     <property>         <name>hbase.zookeeper.quorum</name>         <value>hadoop</value>     </property>     <property>         <name>hbase.zookeeper.property.dataDir</name>         <value>2181</value>     </property> </configuration>  

配置说明如下

hbase.rootdir;配置HBase数据存放目录,这里使用的是HDFS,注意这个值需泰与安装的 Hadoop 目录下etc/hadoop/core-site.xml文件中的fdefaultS属性值相对应。例如defaultFS的值设置为hdfs:/hadoop.8020/,那么hbase.rootdir 的值就需要设置为dfs://hadoop:8020/hbase. hbase.master:指定 HBase 的
.
HMaster 服务器的地址端口 这里配置 HMaster服务器为hadoop.端口为60000(默认端口)。
.
hbase.cluster.distributedi默认为false,表示单机运行,如果设置为true,表示在分布模式下运行。由于本节采用的是伪分布模式,所以配置为true
.
hbase.zookeeper.quorum:该属性配置的是 ZooKeeper集群各服务器位置,般为奇数个服务器。本节采用的是外部伪分布模式安装的ZooKeeper,所以配置的值是hadoop.如果有多个ZooKeeper节点,配置时要使用逗号进行分隔。
.
hbase.zookeeper.property.clientPort:该属性配置的是ZooKceper的端口号,配置自己搭建的ZooKeeper集群时,这个属性需要与ZooKeeper 安装目录下 conf/zoo.cfg文件中的clientPort属性值一致。

2. 启动

在HBase启动之前,需要先启动Hadoop以及ZooKeeper,启动顺序为先启动HDFS,再启动ZooKeeper,最后启动HBase;关闭的时候相反,需要先关闭HBase,再关闭ZooKeeper,最后关闭HDFS。

启动命令:SHBASE_HOME/bin/ start-hbase.sh
停止命令:SHBASE_HOME/bin/ stop-hbase.sh

HBase启动完成以后,使用以下几种方式进行验证。

  1. 通过jps命令查看启动的进程。
    如果看到启动的进程包括Hadoop中的NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 进程,以及 ZooKeeper 的QuorumPeerMain进程,同时多了HMaster、HRegionServer两个进程,说明HBase已经启动成功。

  2. 通过webui的方式验证。
    HBase启动后,可以通过webui的方式查看运行环境。网址为:http://hadoop:60010

  3. 查看Hadoop及ZooKeeper是否有/hbase目录和节点。

如有错误,欢迎私信纠正,谢谢支持!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!