大数据平台搭建-hadoop集群的搭建

本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容:

  • 虚拟服务器安装
  • 基础环境安装
  • zookeeper集群的搭建
  • kafka集群的搭建
  • hadoop/hbase集群的搭建
  • spark集群的搭建
  • flink集群的搭建
  • elasticsearch集群的搭建
  • alluxio集群的搭建

本文主要讲解hadoophbase的分布式搭建过程。

版本要求

  • java版本:1.8.0_181
  • zookeeper版本:zookeeper-3.4.10
  • hadoop版本:hadoop-2.7.6
  • hbase版本:hbase-1.2.6.1

前置条件

免密登录

见链接免密登录

java安装

见链接java安装

zookeeper安装

见链接zookeeper安装

服务器资源和分配

本文服务器列表如下:

192.168.220.200  bigdata1
192.168.220.201  bigdata2
192.168.220.202  bigdata3
192.168.220.203  bigdata4
192.168.220.204  bigdata5

其中选用bigdata1bigdata2作为namenode,bigdata3、bigdat4、bigdata5作为dataNode,安装完成后各节点进程名如下:

主机名 ip地址 NameNode ResourceManager DFSZKFailoverController DataNode JournalNode NodeManager
bigdata1 192.168.220.200 Y Y Y N N N
bigdata2 192.168.220.201 Y Y Y N N N
bigdata3 192.168.220.202 N N N Y Y Y
bigdata4 192.168.220.203 N N N Y Y Y
bigdata5 192.168.220.204 N N N Y Y Y

下载解压安装

  • 下载
    从官网hadoop下载选择对应的版本,本文选择版本hadoop-2.7.6.tar.gz

  • 切换至主目录

      cd ~   
  • 解压

      tar -zxvf hadoop-2.7.6.tar.gz       
  • 重名名

      mv  hadoop-2.7.6  hadoop  

配置环境变量

编辑

vi ~/.bash_profile   

配置完成后,结果如下:
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export JAVA_HOME=/home/oracle/jdk
export SCALA_HOME=/home/oracle/scala
export KAFKA_HOME=/home/oracle/kafka
export SPARK_HOME=/home/oracle/spark
export HADOOP_HOME=/home/oracle/hadoop
export HADOOP_PID_DIR=/home/oracle/hadoop/pids
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export HADOOP_OPTS="$HADOOP_OPTS-Djava.library.path=$HADOOP_HOME/lib/native" 
export HADOOP_PREFIX=$HADOOP_HOME 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native 
export FLINK_HOME=/home/oracle/flink
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$FLINK_HOME/bin:/sbin:$PATH
export PATH JAVA_HOME SCALA_HOME  KAFKA_HOME SPARK_HOME  HADOOP_HOME  FLINK_HOME

hadoop配置更改

hadoop相关的配置都在$HADOOP_HOME/etc/hadoop目录下,本文中

$HADOOP_HOME=/home/oracle/hadoop

hadoop集群搭建主要涉及如下配置文件的变更

hadoop-env.sh

路径:/home/oracle/hadoop/etc/hadoop/hadoop-env.sh
hadoop-env.sh文件只需要改动JAVA_HOME为具体的路径即可

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/oracle/jdk

core-site.xml

路径:/home/oracle/hadoop/etc/hadoop/core-site.xml
fs.defaultFS:用于指定NameNode URI
ha.zookeeper.quorum:用于指定zookeeper的地址




   
        fs.defaultFS
        hdfs://cluster
    
        
        hadoop.tmp.dir
        /home/oracle/bigdata/hadoop/tmp
    

    
        ha.zookeeper.quorum
        192.168.220.200:2181,192.168.220.200:2181,192.168.220.200:2181
    
    
        ha.zookeeper.session-timeout.ms
        60000
     

hdfs-site.xml

路径:/home/oracle/hadoop/etc/hadoop/core-site.xml
dfs.nameservices:需要和core-site.xml中的fs.defaultFS保持一致
dfs.ha.namenodes.cluster:用于指定namenodes,逗号分隔,别名可以随便命名,本文中为nn1nn2,需要注意的是下面的rpchttp地址需要和别名保持一致。

dfs.namenode.rpc-address.cluster.nn1
dfs.namenode.http-address.cluster.nn1

dfs.namenode.shared.edits.dir: 指定NameNode的元数据在JournalNode上的存放位置
dfs.journalnode.edits.dir:指定JournalNode在本地磁盘存放数据的位置
dfs.namenode.name.dir:指定namenode名称空间的存储地址
dfs.datanode.data.dir:指定namenode名称空间的存储地址

