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日

相关文章

  • centos7利用yum安装lnmp的教程(linux+nginx+php7.1+mysql5.7)

    下面我将详细讲解如何在CentOS 7上使用yum安装LNMP环境。 环境准备 在操作系统CentOS 7上安装LNMP环境,需要准备以下环境: 已经安装了CentOS 7操作系统的服务器; 确认已经安装了yum软件包管理器。 安装LNMP 安装LNMP环境需要进行以下步骤: 1.安装EPEL源 在CentOS上安装LNMP环境前,需要先安装EPEL源,命令…

    Linux 2023年5月14日
    00
  • Linux startx命令

    Linux startx 命令的作用与使用方法 Linux startx 命令用于启动 X 窗口系统。它可以帮助用户在命令行下启动 X 窗口系统,以便使用图形界面。startx 命令通常用于在没有自动启动 X 窗口系统的情况下手动启动。 Linux startx 命令使用方法 startx 命令的基本语法如下: startx [选项] [–] [客户端程序…

    Linux 2023年5月10日
    00
  • Linux xlsclients命令

    Linux xlsclients 命令的作用与使用方法 Linux xlsclients 命令用于列出当前 X 服务器上所有正在运行的客户端程序。它可以帮助用户了解当前系统中正在运行的 X 客户端程序,以及它们的相关信息。 Linux xlsclients 命令使用方法 xlsclients 命令的基本语法如: xlsclients [选项] 其中,选项是可…

    Linux 2023年5月10日
    00
  • Linux下nohup日志输出过大问题解决方案

    转载自:http://blog.csdn.net/shawnhu007/article/details/50971084  最近在一hadoop测试集群运行一个spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法…

    Linux 2023年4月16日
    00
  • kali Linux openvas忘记密码的解决方法

    1.先删除默认的admin帐号root@xxs:~# openvasmd –delete-user=adminUser deleted. 2.创建admin帐号,默认会生成密码root@xxs:~# openvasmd –create-user=adminUser created with password ‘462972b7-02fc-4a0b-a58…

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

    Linux xlsclients 命令用于显示当前 X 服务器上所有的客户端的相关信息。 命令格式 xlsclients [-a displayname] [-display displayname] [-l] [-m maxcmdlen] [-r] [-u] [-version] [-nostdin] [pattern [pattern …]] 命令参…

    Linux 2023年3月28日
    00
  • 探析如何使用SystemTap观测TCP Backlog

    使用SystemTap观测TCP Backlog的攻略如下所示: 1. 确认SystemTap是否已安装 可以在终端中输入以下命令来检查系统是否已经安装了SystemTap: stap -V 若已安装,会输出SystemTap的版本信息,若未安装,则需要通过系统包管理器进行安装。 2. 编写SystemTap脚本 编写SystemTap脚本来观测TCP Ba…

    Linux 2023年5月30日
    00
  • centos7系统部署k8s集群详细介绍

    CentOS7系统部署Kubernetes集群的攻略 Kubernetes是一个用于部署、维护和扩展容器化应用程序的开源平台。它提供了资源管理、部署、服务发现、负载均衡、容错等特性。本文将介绍如何在CentOS7系统上部署Kubernetes集群,并提供两个示例说明。 环境准备 在开始部署之前,我们需要做以下准备工作: 3台CentOS7服务器,配置相同 确…

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