快速搭建Hadoop及HBase分布式环境,大数据学习系列

作者: 单机闯关小游戏  发布:2019-09-07

4,时间配置

集群上的机器时间要同步,因为我这边的是虚拟机,所以就不用了。
设置集群时间同步可以使用NTP服务。
具体可以参考:

安装Zookeeper并配置集群

根据三台机器的ip配置hosts(配置一份然后scp到其他机器):

cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.3 namenode-1
192.168.8.4 datanode-1
192.168.8.5 datanode-2

解压缩zookeeper安装文件,修改配置项:

tar -zxvf zookeeper-3.4.9.tar.gz -C /home/hadoop

cd /home/hadoop/zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg

#修改dataDir的值
dataDir=/home/hadoop/zookeeper-3.4.9/tmp

#在文件后面添加(server后面的数字与myid保持一致)
server.1=namenode-1:2888:3888
server.2=datanode-1:2888:3888
server.3=datanode-2:2888:3888

创建tmp文件,并创建myid文件

mkdir /home/hadoop/zookeeper-3.4.9/tmp
echo 1 > /home/hadoop/zookeeper-3.4.9/tmp/myid

将配置好的zookeeper文件夹传到其他机器上

scp -r /home/hadoop/zookeeper-3.4.9 hadoop@xxxx:~

然后分别更改其他机器的myid文件,对应配置文件中server后面的数字。分别启动三台机器的zookeeper

cd /home/hadoop/apps/zookeeper-3.4.9/bin/
./zkServer.sh start

查看目前zookeeper状态,一个leader,两个follower,命令如下:

./zkServer.sh status

3.2.2 环境配置

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。编辑 /etc/profile 文件
输入:

vim /etc/profile

添加:

export HADOOP_HOME=/opt/hadoop/hadoop2.8 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

输入:

source  /etc/profile

使配置生效

基础环境准备

对三台机器创建新用户hadoop,并将其加入sudoers,并更改hostname

useradd hadoop
passwd hadoop

vi /etc/sudoers

hadoop ALL=(ALL)    ALL

vi /etc/hostname
#配置为 namenode-1/datanode-1/datanode-2

配置免密登录,配置一台机器,生产ssh密钥并配置本机免密登录,然后将整个.ssh文件夹传到其他机器上,更改authorized_keys的权限即可

ssh-keygen #可一直回车
#配置本机免密
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
#上传到其他机器
scp -r .ssh hadoop@xxxx:~
#登录到其他机器,设置authorized_keys权限
chmod 644 .ssh/authorized_keys

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。关闭防火墙并禁止开机启动

service iptables status #查看防火墙状态`  
service iptables stop #关闭防火墙`  
chkconfig iptables --list #查看防火墙开机启动状态`  
chkconfig iptables off #关闭防火墙开机启动`  
reboot # 重启`

3,防火墙关闭

说明:其实可以不关闭防火墙,进行权限设置,但是为了方便访问,于是便关闭了防火墙。每个机器都做!!!

关闭防火墙的命令
停止防火墙:
快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。service iptables stop
启动防火墙:
service iptables start
重启防火墙:
service iptables restart
永久关闭防火墙:
chkconfig iptables off

安装HBase

解压HBase安装包

tar hbase-1.2.4.tar.gz

配置HBase

hbase-env.sh

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

export HBASE_MANAGES_ZK=false

hbase-site.xml

<configuration>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://namenode-1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>namenode-1,datanode-1,datanode-2</value>
    </property>
</configuration>

regionservers

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。配置regionservers主机列表

datanode-1
datanode-2

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。将配置好的hbase目录scp到其他两天机器上。

启动停止HBase

HBase脚本位于${HBASE_HOME}/bin目录下。

# bin/start-hbase.sh

停止HBase

# bin/stop-hbase.sh

查看HBase状态

分别在Master节点和Slave节点上使用jps查看HBase相关进程是否正常运行

