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

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

本文主要讲解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=$

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


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

posted @ 2017-09-06 14:30  aidodoo  阅读(754)  评论(0)    收藏  举报