目录
公司大数据集群搭建总结,自己买3台阿里云服务进行搭建大数据集群搭建
2020年1月23 除夕前一天,全国肺炎571例,照常上班,照常打卡,程序员的路上,修炼内功,谢谢你的点赞鼓励
第一步: hadoop包下载
下载链接 http://archive.apache.org/dist/hadoop/core/ 下载2.7.5版本
第二步:上传apache hadoop包并解压
解压命令
cd /export/softwares
tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
第三步: 修改配置文件
1 修改core-site.xml
修改core-site.xml
第一台机器执行以下命令
cd /export/softwares
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://server02:8020</value>
<!-- 是hdfs端口,用于远程操作hdfs -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatas</value>
<!-- hadoop.tmp.dir 临时文件 服务端参数,修改需重启 -->
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
<!-- 在序列文件中使用的读/写缓冲区的大小。单位kb -->
</property>
<property>
<name>fs.trash.interval</name>
<value>10080</value>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
</property>
</configuration>
2 修改hdfs-site.xml
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>server02:50090</value>
<!-- node1:50090 SecondaryNameNode地址和端口-->
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>server02:50070</value>
<!--node01:50070 namenode端口地址 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value>
<!-- 建议不使用SNN功能,忽略此配置 -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
<!-- 数据块副本数。此值可以在创建文件时设定,客户端可以只有设定,也可以在命令行修改。不同文件可以有不同的副本数。默认值用于未指定时。 -->
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<!-- 是否在HDFS中开启权限检查. -->
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
3 修改hadoop-env.sh
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_161
4 修改mapred-site.xml
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>server02:10020</value>
<!-- MapReduce JobHistory服务器IPC主机:端口 -->
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>server02:19888</value>
<!-- MapReduce JobHistory Server Web UI主机:端口-->
</property>
</configuration>
5 修改yarn-site.xml
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server02</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>server02:8050</value>
<!-- 资源调度器对应的web界面端口 可不用配置,默认是8088-->
</property>
</configuration>
6 修改mapred-env.sh
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim mapred-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_161
7 修改slaves
修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim slaves
server01
server02
server03
8 分发hadoop-2.7.5
第一台机器执行以下命令
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/edits
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/name
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits
cd /export/servers/
scp -r hadoop-2.7.5 server01:$PWD
scp -r hadoop-2.7.5 server03:$PWD
第四步: 配置hadoop的环境变量
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
vim /etc/profile
export HADOOP_HOME=/export/servers/hadoop-2.7.5
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
第五步: 启动集群
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。 注意: 首次启动 HDFS 时,必须对
其进行格式化操作。 本质上是一些清理和 准备工作,因为此时的 HDFS 在物理上还是不存在
的。
hdfs namenode -format 或者 hadoop namenode –format
准备启动
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
第六步:三个端口查看界面
我是以server02为master主机
界面
http://server02:50070/explorer.html#/ 查看hdfs界面
http://server02:8050/cluster 查看yarn集群界面(默认端口号是8088)
http://server02:19888/jobhistory 查看历史完成的任务
端口占用说明
hdfs://server02:8020 hdfs文件操作链接
hdfs://server02:50090 SecondaryNameNode地址和端口
第七步:问题总结(可能云服务问题)
java.net.BindException: Port in use: server02:50070
Caused by: java.net.BindException: Cannot assign requested address
namenode不能启动,datanode能正常启动
查看hadoop安装目录log文件夹下的namenode启动日志提示:
最开始本以为是端口占用的问题,于是乎去百度了很多,大部分都是说使用:
lsof -i:50070
来查看占用端口的进程,然后kill掉。
但是使用后却没有发现占用端口的进程。。。
然后我又以为是配置文件的问题,各种改动还是不行,最后终于找到了问题所在:
- 首先看/etc/hosts这个文件:
- hosts里面的master使用的是公网ip,于是我试了试将其换成内网ip:
- 首先使用ifconfig查看内网ip
- 只把master自己的ip映射改成内网映射------->(172.31.83.102 server02)
最后启动成功