[hadoop@namenode-1 ~]$ jps
2302 ResourceManager
1942 NameNode
1730 QuorumPeerMain
3781 HMaster
4653 Jps
2127 SecondaryNameNode

[hadoop@datanode-1 ~]$ jps
2268 HRegionServer
1915 NodeManager
1804 DataNode
1662 QuorumPeerMain
2715 Jps

可进入HBase Web UI进行查看,默认端口为16010。

参考文章:

6.3.1 修改hbase-env.sh

编辑 hbase-env.sh 文件,添加以下配置

export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HBASE_HOME=/opt/hbase/hbase1.2
export HBASE_CLASSPATH=/opt/hadoop/hadoop2.8/etc/hadoop
export HBASE_PID_DIR=/root/hbase/pids
export HBASE_MANAGES_ZK=false

图片 1
说明:配置的路径以自己的为准。HBASE_MANAGES_ZK=false 是不启用HBase自带的Zookeeper集群。

安装Hadoop

解压Hadoop安装包

tar zxvf hadoop-2.7.3.tar.gz

配置各项配置文件

hadoop-env.sh

在hadoop-env.sh中配置JAVA_HOME环境变量

export JAVA_HOME="/usr/java/jdk1.8.0_121"

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。core-site.xml

用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode-1:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

hdfs-site.xml

HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/hadoopdata/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/hadoopdata/data</value>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>
</configuration>

快速搭建Hadoop及HBase分布式环境,大数据学习系列之七。mapred-site.xml
HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hmaster:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hmaster:19888</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>namenode-1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>namenode-1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>namenode-1:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>namenode-1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>namenode-1:8088</value>
    </property>
</configuration>

slaves

Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和NodeManager

datanode-1
datanode-2

将上面配置好的hadoop文件夹scp拷贝到其他两台机器上。

格式化HDFS存储

进入hadoop目录

# bin/hdfs namenode -format

在格式化过程中注意输出结果,成功后会有类似下面的输出:

17/05/17 16:18:16 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = namenode-1/192.168.8.3
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.7.3
......
17/05/17 16:18:17 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/name has been successfully formatted.
17/05/17 16:18:18 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
17/05/17 16:18:18 INFO util.ExitUtil: Exiting with status 0
17/05/17 16:18:18 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at namenode-1/192.168.8.3
************************************************************/

启动Hadoop服务

启动和停止脚本位于${HADOOP_HOME}下sbin目录

启动HDFS

# sbin/start-dfs.sh

启动Yarn

# sbin/start-yarn.sh

启动MapReduce JobHistory Server

# sbin/mr-jobhistory-daemon.sh start historyserver

验证服务是否正常运行

查看Master节点上服务:

[hadoop@namenode-1 hadoop]$ jps
4283 NameNode
4643 ResourceManager
4466 SecondaryNameNode
5259 Jps
5173 JobHistoryServer

查看Master节点上服务:

[hadoop@datanode-1 ~]$ jps
3116 Jps
2844 DataNode
2976 NodeManager

各服务Web UI默认端口

NameNode    50070
ResourceManager 8088
MapReduce JobHistory Server 19888

登录各服务Web界面查看服务运行状况。

停止Hadoop服务

停止HDFS

# sbin/stop-dfs.sh

停止Yarn

sbin/stop-yarn.sh

停止MapReduce JobHistory Server

# sbin/mr-jobhistory-daemon.sh stop historyserver

2,环境配置

编辑 /etc/profile 文件
输入:

export  ZK_HOME=/opt/zookeeper/zookeeper3.4 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH

输入:

source  /etc/profile

使配置生效

本文旨在快速搭建一套Hadoop及HBase的分布式环境,自己测试玩玩的话ok,如果真的要搭一套集群建议还是参考下ambari吧,目前正在摸索该项目中。下面先来看看怎么快速搭建一套分布式环境。

1,主机名更改以及主机和IP做相关映射

准备

  1. 三台虚拟机:1台作为NameNode和HMaster 两台作为DataNode和HRegionServer。同时三台都安装zookeeper。
  2. Hadoop-2.7.3,HBase-1.2.4 ,Zookeeper-3.4.9 , JDK1.8.0_121 安装包

