大数据生态圈 —— 单节点伪分布式环境搭建

csdnhadoop 2020-03-28

本文参考

关于环境搭建,imooc上关于Hadoop、hbase、spark等课程上有很多环境搭建的例子,但是有些并没有说明为什么选择这个的版本,我们知道这些开源的技术发展很快,所以有必要搞清楚如何对它们进行版本选择

环境

centos7.7(主机名hadoop0001,用户名hadoop) + spark 2.2.0 + scala 2.11.8 + hbase1.3.6 + Hadoop 2.6.5 + zookeeper 3.4.14 + kafka 0.8.2.1 + flume 1.6.0,本文均为apache的安装包(更稳定的版本,可以到cloudera下载)

semantic versioning(语义版本号)

语义版本号由五个部分组成主版本号次版本号补丁号预发布版本号,例如现在spark的最新版本号为3.0.0 – preview2,其中3为主版本号,两个0依次为次版本号和补丁号,preview2为预发布版本号(另外的还有Alpha、Beta等),主版本号的递增往往不兼容旧版本;次版本号的递增,往往会有新增的功能,可能会带来API的变化,例如标记某个API为Deprecated,也不保证一定兼容旧版本;补丁号只负责修复bug,在主版本号和次版本号相同的情况下,补丁号版本越大,系统越可靠

Hadoop 2.6.5 环境搭建

下载地址:

http://archive.apache.org/dist/Hadoop/core/

为什么选择Hadoop2.6.5版本?

目前spark最新稳定的版本为2.4.5,仍由Hadoop 2.6 或 2.7 版本编译,spark2.2.0也是如此,可以到spark archieve下载页面验证,这里就选择Hadoop 2.6 最新的补丁号 2.6.5版本

大数据生态圈 —— 单节点伪分布式环境搭建

配置 core–default.xml

<configuration>
????<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop0001:9000</value>
</property>
????<property>
???? <name>hadoop.tmp.dir</name>
???? <value>/home/hadoop/app/tmp/hadoop</value>
????</property>
</configuration>

fs.defaultFS配置Hadoop的HDFS分布式文件系统的URI,这个URI也关系到后续Hbase的配置,在这里我的主机名为hadoop0001,端口号配置为9000

hadoop.tmp.dir配置Hadoop的缓存目录,默认存放在根目录的tmp文件夹下,路径和文件名为/tmp/hadoop-${user.name},因为在每次重启时/tmp目录内的内容会丢失,所以在这里我配置到了hadoop用户目录下自己创建的app/tmp/hadoop目录中

配置hdfs–site.xml

<configuration>
????<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

dfs.replication默认值为3,即文件默认有3份备份,在这里因为我们是单节点单台机器,所以更改为1

配置yarn-site.xml

<configuration>
????<property>
????????<name>yarn.nodemanager.aux-services</name>
????????<value>mapreduce_shuffle</value>
????</property>
????<property>
????????<name>yarn.resourcemanager.webapp.address</name>
????????<value>hadoop0001:8088</value>
</property>
</configuration>

yarn.nodemanager.aux-services配置nodemanager的服务名

yarn.resourcemanager.webapp.address配置resourcemanager的网页URI,若只指定主机名,端口将随机分配

配置mapred-site.xml

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

mapreduce.framework.name配置执行MapReduce作业的框架,一般使用yarn

The runtime framework for executing MapReduce jobs. Can be one of local, classic or yarn.

配置slaves

hadoop0001

配置本机的主机名即可

配置hadoop-env.sh

export JAVA_HOME=/home/hadoop/app/jdk1.8.0_241

指定java8的路径

ZooKeeper 3.4.14 环境搭建

下载地址:

http://zookeeper.apache.org/releases.html

为什么选择ZooKeeper3.4.14版本?

ZooKeeper3.4的第一个版本最早发布于2011年,最新的补丁号版本为2019年发布的3.4.14,可见维护时间之长,个人认为有较好的稳定性

配置conf/zoo.cfg

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just example sakes.
dataDir=/home/hadoop/app/zookeeper-3.4.14/zkData/zoo_1
# the port at which the clients will connect
clientPort=2181
server.1=hadoop0001:2889:3889
server.2=hadoop0001:2890:3890
server.3=hadoop0001:2891:3891

这里只列出了需要更改的配置项,将原文件复制三份,zoo_1.cfg,zoo_2.cfg,zoo_3.cfg,分别为他们配置dataDir和clientPort,最后三行的URI在三个文件中都相同

?

?

相关推荐