0


Hadoop伪分布式搭建

伪分布式模式也是在一台单机上运行,集群中的结点由一个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减压,配置环境变量,添加以下内容:

exportJAVA_HOME=/opt/jdk
exportHADOOP_HOME=/opt/hadoop
exportPATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH

刷新环境变量:

source /etc/profile

4、配置hadoop

1)hadoop-env.sh

exportJAVA_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
exportPATH=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/zkDatadataDir=/opt/zookeeper/zkData

(3) 配置 ZooKeeper 的日志路径

mkdir /opt/zookeeper/logs  

(2) 配置ZOO LOG DIR。

vi /opt/zookeeper/libexec/zkEny.sh  

#将ZOO_LOG_DIR的值修改为/opt/zookeeper/logsZOO_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中,保存退出。

exportHIVE_HOME=/opt/hive  
exportPATH=$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
exportHIVE_CONF_DIR=/opt/hive/conf 

3、配置MySQL

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

service mysqld start 

开启MySQL数据库。

mysql -u root -p

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

mysql>createdatabase hive CHARACTERSET latin1;

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

mysql>showdatabases;

退出 MySQL

mysql>exit;

4、启动

启动Hadoop后,在终端命令行界面,直接输入

hive

便可启动Hive命令行模式。

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

hive>showdatabases;

四、HBase安装

1. 配置环境变量

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

exportHBASE_HOME=/opt/hbase
exportPATH=.:$HBASE_HOME/bin:$PATH

2. 配置 hbase

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

hbase-env.sh

hbase-site.xml

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

exportJAVA_HOME=/opt/jdk
exportHBASE_CLASSPATH=/opt/hadoop/etc/hadoop
exportHBASE_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目录和节点。

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


本文转载自: https://blog.csdn.net/qq_47183158/article/details/140867582
版权归原作者 一枚码仔 所有, 如有侵权,请联系我们删除。

“Hadoop伪分布式搭建”的评论:

还没有评论