ubantu20.04
部署模式本地模式
应用:一般用于做代码测试的特点:只有MapReduce,将代码放在一个独立的JVM进程中运行,测试代码的逻辑 伪分布式
应用:一般用于学习环境的测试特点:只有1台机器的分布式 完全分布式
应用:实际工作的分布式环境环境特点:多台机器构成的分布式
本文档采用伪分布式
部署实施依赖环境jdk8
下载压缩包
Hadoop-3.1.3
同级目录下见hadoop-3.1.3.tar.gz
xsync脚本编写#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in node1 node2 node3
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
# 给文件执行权限 chmod +x ./xsync # 查看环境变量路径 echo $PATH # 将xsync文件添加到一个PATH路径下或者将当前路径追加到环境变量中
上传压缩包rz到/export/software
注意/export/server要给当前用户下的属组权限
sudo chown bee:bee /export/server
解压
tar -zxvf hadoop-3.1.3.tar.gz -C /export/server
配置环境变量
# HADOOP_HOME export HADOOP_HOME=/export/server/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin配置ssh免密钥登录
在当前bee用户下:
三台机器添加机器的host并删除本来存在的本地host
三台机器同时操作
# 生产bee用户下的公钥和私钥 ssh-keygen -t rsa # 将公钥拷贝到目标机器 ssh-copy-id node1 ssh-copy-id node2 ssh-copy-id node3 # 测试登录各台机器需不需要密码 ssh node1 ssh node2 ssh node3集群配置
创建文件夹
mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/tempDatas mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/namenodeDatas mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/datanodeDatas mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/namenode/edits mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/secondarynamenode/name mkdir -p /export/server/hadoop-3.1.3/hadoopDatas/dfs/secordarynamenode/edits
配置集群
cd /export/server/hodoop-3.1.3/etc/hadoop
vim core-site.xml
fs.defaultFS hdfs://node3:8020 hadoop.tmp.dir /export/server/hadoop-3.1.3/hadoopDatas/tempDatas io.file.buffer.size 4096 fs.trash.interval 10080
# HDFS配置 vim hdfs-site.xml
yarn配置dfs.namenode.secondary.http-address node1:9868 dfs.namenode.http-address node3:9870 dfs.namenode.name.dir file:///export/server/hadoop-3.1.3/hadoopDatas/namenodeDatas dfs.datanode.data.dir file:///export/server/hadoop-3.1.3/hadoopDatas/datanodeDatas dfs.namenode.edits.dir file:///export/server/hadoop-3.1.3/hadoopDatas/namenode/edits dfs.namenode.checkpoint.dir file:///export/server/hadoop-3.1.3/hadoopDatas/secondarynamenode/name dfs.namenode.checkpoint.edits.dir file:///export/server/hadoop-3.1.3/hadoopDatas/dfs/secondarynamenode/edits dfs.replication 2 dfs.permissions false dfs.blocksize 134217728
vim yarn-site.xml
mapreduce配置yarn.resourcemanager.hostname node1 yarn.nodemanager.aux-services mapreduce_shuffle yarn.log-aggregation-enable true yarn.log.server.url http://node1:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800 yarn.nodemanager.resource.memory-mb 8192 yarn.scheduler.minimum-allocation-mb 2048 yarn.nodemanager.vmem-pmem-ratio 2.1
vim mapred-site.xml
mapreduce.framework.name yarn mapreduce.job.ubertask.enable true mapreduce.jobhistory.address node1:10020 mapreduce.jobhistory.webapp.address node1:19888
将修改好的文件夹分发
xsync /export/server/hadoop-3.1.3/etc/hadoop/
查看分发情况
cat /export/server/hadoop-3.1.3/etc/hadoop/core-site.xml
配置workers
vim /export/server/hadoop-3.1.3/etc/hadoop/workers # 文件内容,不允许有空格 node1 node2 node3启动集群
第一次启动时:需要格式化namenode
hdfs namenode -format
启动hdfs
# node1下启动 sbin/start-dfs.sh
启动yarn
# node3下启动 sbin/start-yarn.sh
在Windows下配置host后
可以在浏览器中输入:node1:9870 查看hdfs存储数据的信息,输入node3:8088 查看运行在yarn上的job信息
# 开启historyserver 历史服务器,日志聚集 cd /export/server/hadoop-3.1.3 mapred --daemon start historyserver # web端输入 http://node1:19888/
注意:如果多次格式化namenode,同一台机器的datanode会启不来
这时可以找到hdfs-site.xml文件,在文件中找到namenode和datanode的data路径去路径中找到VERSION文件,将namenode的CLUSTERID复制到datanode的VERSION文件中



