wordpress播放器代码,廊坊seo优化,简单的网站制作代码,十大免费下载软件目录 一、YARN 单机环境部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop配置 hadoop-env.sh配置 core-site.xml配置 hdfs-site.xml配置 yarn-site.xml配置 mapred-site.xml 6. 格式化 HDFS7. 启动 Hadoop 和 YARN8. 验证 YARN9. 运行一个简单的… 目录 一、YARN 单机环境部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop配置 hadoop-env.sh配置 core-site.xml配置 hdfs-site.xml配置 yarn-site.xml配置 mapred-site.xml 6. 格式化 HDFS7. 启动 Hadoop 和 YARN8. 验证 YARN9. 运行一个简单的 YARN 应用注意事项 二、YARN 集群环境部署1. 环境准备2. 配置 SSH 免密码登录3. 安装 Hadoop4. 配置 Hadoop 集群配置 hadoop-env.sh配置 core-site.xml配置 hdfs-site.xml配置 yarn-site.xml配置 mapred-site.xml配置 slaves 文件 5. 格式化 HDFS6. 启动 Hadoop 和 YARN7. 验证集群状态注意事项 三、YARN 使用案例Word Count使用 Java 实现 YARN Word Count1. 编写 Java 程序2. 编译并打包 Java 程序3. 运行 Java 程序4. 查看结果 使用 Python 实现 YARN Word Count1. 编写 Python 程序2. 运行 Python 程序3. 查看结果 总结部署过程中的注意事项 下面是一个详细的 YARNYet Another Resource Negotiator单机和集群环境部署教程包括部署过程中的注意事项以及一个使用案例。YARN 是 Hadoop 的资源管理器可以调度和管理分布式应用程序的资源。
一、YARN 单机环境部署
1. 环境准备
操作系统Linux (推荐使用 Ubuntu 20.04 或 CentOS 7)JavaYARN 需要 Java 环境推荐使用 OpenJDK 8 或 11。HadoopYARN 是 Hadoop 的一部分所以需要安装 Hadoop。
2. 安装 Java
在 Ubuntu 中
sudo apt update
sudo apt install openjdk-11-jdk在 CentOS 中
sudo yum install java-11-openjdk验证 Java 安装
java -version3. 下载并安装 Hadoop
访问 Hadoop 官网 下载最新版本的 Hadoop。
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz
mv hadoop-3.3.4 /usr/local/hadoop4. 配置环境变量
编辑 ~/.bashrc 文件添加以下内容
export HADOOP_HOME/usr/local/hadoop
export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64应用更改
source ~/.bashrc5. 配置 Hadoop
编辑 Hadoop 的配置文件位于 $HADOOP_HOME/etc/hadoop。
配置 hadoop-env.sh
设置 Java 路径
export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64配置 core-site.xml
配置 HDFS 的默认文件系统
configurationpropertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/property
/configuration配置 hdfs-site.xml
配置 HDFS 的副本数量和数据节点目录
configurationpropertynamedfs.replication/namevalue1/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///usr/local/hadoop/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:///usr/local/hadoop/hdfs/datanode/value/property
/configuration配置 yarn-site.xml
配置 YARN 资源管理器和节点管理器
configurationpropertynameyarn.resourcemanager.address/namevaluelocalhost:8032/value/propertypropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.nodemanager.aux-services.mapreduce_shuffle.class/namevalueorg.apache.hadoop.mapred.ShuffleHandler/value/propertypropertynameyarn.resourcemanager.scheduler.class/namevalueorg.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler/value/property
/configuration配置 mapred-site.xml
配置 MapReduce 框架为 YARN
configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property
/configuration6. 格式化 HDFS
在首次使用 HDFS 前需要格式化文件系统
hdfs namenode -format7. 启动 Hadoop 和 YARN
启动 HDFS 和 YARN
start-dfs.sh
start-yarn.sh8. 验证 YARN
访问 YARN ResourceManager Web 界面确保 YARN 正常运行
ResourceManager: http://localhost:8088
9. 运行一个简单的 YARN 应用
我们可以运行 Hadoop 自带的 MapReduce 示例程序以验证 YARN 配置是否正确。
# 创建输入目录并上传文件
hdfs dfs -mkdir -p /user/hadoop/input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/hadoop/input# 运行 WordCount 示例
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /user/hadoop/input /user/hadoop/output# 查看输出
hdfs dfs -cat /user/hadoop/output/part-r-00000注意事项
确保 Java 和 Hadoop 环境配置正确。检查防火墙设置确保 YARN 的端口可访问。内存和资源配置根据实际需求调整 yarn-site.xml 中的资源配置。
二、YARN 集群环境部署
1. 环境准备
多台服务器至少 3 台1 个 ResourceManager2 个 NodeManager。网络确保各节点之间可以互相访问。操作系统Linux (Ubuntu 或 CentOS)。Java在所有节点上安装 Java。Hadoop在所有节点上安装 Hadoop。
2. 配置 SSH 免密码登录
在 ResourceManager 节点上生成 SSH 密钥
ssh-keygen -t rsa将公钥复制到所有 NodeManager 节点
ssh-copy-id usernodemanager1
ssh-copy-id usernodemanager23. 安装 Hadoop
在所有节点上安装 Hadoop步骤与单机安装相同。
4. 配置 Hadoop 集群
配置 hadoop-env.sh
设置 Java 路径
export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64配置 core-site.xml
配置 HDFS 的默认文件系统
configurationpropertynamefs.defaultFS/namevaluehdfs://master:9000/value/property
/configuration配置 hdfs-site.xml
配置 HDFS 的副本数量和数据节点目录
configurationpropertynamedfs.replication/namevalue3/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///usr/local/hadoop/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:///usr/local/hadoop/hdfs/datanode/value/property
/configuration配置 yarn-site.xml
配置 YARN 资源管理器和节点管理器
configurationpropertynameyarn.resourcemanager.hostname/namevaluemaster/value/propertypropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.nodemanager.aux-services.mapreduce_shuffle.class/namevalueorg.apache.hadoop.mapred.ShuffleHandler/value/propertypropertynameyarn.resourcemanager.scheduler.class/namevalueorg.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler/value/property
/configuration配置 mapred-site.xml
配置 MapReduce 框架为 YARN
configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property
/configuration配置 slaves 文件
在 Master 节点上编辑 $HADOOP_HOME/etc/hadoop/slaves 文件添加所有 NodeManager 节点的主机名
nodemanager1
nodemanager25. 格式化 HDFS
在 Master 节点上格式化 HDFS
hdfs namenode -format6. 启动 Hadoop 和 YARN
在 Master 节点上启动 HDFS 和 YARN
start-dfs.sh
start-yarn.sh7. 验证集群状态
访问 YARN ResourceManager Web 界面确保所有节点正常运行
ResourceManager: http://master:8088
注意事项
**确保 SSH
配置正确**Master 节点需要通过 SSH 无密码访问 Worker 节点。
内存和资源配置根据实际需求调整 yarn-site.xml 中的资源配置。时钟同步使用 ntpd 或 chrony 确保所有节点的时钟同步。
三、YARN 使用案例Word Count
使用 Java 实现 YARN Word Count
1. 编写 Java 程序
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;
import java.util.StringTokenizer;public class WordCount {public static class TokenizerMapperextends MapperObject, Text, Text, IntWritable {private final static IntWritable one new IntWritable(1);private Text word new Text();public void map(Object key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer itr new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}}public static class IntSumReducerextends ReducerText, IntWritable, Text, IntWritable {private IntWritable result new IntWritable();public void reduce(Text key, IterableIntWritable values,Context context) throws IOException, InterruptedException {int sum 0;for (IntWritable val : values) {sum val.get();}result.set(sum);context.write(key, result);}}public static void main(String[] args) throws Exception {Configuration conf new Configuration();Job job Job.getInstance(conf, word count);job.setJarByClass(WordCount.class);job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}2. 编译并打包 Java 程序
确保你已经安装了 Maven并在 pom.xml 文件中配置了 Hadoop 依赖
dependenciesdependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-common/artifactIdversion3.3.4/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-mapreduce-client-core/artifactIdversion3.3.4/version/dependency
/dependencies编译并打包
mvn clean package3. 运行 Java 程序
将输入文件上传到 HDFS
hdfs dfs -put localfile.txt /user/hadoop/input运行 YARN 应用
hadoop jar target/wordcount-1.0-SNAPSHOT.jar WordCount /user/hadoop/input /user/hadoop/output4. 查看结果
hdfs dfs -cat /user/hadoop/output/part-r-00000使用 Python 实现 YARN Word Count
可以使用 Hadoop Streaming 来实现 Python 版的 Word Count。
1. 编写 Python 程序
创建 mapper.py
#!/usr/bin/env python3
import sysfor line in sys.stdin:words line.strip().split()for word in words:print(f{word}\t1)创建 reducer.py
#!/usr/bin/env python3
import syscurrent_word None
current_count 0
word Nonefor line in sys.stdin:word, count line.strip().split(\t, 1)count int(count)if current_word word:current_count countelse:if current_word:print(f{current_word}\t{current_count})current_word wordcurrent_count countif current_word word:print(f{current_word}\t{current_count})给文件添加可执行权限
chmod x mapper.py reducer.py2. 运行 Python 程序
将输入文件上传到 HDFS
hdfs dfs -put localfile.txt /user/hadoop/input运行 Hadoop Streaming
hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-3.3.4.jar \-input /user/hadoop/input \-output /user/hadoop/output \-mapper mapper.py \-reducer reducer.py \-file mapper.py \-file reducer.py3. 查看结果
hdfs dfs -cat /user/hadoop/output/part-00000总结
通过以上步骤我们成功部署了 YARN 单机和集群环境并实现了一个简单的 Word Count 应用。YARN 提供了强大的资源管理和调度能力可以支持多种分布式计算框架如 Hadoop MapReduce、Apache Spark 等。
部署过程中的注意事项
确保 Java 和 Hadoop 环境配置正确。检查网络配置确保各节点之间的通信正常。合理分配资源根据集群规模和任务需求调整 YARN 的资源配置。时钟同步使用 ntpd 或 chrony 确保所有节点的时钟同步。监控集群状态定期检查节点状态和资源使用情况及时处理故障节点。 通过合理配置和优化YARN 可以在多种场景下提供高效的资源管理和任务调度能力为大规模数据处理提供强有力的支持。