长沙企业网站排名优化网站建设人员管理制度

当前位置: 首页 > news >正文

长沙企业网站排名优化,网站建设人员管理制度,网页设计企业宣传网站,新手20种引流推广方法目录 一、Hadoop 单机模式部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop编辑 core-site.xml编辑 hdfs-site.xml编辑 mapred-site.xml编辑 yarn-site.xml 6. 格式化 Namenode7. 启动 Hadoop 服务8. 验证 Hadoop注意事项 二、Hadoop 集群模式部… 目录 一、Hadoop 单机模式部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop编辑 core-site.xml编辑 hdfs-site.xml编辑 mapred-site.xml编辑 yarn-site.xml 6. 格式化 Namenode7. 启动 Hadoop 服务8. 验证 Hadoop注意事项 二、Hadoop 集群模式部署1. 环境准备2. 设置 SSH 免密码登录3. 下载并安装 Hadoop4. 配置 Hadoop编辑 core-site.xml编辑 hdfs-site.xml编辑 mapred-site.xml编辑 yarn-site.xml配置 slaves 文件 5. 启动 Hadoop 集群6. 验证集群状态注意事项 三、Hadoop 使用案例Word Count1. 创建输入文件2. 编写 MapReduce 程序3. 编译并运行程序 四、使用 Python 实现 Word Count1. 环境准备2. 编写 Mapper 和 ReducerMapper (mapper.py)Reducer (reducer.py) 3. 设置可执行权限4. 上传输入文件到 HDFS5. 使用 Hadoop Streaming 运行作业6. 查看结果7. Python 实现 Word Count 示例8. 注意事项9. 总结10. 查看结果 五、总结与注意事项常见问题优化建议 下面是关于如何在单机和集群环境中部署Hadoop的详细指南以及部署过程中的注意事项和一个实际使用案例。我们将涵盖从基础安装到配置细节并讨论一些常见的问题和解决方案。 一、Hadoop 单机模式部署

  1. 环境准备 操作系统Linux (推荐使用 Ubuntu 20.04 或 CentOS 7)JavaHadoop 需要 Java 环境推荐使用 OpenJDK 8。SSHHadoop 需要 SSH 访问因此要确保 SSH 服务已安装并运行。
  2. 安装 Java 在 Ubuntu 中 sudo apt update sudo apt install openjdk-8-jdk在 CentOS 中 sudo yum install java-1.8.0-openjdk验证 Java 安装 java -version3. 下载并安装 Hadoop 访问 Hadoop 官网 下载最新版本的 Hadoop。 wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -xzvf hadoop-3.3.1.tar.gz mv hadoop-3.3.1 /usr/local/hadoop4. 配置环境变量 编辑 ~/.bashrc 文件添加以下内容 export HADOOP_HOME/usr/local/hadoop export HADOOP_CONF_DIR\(HADOOP_HOME/etc/hadoop export PATH\)PATH:\(HADOOP_HOME/bin:\)HADOOP_HOME/sbin export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64应用更改 source ~/.bashrc5. 配置 Hadoop 编辑 core-site.xml 路径\(HADOOP_HOME/etc/hadoop/core-site.xml configurationpropertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/property /configuration编辑 hdfs-site.xml 路径\)HADOOP_HOME/etc/hadoop/hdfs-site.xml configurationpropertynamedfs.replication/namevalue1/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///usr/local/hadoop/hadoop_data/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:///usr/local/hadoop/hadoop_data/hdfs/datanode/value/property /configuration编辑 mapred-site.xml 复制模板文件并编辑 cp \(HADOOP_HOME/etc/hadoop/mapred-site.xml.template \)HADOOP_HOME/etc/hadoop/mapred-site.xml路径\(HADOOP_HOME/etc/hadoop/mapred-site.xml configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property /configuration编辑 yarn-site.xml 路径\)HADOOP_HOME/etc/hadoop/yarn-site.xml configurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property /configuration6. 格式化 Namenode hdfs namenode -format7. 启动 Hadoop 服务 start-dfs.sh start-yarn.sh8. 验证 Hadoop 访问 Hadoop Web 界面 Namenode: http://localhost:9870ResourceManager: http://localhost:8088 注意事项 确保 Java 环境配置正确。确保 SSH 服务正常运行。检查配置文件路径和参数的正确性。 二、Hadoop 集群模式部署
  3. 环境准备 多台服务器至少 3 台1 个 NameNode2 个 DataNode。网络确保各节点之间可以互相访问。操作系统Linux (Ubuntu 或 CentOS)。Java在所有节点上安装 Java。
  4. 设置 SSH 免密码登录 在主节点上生成 SSH 密钥 ssh-keygen -t rsa将公钥复制到所有从节点 ssh-copy-id userdatanode1 ssh-copy-id userdatanode23. 下载并安装 Hadoop 在所有节点上安装 Hadoop步骤与单机安装相同。
  5. 配置 Hadoop 编辑 core-site.xml 在所有节点上配置相同的 core-site.xml configurationpropertynamefs.defaultFS/namevaluehdfs://namenode:9000/value/property /configuration编辑 hdfs-site.xml 在所有节点上配置相同的 hdfs-site.xml configurationpropertynamedfs.replication/namevalue2/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///usr/local/hadoop/hadoop_data/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:///usr/local/hadoop/hadoop_data/hdfs/datanode/value/property /configuration编辑 mapred-site.xml 在所有节点上配置相同的 mapred-site.xml configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property /configuration编辑 yarn-site.xml 在所有节点上配置相同的 yarn-site.xml configurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property /configuration配置 slaves 文件 在 NameNode 上编辑 $HADOOP_HOME/etc/hadoop/slaves 文件添加所有 DataNode 的主机名 datanode1 datanode25. 启动 Hadoop 集群 在 NameNode 上执行 start-dfs.sh start-yarn.sh6. 验证集群状态 访问 Namenode 和 ResourceManager 的 Web 界面确保所有节点正常运行。 注意事项 确保所有节点的时钟同步。确保网络配置正确各节点之间可访问。检查每个节点的配置文件确保一致性。 三、Hadoop 使用案例Word Count
  6. 创建输入文件 在 HDFS 中创建一个目录并上传一个文本文件 hdfs dfs -mkdir -p /user/hadoop/input hdfs dfs -put localfile.txt /user/hadoop/input2. 编写 MapReduce 程序 以下是一个简单的 Word Count Java 程序 import java.io.IOException; 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;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 {String[] tokens value.toString().split(\s);for (String token : tokens) {word.set(token);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);} }3. 编译并运行程序 编译程序 javac -classpath hadoop classpath -d wordcount_classes WordCount.java jar -cvf wordcount.jar -C wordcount_classes/ .运行程序 hadoop jar wordcount.jar WordCount /user/hadoop/input /user/hadoop/output当然可以使用 Python 来实现 Word Count 的 Hadoop MapReduce 程序。Python 提供了一个名为 Hadoop Streaming 的工具可以通过管道方式使得我们可以使用 Python、Perl、Ruby 等语言来编写 Map 和 Reduce 函数。 下面是使用 Python 实现的 Word Count 示例。 四、使用 Python 实现 Word Count
  7. 环境准备 确保你的 Hadoop 环境支持 Hadoop Streaming可以通过以下命令查看 hadoop jar /usr/local/hadoop/share/hadoop/tools/lib/hadoop-streaming-3.3.1.jar如果没有报错那么你的 Hadoop 支持 Streaming。
  8. 编写 Mapper 和 Reducer Mapper (mapper.py) Mapper 的任务是读取输入文件的每一行将每个单词输出为一个键值对 (word, 1)。 #!/usr/bin/env pythonimport sys# 读取标准输入 for line in sys.stdin:# 去除前后空格并分割成单词words line.strip().split()for word in words:# 输出键值对print(f{word}\t1)保存为 mapper.py。 Reducer (reducer.py) Reducer 的任务是汇总 Mapper 的输出统计每个单词出现的次数。 #!/usr/bin/env pythonimport syscurrent_word None current_count 0 word None# 从标准输入读取数据 for line in sys.stdin:# 去除前后空格并解析输入line line.strip()word, count line.split(\t, 1)# 将 count 转换为 inttry:count int(count)except ValueError:continue# 检查当前单词是否与之前的单词相同if current_word word:current_count countelse:if current_word:# 输出当前单词的计数print(f{current_word}\t{current_count})current_word wordcurrent_count count# 输出最后一个单词的计数 if current_word word:print(f{current_word}\t{current_count})保存为 reducer.py。
  9. 设置可执行权限 确保这两个 Python 脚本具有可执行权限 chmod x mapper.py chmod x reducer.py4. 上传输入文件到 HDFS 确保 HDFS 已经运行创建输入目录并上传数据文件 hdfs dfs -mkdir -p /user/hadoop/input hdfs dfs -put localfile.txt /user/hadoop/input5. 使用 Hadoop Streaming 运行作业 使用 Hadoop Streaming 工具运行 MapReduce 作业 hadoop jar /usr/local/hadoop/share/hadoop/tools/lib/hadoop-streaming-3.3.1.jar -input /user/hadoop/input -output /user/hadoop/output -mapper mapper.py -reducer reducer.py -file mapper.py -file reducer.py参数说明 -input指定输入数据所在的 HDFS 目录。-output指定输出结果存储的 HDFS 目录。-mapper指定 Mapper 的执行脚本。-reducer指定 Reducer 的执行脚本。-file将本地文件发送到 Hadoop 分布式缓存中以便在集群节点上执行。
  10. 查看结果 hdfs dfs -cat /user/hadoop/output/part-000007. Python 实现 Word Count 示例 假设 localfile.txt 内容如下 Hello Hadoop Hello Python Hello World运行以上命令后输出结果可能如下 Hadoop 1 Hello 3 Python 1 World 18. 注意事项 输入输出路径确保输入路径正确输出路径不存在Hadoop 不允许输出路径已存在。权限问题检查脚本的执行权限。Python 版本确保 Python 版本与环境兼容。换行符问题确保输入文件中的换行符格式正确Linux 使用 LF而不是 CRLF。
  11. 总结 通过以上步骤我们成功地使用 Python 实现了一个简单的 Hadoop Word Count 程序。Hadoop Streaming 提供了极大的灵活性可以使用任意支持标准输入输出的编程语言来实现 MapReduce 作业。这使得开发者能够利用熟悉的编程语言进行大规模数据处理。 如果在开发过程中遇到任何问题请确保查看 Hadoop 和 Python 的错误日志以便更快地定位问题并进行调试。
  12. 查看结果 hdfs dfs -cat /user/hadoop/output/part-r-00000五、总结与注意事项 常见问题 SSH 问题确保所有节点之间的 SSH 无密码访问正常。Java 环境问题确认所有节点上的 Java 版本一致。Hadoop 版本问题确保所有节点的 Hadoop 版本一致。文件权限问题确保 HDFS 中的文件权限正确避免权限问题导致的作业失败。内存和资源配置合理配置每个节点的内存和资源分配以提高作业执行效率。 优化建议 使用 HDFS 进行大规模数据存储提高数据的可靠性和可用性。合理设置副本数量根据集群规模和业务需求进行调整。监控集群状态使用工具如 Ambari、Ganglia对 Hadoop 集群进行实时监控和管理。 通过以上步骤您可以成功部署 Hadoop 单机和集群环境并运行简单的 MapReduce程序进行数据处理。在实际生产环境中还需要根据具体需求进行进一步优化和调整。