centos6.8下hadoop3.1.1完全分布式安装指南(推荐)

CentOS 6.8下Hadoop 3.1.1完全分布式安装指南

简介

本指南将带领您在CentOS 6.8操作系统下完成一个完全分布式的Hadoop 3.1.1集群安装。Hadoop是一种开源的分布式计算平台,可在一个集群中处理大量数据。本指南将提供全面的步骤和示例,帮助您部署适合您的Hadoop集群。

步骤

Step 1:系统环境准备

为了安装和运行Hadoop,我们需要安装并配置一些必需的软件和系统环境变量。

# 安装Java环境
yum install java-1.8.0-openjdk-devel -y

# 安装必要的依赖项
yum install rsync -y
yum install wget -y 

# 设置JAVA_HOME环境变量
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> ~/.bashrc
source ~/.bashrc

Step 2:下载并解压Hadoop

# 进入指定目录,例如/opt
cd /opt

# 下载Hadoop 3.1.1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz

# 解压安装包
tar xzf hadoop-3.1.1.tar.gz

Step 3:配置Hadoop

接下来,我们需要在所有节点上配置Hadoop,以便它们在一个集群中正常运行。下面列出了Hadoop的主要配置文件:

  • $HADOOP_HOME/etc/hadoop/hadoop-env.sh - Hadoop环境变量设置。
  • $HADOOP_HOME/etc/hadoop/core-site.xml - 在Hadoop中定义的常规配置项,如默认文件系统,以及通信端口号。
  • $HADOOP_HOME/etc/hadoop/hdfs-site.xml - Hadoop分布式文件系统(HDFS)的配置项。
  • $HADOOP_HOME/etc/hadoop/mapred-site.xml - MapReduce配置项,如执行器内存大小,排序设置等。
  • $HADOOP_HOME/etc/hadoop/yarn-site.xml - YARN配置项,如NodeManager和ResourceManager的端口号等.

以下是在所有节点上的所有配置文件的示例:

3.1. hadoop-env.sh

# 配置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

# 配置Hadoop日志目录
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

# 配置YARN_LOG_DIR日志目录
export YARN_LOG_DIR=${HADOOP_HOME}/logs

3.2. core-site.xml

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:8020</value>
   </property>
   <property>
      <name>io.file.buffer.size</name>
      <value>131072</value>
   </property>
</configuration>

3.3. hdfs-site.xml

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>3</value>
   </property>
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/usr/local/hadoop/dfs/name</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/usr/local/hadoop/dfs/data</value>
   </property>
   <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>localhost:9001</value>
   </property>
</configuration>

3.4. mapred-site.xml

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
   <property>
      <name>mapred.reduce.tasks</name>
      <value>1</value>
   </property>
   <property>
      <name>mapred.child.java.opts</name>
      <value>-Xmx2048m</value>
   </property>
</configuration>

3.5. yarn-site.xml

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>localhost</value>
   </property>
</configuration>

Step 4:创建Hadoop用户以及日志目录

# 创建一个Hadoop用户组
sudo groupadd hadoop

# 然后创建一个Hadoop用户并将其添加到Hadoop用户组中
sudo useradd -d /usr/local/hadoop -g hadoop -m hadoop

# 更改大部分Hadoop文件的所有权
sudo chown -R hadoop:hadoop /opt/hadoop-3.1.1/

# 创建Hadoop的日志目录
sudo mkdir -p /usr/local/hadoop/logs
sudo chown -R hadoop:hadoop /usr/local/hadoop/logs

Step 5:启动Hadoop

# 切换到Hadoop用户
su - hadoop

# 初始化HDFS
hdfs namenode -format

# 启动Hadoop集群
start-all.sh

