推荐阅读:
[AI-人工智能]免翻墙的AI利器:樱桃茶·智域GPT,让你轻松使用ChatGPT和Midjourney - 免费AIGC工具 - 拼车/合租账号 八折优惠码: AIGCJOEDISCOUNT2024
[AI-人工智能]银河录像局: 国内可靠的AI工具与流媒体的合租平台 高效省钱、现号秒发、翻车赔偿、无限续费|95折优惠码: AIGCJOE
[AI-人工智能]免梯免翻墙-ChatGPT拼车站月卡 | 可用GPT4/GPT4o/o1-preview | 会话隔离 | 全网最低价独享体验ChatGPT/Claude会员服务
[AI-人工智能]边界AICHAT - 超级永久终身会员激活 史诗级神器,口碑炸裂!300万人都在用的AI平台
本文详细介绍了在Ubuntu操作系统下配置Hadoop环境的过程,包括Hadoop的安装、环境变量的设置、HDFS和YARN的配置等关键步骤,旨在帮助读者在Ubuntu平台上顺利部署和运行Hadoop分布式计算框架。
本文目录导读:
随着大数据时代的到来,Hadoop 作为一款开源的分布式计算框架,得到了广泛应用,本文将详细介绍如何在 Ubuntu 系统下配置 Hadoop,帮助读者更好地理解和运用这一强大的工具。
环境准备
1、安装 Java
Hadoop 依赖于 Java 环境,因此首先需要安装 Java,可以使用以下命令安装 OpenJDK:
sudo apt-get install openjdk-8-jdk
安装完成后,设置 Java 环境变量:
sudo nano /etc/profile
在打开的文件中添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
保存并退出,然后运行以下命令使环境变量生效:
source /etc/profile
2、安装 SSH
Hadoop 集群中的节点需要通过 SSH 进行通信,因此需要安装 SSH,使用以下命令安装 SSH:
sudo apt-get install ssh
3、配置 SSH 无密码登录
生成 SSH 密钥对:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
将公钥复制到本机的 authorized_keys 文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置文件权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
下载和配置 Hadoop
1、下载 Hadoop
从官网下载 Hadoop 的压缩包,这里以 hadoop-3.1.3 为例:
wget https://archive.apache.org/dist/hadoop/3.1.3/hadoop-3.1.3.tar.gz
2、解压 Hadoop
解压下载的压缩包:
tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/
3、配置 Hadoop
修改 hadoop.env.sh 文件,设置 Java 路径:
sudo nano /usr/local/hadoop-3.1.3/etc/hadoop/hadoop.env.sh
找到export JAVA_HOME
行,将其修改为:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
修改 core-site.xml 文件:
sudo nano /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
添加以下内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> </property> </configuration>
修改 hdfs-site.xml 文件:
sudo nano /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
添加以下内容:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/app/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/app/hadoop/hdfs/data</value> </property> </configuration>
修改 mapred-site.xml 文件:
sudo nano /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
添加以下内容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改 yarn-site.xml 文件:
sudo nano /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml
添加以下内容:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
4、格式化 HDFS 文件系统
hdfs namenode -format
5、启动 Hadoop 服务
启动 NameNode 和 DataNode:
start-dfs.sh
启动 ResourceManager 和 NodeManager:
start-yarn.sh
验证 Hadoop 配置
1、查看进程
使用以下命令查看 Hadoop 进程:
jps
如果看到 NameNode、DataNode、ResourceManager 和 NodeManager 进程,说明 Hadoop 配置成功。
2、执行 WordCount 程序
将以下代码保存为 WordCount.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; public class WordCount { public static class TokenizerMapper extends Mapper<Object, 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[] words = value.toString().split("\s+"); for (String w : words) { word.set(w); context.write(word, one); } } } public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> 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); } }
编译 WordCount.java:
javac -cp /usr/local/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar:/usr/local/hadoop-3.1.3/share/hadoop/common/lib/*:/usr/local/hadoop-3.1.3/share/hadoop/hdfs/hadoop-hdfs-3.1.3.jar:/usr/local/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/usr/local/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.1.3.jar:/usr/local/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-3.1.3/share/hadoop/yarn/hadoop-yarn-api-3.1.3.jar:/usr/local/hadoop-3.1.3/share/hadoop/yarn/hadoop-yarn-client-3.1.3.jar:/usr/local/hadoop-3.1.3/share/hadoop/yarn/lib/* WordCount.java
将编译生成的 WordCount.class 文件打包为 hadoop-wordcount.jar:
jar -cvf hadoop-wordcount.jar WordCount.class
执行 WordCount 程序:
hadoop jar hadoop-wordcount.jar WordCount /input /output
执行完成后,查看 output 文件夹,可以看到 WordCount 的结果。
本文详细介绍了在 Ubuntu 系统下配置 Hadoop 的过程,包括环境准备、下载和配置 Hadoop、验证 Hadoop 配置等步骤,通过本文的介绍,读者可以快速掌握 Hadoop 的安装和配置方法,为后续的大数据处理打下基础。
关键词:Ubuntu, Hadoop, 配置, Java, SSH, Hadoop 环境变量, NameNode, DataNode, ResourceManager, NodeManager, WordCount, MapReduce, HDFS, YARN, hadoop.env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, 格式化 HDFS, 启动 Hadoop 服务, jps, 编译, 打包, 执行 WordCount, 输出结果
本文标签属性:
Ubuntu Hadoop:ubuntu hadoop集群
配置详解:nginx负载均衡配置详解
Ubuntu Hadoop 配置:ubuntu18.04安装hadoop