hdfs-site.xml完整配置如下:




    
        dfs.nameservices
        cluster
    
    
        dfs.ha.namenodes.cluster
        nn1,nn2
    
    
        dfs.namenode.rpc-address.cluster.nn1
        bigdata1:9000
     
    
        dfs.namenode.http-address.cluster.nn1
        bigdata1:50070
     

    
        dfs.namenode.rpc-address.cluster.nn2
        bigdata2:9000
     
    
        dfs.namenode.http-address.cluster.nn2
        bigdata2:50070
     
    
        dfs.namenode.shared.edits.dir
        qjournal://bigdata3:8485;bigdata4:8485;bigdata5:8485/cluster
     
    
        dfs.journalnode.edits.dir
        /home/oracle/bigdata/hadoop/journal
     
    
        dfs.ha.automatic-failover.enabled
        true
         
    
        dfs.client.failover.proxy.provider.cluster
        org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
             
    
        dfs.ha.fencing.methods
        sshfence
     
        
        dfs.ha.fencing.ssh.private-key-files
        /home/oracle/.ssh/id_rsa
    
    
        dfs.ha.fencing.ssh.connect-timeout
        30000
    
    
        dfs.namenode.name.dir
        file:///home/oracle/bigdata/hadoop/hdfs/name
    
    
        dfs.datanode.data.dir
        file:///home/oracle/bigdata/hadoop/hdfs/data
     

slaves

路径:/home/oracle/hadoop/etc/hadoop/slaves
slavas配置文件如下:

bigdata3
bigdata4
bigdata5

mapred-site.xml

路径:/home/oracle/hadoop/etc/hadoop/mapred-site.xml
主要是指定资源调度框架为yarn




    
        mapreduce.framework.name
        yarn
    

yarn-site.xml

路径:/home/oracle/hadoop/etc/hadoop/yarn-site.xml
主要是设定yarn.resourcemanager的主机名。



    
        yarn.resourcemanager.hostname
        bigdata1
    
        
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

创建文件目录

bigdata1节点上的配置更改完成后,同步到其他节点。

scp -r /home/oracle/hadoop  oracle@bigdata2:/home/oracle
scp -r /home/oracle/hadoop  oracle@bigdata3:/home/oracle
scp -r /home/oracle/hadoop  oracle@bigdata4:/home/oracle
scp -r /home/oracle/hadoop  oracle@bigdata5:/home/oracle

同步完成后,在所有节点(bigdata1-bigdata5)上创建文件目录,主要是配置上对应的文件夹。

mkdir -p /home/oracle/bigdata/hadoop/tmp
mkdir -p /home/oracle/bigdata/hadoop/journal
mkdir -p /home/oracle/bigdata/hadoop/hdfs/name
mkdir -p /home/oracle/bigdata/hadoop/hdfs/data

初始化和启动

由于namenode采用了ha,初始化和单namenode的启动有点不一样,具体过程如下。

启动journalnode

bigdata1上执行,启动journalnode

/home/oracle/hadoop/sbin/hadoop-daemons.sh start journalnode

正常情况下,bigdata3、bigdata4、bigdata5会存在JournalNode的进程。

格式化zookeeper

bigdata1上执行格式化zookeeper

/home/oracle/hadoop/bin/hdfs zkfc -formatZK

正常情况下,zookeeper根目录下会创建hadoop相关的目录。

格式化hadoop

bigdata1上执行格式化hadoop namenode的命令

/home/oracle/hadoop/bin/hadoop namenode -format

主要是在服务器上初始化文件夹目录。

启动namenode

bigdata1上启动namenode

/home/oracle/hadoop/sbin/hadoop-daemon.sh start namenode

正常情况下bigdata1存在NameNode的进程

同步

bigdata2上同步namenode的相关信息并启动

/home/oracle/hadoop/bin/hdfs namenode -bootstrapStandby
/home/oracle/hadoop/sbin/hadoop-daemon.sh start namenode

正常情况下bigdata2也存在NameNode的进程

启动datanode和yarn

namenode启动完成后,其他进程的启动可以在bigdata1上分步执行

/home/oracle/hadoop/sbin/hadoop-daemons.sh start datanode
/home/oracle/hadoop/sbin/hadoop-daemons.sh start zkfc
/home/oracle/hadoop/sbin/start-yarn.sh

同时也可以直接执行,让hadoop脚本自动验证和启动相关进程。

/home/oracle/hadoop/sbin/start-dfs.sh
/home/oracle/hadoop/sbin/start-yarn.sh

验证

界面查看

hadoop
http://bigdata1:50070

yarn 
http://bigdata1:8088/cluster

hdfs文件系统

hdfs dfs -ls hdfs://

mapreduce测试

hadoop jar /home/oracle/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar pi 2 5

关于作者
爱编程、爱钻研、爱分享、爱生活
关注分布式、高并发、数据挖掘

转载于:https://www.cnblogs.com/aidodoo/p/7484627.html

你可能感兴趣的:(数据库,大数据,java)