# 向HDFS中上传文件
hadoop fs -mkdir /input
hadoop fs -put /etc/hadoop/* /input

# 检查Hadoop集群
jps

示例

示例1:WordCount示例

WordCount示例是一个流行的Hadoop MapReduce示例,它在所提供的文本文件中计算单词出现的频率。我们将创建并运行此示例。

Step 1:编写MapReduce程序。

from __future__ import print_function
import sys
from operator import add
from pyspark.sql import SparkSession

if __name__ == "__main__":
    spark = SparkSession\
        .builder\
        .appName("PythonWordCount")\
        .getOrCreate()

    lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0])
    counts = lines.flatMap(lambda x: x.split(' ')) \
                  .map(lambda x: (x, 1)) \
                  .reduceByKey(add)
    output = counts.collect()
    for (word, count) in output:
        print("%s: %i" % (word, count))

    spark.stop()

Step 2:使用mvn安装jar包。

cd $HADOOP_HOME/share/hadoop/mapreduce/
mvn package

Step 3:编写脚本执行WordCount示例。

$HADOOP_HOME/bin/hadoop fs -rm -r /output
$HADOOP_HOME/bin/hadoop jar target/hadoop-mapreduce-examples-3.1.1.jar wordcount /input /output

示例2:使用Hive查询HDFS中存储的数据

安装和配置Hive后,您可以查询HDFS中存储的数据。以下是如何将数据导入Hive:

Step 1:将数据从本地拷贝到HDFS

# 将本地目录下的所有文件复制到HDFS的/tmp目录下
hadoop fs -put /path/to/local/files/* /tmp/

Step 2:创建一张Hive表并导入数据

CREATE EXTERNAL TABLE if not exists word_count (word STRING, count INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/tmp/';

LOAD DATA INPATH '/tmp/*' INTO TABLE word_count;

Step 3:使用Hive分析数据

SELECT word, SUM(count) FROM word_count GROUP BY word ORDER BY SUM(count) DESC LIMIT 10;

结论

通过本文提供的步骤和示例,您现在应该拥有一个完全分布式的Hadoop 3.1.1集群。Hadoop平台可用于许多应用程序,例如数据分析、机器学习和网页搜索。基于Hadoop的应用程序开发正在成为一个热门领域,是在今天的大数据时代中实现业务需求的绝佳途径。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:centos6.8下hadoop3.1.1完全分布式安装指南(推荐) - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Linux下重启JBoss进程的脚本

    2010-10-09 10:12:23|  分类: Linux 订阅     版本一,还不知道pgrep命令时:#!/bin/bash echo “–>1 kill old process start…,PID=”$(ps -ef | grep “jboss-server” | grep “java” | awk ‘{print $2}’)kil…

    Linux 2023年4月11日
    00
  • Linux防火墙配置SNAT教程(1)

    对于“Linux防火墙配置SNAT教程(1)”,下面是完整攻略的讲解: 标题 Linux防火墙配置SNAT教程(1) 简介 本文介绍了在Linux系统下如何使用iptables实现SNAT功能,并提供了两个具体的示例供读者参考。 步骤 确认iptables已经安装在你的Linux系统上,并检查iptables服务是否已经启动并运行中。 在iptables中,…

    Linux 2023年5月14日
    00
  • Centos 7.4服务器时间同步配置方法【基于NTP服务】

    Centos7.4服务器时间同步配置方法【基于NTP服务】 什么是NTP服务? NTP(Network Time Protocol)即网络时间协议,是用于同步计算机时间的协议。NTP一般需要至少一个参考时间源(time source),这个参考时间源可以是本地的时钟(local clock)或者其他的计算机。NTP客户端会和参考时间源建立连接,并通过网络传输…

    Linux 2023年5月14日
    00
  • VMware 12 下 Ubuntu 16.04 安装图文教程

    VMware 12 下 Ubuntu 16.04 安装图文教程 本教程将会讲解在 VMware 12 中安装 Ubuntu 16.04 的详细步骤。 准备工作 要先下载好 Ubuntu 16.04 的 ISO 镜像文件 安装好 VMware 12 软件 步骤一:在 VMware 中新建虚拟机 打开 VMware 软件,选择“创建新的虚拟机”选项 选择“典型”…

    Linux 2023年5月24日
    00
  • Linux Bash Shell 中变量的 5 个易错点

    Linux 中的 Bash 脚本支持对变量的操作,下面咸鱼将介绍 Linux Bash Shell 中关于变量的 5 个易错点   因为编程习惯,这类现象往往发生在大多数使用过其他流行编程语言的程序员身上   变量赋值 对于许多编程语言(例如 Python),变量赋值的时候在等号两边添加空格是一个好的习惯   看过咸鱼的 Python 文章的小伙伴们都不难发…

    2023年4月8日
    00
  • linux上jenkins连接windows并执行exe文件

    1、如果要通过ssh的方式来连接windows的话,首先需要在windows上安装freesshd来配置启动、配置ssh(win10上自带了openssh可以进行安装使用,但我机器装不上) 1.1、下载链接 http://www.freesshd.com/?ctt=download 下载时选择 freeSSHd.exe, 双击安装即可 1.2、运行frees…

    Linux 2023年4月11日
    00
  • Linux chroot命令

    下面是关于Linux chroot命令的完整攻略。 一、概述 chroot是Linux中的一种操作系统的命令,用于改变当前进程的根目录。它能够为特定的应用程序创建一个与整个系统隔离的虚拟环境,使得应用程序不能访问整个系统的文件和目录,更加安全。 具体来说,chroot命令能够通过切换根目录,限制被执行的进程只能看到自己的文件系统,无法看到和干扰到其他的系统资…

    Linux 2023年3月28日
    00
  • Telnet模拟系统(Linux c)

    3.1相关技术     1)TCP编程,主要包括socket()函数、bind()函数、listen()函数、recv()函数、send()函数以及客户端的connect()函数。   2)C语言中对结构体的操作,和对字符串的比较   3)对文件的读写操作   4)popen调用shell   3.2开发工具和运行环境     本系统在ubantu 16.4…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部