1,文件准备

将下载下来的Zookeeper 的配置文件进行解压
在linux上输入:

 tar  -xvf   zookeeper-3.4.10.tar.gz

然后移动到/opt/zookeeper里面,没有就新建,然后将文件夹重命名为zookeeper3.4
输入

mv  zookeeper-3.4.10  /opt/zookeeper
mv  zookeeper-3.4.10  zookeeper3.4

安装JDK

mkdir /usr/java
tar zxvf xxjdk.tar.gz
mv jdk1.8.0_121/ /usr/java # 安装JDK

vi /etc/profile # 添加JAVA_HOME

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

source /etc/profile

2,Spark配置

1,JDK配置

说明: 一般CentOS自带了openjdk,但是hadoop集群使用的是oracle官方的jdk,所以先行卸载CentOS的jdk,然后再安装在oracle下载好的JDK。
首先输入 java -version
查看是否安装了JDK,如果安装了,但版本不适合的话,就卸载
图片 2

输入
rpm -qa | grep java
查看信息
图片 3
然后输入:
rpm -e --nodeps “你要卸载JDK的信息”
如: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
图片 4

确认没有了之后,解压下载下来的JDK

tar  -xvf   jdk-8u144-linux-x64.tar.gz

移动到opt/java文件夹中,没有就新建,然后将文件夹重命名为jdk1.8。

mv  jdk1.8.0_144 /opt/java
mv  jdk1.8.0_144  jdk1.8

然后编辑 profile 文件,添加如下配置
输入:

vim /etc/profile

添加:

export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

添加成功之后,输入

source /etc/profile
java  -version 

查看是否配置成功

七、Hive的环境安装配置

因为hive安装使用不需要集群,只需在一台机器上安装使用就可以了,之前在我的
大数据学习系列之四 ----- Hadoop Hive环境搭建图文详解(单机) 里面已经讲解的很详细,所以本文就不在描述了。

1. 更改主机名

说明:更改主机名是为了方便集群管理,不然每个机器的名称都叫localhost也不太好吧! 集群所有的机器都要做这个操作。

输入

 vim /etc/sysconfig/network 

将localhost.localdomain修改为你要更改的名称,每台名称都不一样
例如:

HOSTNAME=master

注: 名称更改了之后输入reboot重启才会生效。

6,整体环境变量设置

在 /etc/profile 这个配置文件要添加很多的环境配置,这里就先将整体的环境配置列举出来,各位在配置环境变量的以自己的为准!!! 可以先配置好环境变量之后,在传输到其他机器上去。
我这里先将这些配置都传输到其他的机器上了,并且都source了,所以下文中这个配置文件的操作实际是没做的。具体情况以自己的为准。

#Java Config
export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
# Scala Config
export SCALA_HOME=/opt/scala/scala2.12
# Spark Config
export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
# Zookeeper Config
export ZK_HOME=/opt/zookeeper/zookeeper3.4
# HBase Config
export HBASE_HOME=/opt/hbase/hbase1.2
# Hadoop Config 
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
# Hive Config
export HIVE_HOME=/opt/hive/hive2.1
export HIVE_CONF_DIR=${HIVE_HOME}/conf

export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:$PATH
3.5.2.4 修改mapred-site.xml

执行mapreduce的运行框架配置。ps:感觉这个配置没啥用,可能我没用mr吧。
如果没有 mapred-site.xml 该文件,就复制mapred-site.xml.template文件并重命名为mapred-site.xml。
修改这个新建的mapred-site.xml文件,在<configuration>节点内加入配置:

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

1,集群机器安装图

这次因为是集群搭建,所以在环境配置方面,我使用一张表格来大致描述。集群使用了3台机器,分别是master、slave1、slave2,通过名称命名就可以知道主从关系了。使用的操作系统是CentOS6.8,具体各个机器安装的配置如下表格:
图片 5

