配置 xsync 集群分发脚本
- 在一台虚拟机上搭建环境后使用分发脚本就可以将相同的环境搭建到其他虚拟机器上
1. 脚本实现
cd /usr/local/bin# 创建 xsyncvim xsync#在 xsync 文件中编写如下代码#1 获取输入参数个数,如果没有参数,直接退出 pcount=$#if((pcount==0)); thenecho no args;exit;fi#2 获取文件名称p1=$1 fname=`basename $p1` echo fname=$fname#3 获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir#4 获取当前用户名称user=`whoami`#5 循环#10.0.0 + host + 端口号for((host=13; host<15; host++)); doecho ------------------- hadoop$host --------------rsync -rvl $pdir/$fname $user@10.0.0$host:$pdirdone
配置集群
1. 集群部署规划
| 10.0.0.12 | 10.0.0.13 | 10.0.0.14 | |
|---|---|---|---|
| HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
2. 集群的配置
2.1 在 hadoop-node1 上配置核心配置文件 core-site.xml
vim /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml# 配置以下文件<configuration><!-- 指定 HDFS 中 NameNode 的地址 --><property><name>fs.defaultFS</name><value>hdfs://10.0.0.12:9000</value></property><!-- 指定 Hadoop 运行时产生文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp</value></property></configuration>
2.2 配置 hadoop-node1 上的 hadoop-env.sh 文件(HDFS 配置)
cd /opt/module/hadoop-2.7.2/etc/hadoopvim hadoop-env.sh# 修改如下内容# 路径设置为jdk的路径export JAVA_HOME=/opt/module/jdk1.8.0_271/
2.3 配置 hadoop-node1 上的 hdfs-site.xml 文件 (HDFS 配置)
cd /opt/module/hadoop-2.7.2/etc/hadoopvim hdfs-site.xml#在文件中修改如下内容<configuration><property><name>dfs.replication</name><value>3</value></property><!-- 指定 Hadoop 辅助名称节点主机配置 --><property><name>dfs.namenode.secondary.http-address</name><value>10.0.0.14:50090</value></property></configuration>
2.4 配置 yarn-env.sh (YARN 配置)
cd /opt/module/hadoop-2.7.2/etc/hadoopvim yarn-site.xml#增加如下内容<configuration><!-- Reducer 获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定 YARN 的 ResourceManager 的地址 --><property><name>yarn.resourcemanager.hostname</name><value>10.0.0.13</value></property></configuration>
2.5 配置 mapred-env.sh (MR 配置)
cd /opt/module/hadoop-2.7.2/etc/hadoopvim mapred-env.sh# 配置jdk路径export JAVA_HOME=/opt/module/jdk1.8.0_271/
2.6 配置 mapred-site.xml (MR 配置)
cd /opt/module/hadoop-2.7.2/etc/hadoopcp mapred-site.xml.template mapred-site.xmlvim mapred-site.xml# 修改如下内容<configuration><!-- 指定 MR 运行在 Yarn 上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
2.6 在集群上分发配置好的 hadoop 配置文件
xsync /opt/module/hadoop-2.7.2/
配置 SSH 无密登录
- 基本语法:ssh 另一台电脑的 ip 地址
1. 进入home目录下的 .ssh 目录
cd ~cd .ssh
2. 生成公钥和私钥
ssh-keygen -t rsa# 敲3次会车# 就会生成两个文件 id_rsa(私钥) 和 id_rsa.pub(公钥)
3. 将公钥拷贝到要免密登录的目标机器上
ssh-copy-id 10.0.0.12ssh-copy-id 10.0.0.13ssh-copy-id 10.0.0.14
- 还需要在 hadoop-node2 和 hadoop-node3 进行同样的操作
群起并测试集群
- 单结点启动只适合集群较少的情况
1. 配置 slaves 文件
cd /opt/module/hadoop-2.7.2/vim etc/hadoop/slaves# 配置需要启动的集群10.0.0.1210.0.0.1310.0.0.14
2. 将该文件同步到其他集群节点
cd /opt/module/hadoop-2.7.2/xsync etc/hadoop/slaves
3. 启动集群
3.1 如果是第一次启动需要格式化 NameNode
(注意格式化之前,一定要先停止上次 启动的所有 namenode 和 datanode 进程,然后再删除 data 和 log 数据)
hadoop namenode -format
3.2 启动 HDFS
# 在hadoop-node1上启动cd /opt/module/hadoop-2.7.2/start-dfs.sh
3.3 启动 Yarn
# 在hadoop-node2上启动cd /opt/module/hadoop-2.7.2/start-yarn.sh
3.4 查看启动结果
hadoop-node1
hadoop-node2
hadoop-node3
集群基本测试
- 启动服务后 (start-dfs.sh 和 start-yarn.sh)
1. 上传文件到服务器
hdfs dfs -mkdir -p /usr/etime/inputhdfs dfs -put wcount1.input /usr/etime/input# 由于我已经上传过一次所以文件以及存在
2. 在 chrome 上查看上传的文件
 <br />


