本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容:
- flink集群的搭建
- elasticsearch集群的搭建
- alluxio集群的搭建
本文主要讲解hadoop
和hbase
的分布式搭建过程。
版本要求
- java版本:
1.8.0_181
- zookeeper版本:
zookeeper-3.4.10
- hadoop版本:
hadoop-2.7.6
- hbase版本:
hbase-1.2.6.1
前置条件
免密登录
见链接
java安装
见链接
zookeeper安装
见链接
服务器资源和分配
本文服务器列表如下:
192.168.220.200 bigdata1192.168.220.201 bigdata2192.168.220.202 bigdata3192.168.220.203 bigdata4192.168.220.204 bigdata5
其中选用bigdata1
和bigdata2
作为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-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 functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi# User specific environment and startup programsexport JAVA_HOME=/home/oracle/jdkexport SCALA_HOME=/home/oracle/scalaexport KAFKA_HOME=/home/oracle/kafkaexport SPARK_HOME=/home/oracle/sparkexport HADOOP_HOME=/home/oracle/hadoopexport HADOOP_PID_DIR=/home/oracle/hadoop/pidsexport 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/flinkexport PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$FLINK_HOME/bin:/sbin:$PATHexport 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
#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 URIha.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
,逗号分隔,别名可以随便命名,本文中为nn1
和nn2
,需要注意的是下面的rpc
和http
地址需要和别名保持一致。 dfs.namenode.rpc-address.cluster.nn1dfs.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
配置文件如下: bigdata3bigdata4bigdata5
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/oraclescp -r /home/oracle/hadoop oracle@bigdata3:/home/oraclescp -r /home/oracle/hadoop oracle@bigdata4:/home/oraclescp -r /home/oracle/hadoop oracle@bigdata5:/home/oracle
同步完成后,在所有节点(bigdata1-bigdata5
)上创建文件目录,主要是配置上对应的文件夹。
mkdir -p /home/oracle/bigdata/hadoop/tmpmkdir -p /home/oracle/bigdata/hadoop/journalmkdir -p /home/oracle/bigdata/hadoop/hdfs/namemkdir -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
验证
界面查看
hadoophttp://bigdata1:50070yarn 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
关于作者
爱编程、爱钻研、爱分享、爱生活 关注分布式、高并发、数据挖掘