大数据生态圈 —— 单节点伪分布式环境搭建
本文参考
关于环境搭建,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在三个文件中都相同
?
?