具体每个机器的配置就如上图了。需要补充的是,spark这块我没有使用官方自带的spark,而是使用的已经编译好的spark和hive的版本。因为后面在使用hive查询的时候,不想使用hive默认的mr,在hive2.x之后,官方也不建议了。因为使用mr效率实在太低,所以在后面我会将hive的引擎换成spark,而自己又不想重新编译spark ,所以就用这个版本了。如果各位想自行编译,或者出现更高的版本,就没必要一定按照上面的来。还有存放路径这块,没必要一定要使用上面的,可以先在机器上使用 df -h 查看相应的磁盘空间,再来进行部署。

4.1.1 文件准备

将下载好的Scala文件解压
输入

tar -xvf scala-2.12.2.tgz

然后移动到/opt/scala 里面
并且重命名为scala2.1
输入

mv  scala-2.12.2  /opt/scala
mv scala-2.12.2 scala2.12
4.2.3.1 修改 spark-env.sh

在conf目录下,修改spark-env.sh文件,如果没有 spark-env.sh 该文件,就复制spark-env.sh.template文件并重命名为spark-env.sh。
修改这个新建的spark-env.sh文件,加入配置:

export SCALA_HOME=/opt/scala/scala2.1    
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8    
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  
export SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
export SPARK_MASTER_IP=master    
export SPARK_EXECUTOR_MEMORY=4G

:上面的路径以自己的为准,SPARK_MASTER_IP为主机,SPARK_EXECUTOR_MEMORY为设置的运行内存。

八、其他

环境搭建参考:
环境配置参考的官方文档。

到此,本教程就结束了,谢谢阅读!

版权声明:
作者:虚无境
博客园出处:
CSDN出处:    
个人博客出处:
原创不易,转载请标明出处,谢谢!

3.2.3.2 修改 hadoop-env.sh

这个要做,不知道为什么相对路径不识别,于是就使用绝对路径。

export   JAVA_HOME=${JAVA_HOME}

修改为:

export   JAVA_HOME=/opt/java/jdk1.8

注:修改为自己JDK的路径
图片 6

5.3.1 创建文件和目录

在集群的服务器上都创建这些目录

mkdir   /opt/zookeeper/data  
mkdir   /opt/zookeeper/dataLog

并且在/opt/zookeeper/data目录下创建myid文件
输入:

touch  myid

创建成功之后,更改myid文件。
我这边为了方便,将master、slave1、slave2的myid文件内容改为1,2,3
图片 7

2,hadoop配置

1,Scala配置

和JDK配置几乎一样

一、环境选择

3.2.2.3 修改 hdfs-site.xml

下面的hdfs的存放路径,可以根据自己机器更改。
<configuration>节点内加入配置:

 <property>
    <name>dfs:replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/root/hadoop/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/root/hadoop/data</value>
  </property>    

图片 8

1,文件准备

将下载下来的HBase的配置文件进行解压
在linux上输入:

 tar  -xvf   hbase-1.2.6-bin.tar.gz

然后移动到/opt/hbase 文件夹里面,并重命名为 hbase1.2
输入

mv  hbase-1.2.6  /opt/hbase
mv  hbase1.2  /opt/hbase

目录

[TOC]

4,启动zookeeper

因为zookeeper是选举制,它的主从关系并不是像hadoop那样指定的,具体可以看官方的文档说明。
成功配置zookeeper之后,在每台机器上启动zookeeper。
切换到zookeeper目录下

cd /opt/zookeeper/zookeeper3.4/bin

输入:

zkServer.sh start

成功启动之后
查看状态输入:

 zkServer.sh status

可以查看各个机器上zookeeper的leader和follower
图片 9

六、HBase的环境配置

4.2.2,环境配置

编辑 /etc/profile 文件
输入:

export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

输入:

source  /etc/profile

使配置生效

本文由bg游戏资讯发布于单机闯关小游戏,转载请注明出处:快速搭建Hadoop及HBase分布式环境,大数据学习系列

关键词: ZooKeeper 大数据 hadoop hbase