黑狐家游戏

hadoop伪分布式搭建的步骤,伪分布式hadoop集群搭建过程

欧气 3 0

本文目录导读:

  1. 环境准备
  2. 安装JDK(如果未安装)
  3. 安装和配置Hadoop
  4. 格式化HDFS
  5. 启动Hadoop服务
  6. 测试Hadoop集群

Hadoop伪分布式集群搭建全流程

环境准备

1、操作系统

hadoop伪分布式搭建的步骤,伪分布式hadoop集群搭建过程

图片来源于网络,如有侵权联系删除

- 选择合适的Linux操作系统,如CentOS 7,确保系统已经安装并且网络连接正常。

2、软件安装包

- 下载Hadoop安装包,可以从官方网站(https://hadoop.apache.org/)下载稳定版本的Hadoop,例如hadoop - 3.3.0。

- 同时确保系统已经安装了Java开发工具包(JDK),因为Hadoop是基于Java开发的,可以通过命令java -version来检查JDK是否安装以及版本信息,如果没有安装,需要先安装JDK。

安装JDK(如果未安装)

1、下载JDK

- 从Oracle官方网站(https://www.oracle.com/java/technologies/javase - downloads.html)下载适合Linux系统的JDK版本。

2、安装JDK

- 将下载的JDK安装包上传到服务器,例如使用scp命令。

- 解压安装包,例如tar -zxvf jdk - 11.0.11_linux - x64_bin.tar.gz

- 设置环境变量,编辑/etc/profile文件,添加以下内容:

```bash

export JAVA_HOME=/path/to/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

```

- 使环境变量生效,执行source /etc/profile

安装和配置Hadoop

1、安装Hadoop

- 解压Hadoop安装包到指定目录,例如tar -zxvf hadoop - 3.3.0.tar.gz -C /usr/local/

- 重命名解压后的文件夹为hadoop,方便管理,如mv hadoop - 3.3.0 hadoop

2、配置Hadoop环境变量

- 编辑/etc/profile文件,添加以下内容:

```bash

export HADOOP_HOME=/usr/local/hadoop

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

```

- 执行source /etc/profile使环境变量生效。

3、配置Hadoop核心文件

- 进入$HADOOP_HOME/etc/hadoop目录。

hadoop - env.sh

- 编辑hadoop - env.sh文件,设置JAVA_HOME变量为之前安装JDK的路径,例如export JAVA_HOME = /usr/local/jdk

core - site.xml

- 在core - site.xml文件中添加以下配置:

```xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/tmp</value>

</property>

</configuration>

```

hdfs - site.xml

- 编辑hdfs - site.xml文件,添加如下配置:

```xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

hadoop伪分布式搭建的步骤,伪分布式hadoop集群搭建过程

图片来源于网络,如有侵权联系删除

<name>dfs.namenode.name.dir</name>

<value>/usr/local/hadoop/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/usr/local/hadoop/hdfs/data</value>

</property>

</configuration>

```

格式化HDFS

1、执行hdfs namenode - format命令。

- 此命令会初始化HDFS文件系统,创建必要的目录结构,如/usr/local/hadoop/hdfs/name等。

- 注意,如果格式化多次可能会导致数据丢失,除非是在重新搭建环境的情况下。

启动Hadoop服务

1、启动HDFS服务

- 执行start - dfs.sh命令。

- 通过命令jps可以查看启动的进程,应该能看到NameNodeDataNode进程。

2、启动YARN(如果需要)

- 编辑mapred - site.xml(如果不存在,可以从模板复制),添加以下配置:

```xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

```

- 编辑yarn - site.xml,添加如下配置:

```xml

<configuration>

<property>

<name>yarn.nodemanager.aux - services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>localhost</value>

</property>

</configuration>

```

- 执行start - yarn.sh命令,通过jps命令可以看到ResourceManagerNodeManager进程启动。

测试Hadoop集群

1、HDFS测试

- 使用hdfs dfs -mkdir /test命令在HDFS上创建一个名为/test的目录。

- 可以使用hdfs dfs -ls /命令查看HDFS根目录下的文件和目录,应该能看到刚刚创建的/test目录。

2、MapReduce测试(简单示例)

- 创建一个简单的MapReduce示例文件,例如wordcount.java,代码如下:

```java

import java.io.IOException;

import java.util.StringTokenizer;

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;

hadoop伪分布式搭建的步骤,伪分布式hadoop集群搭建过程

图片来源于网络,如有侵权联系删除

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 {

StringTokenizer itr = new StringTokenizer(value.toString());

while (itr.hasMoreTokens()) {

word.set(itr.nextToken());

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);

}

}

```

- 编译这个Java文件,确保已经安装了hadoop - common依赖库,使用javac -classpath /usr/local/hadoop/share/hadoop/common/hadoop - common - 3.3.0.jar WordCount.java

- 创建输入文件,例如input.txt为一些单词。

- 将输入文件上传到HDFS,使用hdfs dfs -put input.txt /input

- 运行MapReduce作业,使用hadoop jar WordCount.jar /input /output

- 查看输出结果,可以使用hdfs dfs -cat /output/part - r - 00000

通过以上步骤,就完成了Hadoop伪分布式集群的搭建、配置和基本测试,在实际应用中,可以根据需求进一步优化配置和开发复杂的大数据处理应用。

标签: #hadoop #伪分布式 #搭建 #步骤

黑狐家游戏
  • 评论列表

留言评论