MapReduce将计算过程分为两个阶段:Map和Reduce
将任务分给所有的服务器(Map),然后所有的服务器将找到的结果整合(Reduce)
用于在服务器之间传输数据
scp -r 数据源的用户名@主机名:文件路径 目的地的用户名@主机名:文件路径
rsync -av 数据源的用户名@主机名:文件路径 目的地的用户名@主机名:文件路径
-a 归档拷贝
-v 显示复制过程
需求:循环复制文件到所有节点的相同目录下
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Argument!
exit;
fi
#2.遍历集群所有机器
for host in hadoop178 hadoop179 hadoop180
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 nor exits!
fi
done
done
# 1.找到隐藏的目录
cd /home/tws
ll -al #显示隐藏文件
cd .ssh/
# 2.生成公钥和私钥,此时.ssh/目录下会生成私钥id_rsa和公钥id_rsa.pub
ssh-keygen -t rsa
-rw-------. 1 tws tws 1675 10月 15 10:42 id_rsa
-rw-r--r--. 1 tws tws 395 10月 15 10:42 id_rsa.pub
-rw-r--r--. 1 tws tws 558 10月 15 09:19 known_hosts
# 3.将公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop179 # hadoop179为目标主机名
ssh hadoop179 # 此时就是免密了
文件名 | 作用 |
---|---|
known_hosts | 记录ssh访问过计算机的公钥(public key) |
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
authorized_keys | 存放授权过的无密登录服务器公钥 |
Hadoop178 | Hadoop179 | Hadoop180 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
Yarn | NodeManager | ResourceManager NodeManager |
NodeManager |
要获取的默认文件 | 文件存放在Hadoop的jar包中的位置 |
---|---|
[core-default.xml] | hadoop-common-3.13.jar/core-default.xml |
[hdfs-default.xml] | hadoop-hdfs-3.13.jar/hdfs-default.xml |
[yarn-default.xml] | hadoop-yarn-common-3.13.jar/yarn-default.xml |
[mapred-default.xml] | hadoop-mapreduce-cilent-core-3.13.jar/mapred-default.xml |
core-site.xml、hdfs-site.xml,yarn-site.xml,mapred-site.xml四个配置文件存放在$HADOOP_HMOE/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://hadoop178:8020value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/module/hadoop-3.1.3/datavalue>
property>
<property>
<name>hadoop.http.staticuser.username>
<value>atguiguvalue>
property>
configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-addressname>
<value>hadoop178:9870value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>hadoop180:9868value>
property>
configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>hadoop179value>
property>
<property>
<name>yarn.nodemanager.env-whitelistname>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOMEvalue>
property>
configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
sync /opt/module/hadoop-3.1.3/etc/hadoop/
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop178
hadoop179
hadoop180
xsync /opt/module/hadoop-3.1.3/etc
[tws@hadoop178 hadoop-3.1.3]$ hdfs namenode -format
[tws@hadoop178 hadoop-3.1.3]$ sbin/start-dfs.sh
[tws@hadoop179 hadoop-3.1.3]$ sbin/start-yarn.sh