首页 > 系统相关 >单机版hadoop在Linux环境下的安装和配置

单机版hadoop在Linux环境下的安装和配置

时间:2023-04-30 10:34:11浏览次数:40  
标签:单机版 java sudo hadoop HADOOP export Linux HOME

创建hadoop用户

首先打开终端窗口,输入如下命令创建hadoop用户,这条命令创建可以登录的hadoop用户,并使用/bin/bash作为shell:

$ sudo useradd -m hadoop -s /bin/bash

接着为hadoop设置登录密码,可简单设为123456,按提示输入两次:

$ sudo passwd hadoop

为 hadoop 用户增加管理员权限,方便安装配置:

$ sudo adduser hadoop sudo

切换至hadoop用户,hadoop的安装和配置都是在hadoop用户下进行,提示时输入hadoop的用户名密码123456:

$ su hadoop

image

更新apt

切换hadoop用户后需要更新一下apt-get,因为后续需要 apt 安装软件,如果没更新可能有一些软件安装不了。

$ sudo apt-get update

后续需要编辑一些配置文件,安装vim工具:

$ sudo apt-get install -y vim

image

安装SSH、配置SSH无密码登录

1、hadoop不管是集群、单机版都需要用到 SSH 登陆,系统默认已安装了 SSH client,此外还需要安装 SSH server:

$ sudo apt-get install openssh-server

2、安装后,尝试登陆本机,提示时输入yes,然后按提示输入密码123456:

$ ssh localhost

3、在hadoop中,我们需要配置成SSH无密码登陆,首先退出输入exit,退出刚才的 ssh,回到我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

$ exit                           # 退出刚才的 ssh localhost
$ cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa  # 会有提示,都按回车就可以
$ cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

4、此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示:

$ ssh localhost
$ exit

image

安装java环境

hadoop的运行依赖java环境,使用下面的命令,如果出现以下输出,说明没有安装java

$ java -version

使用以下命令安装java:

$ sudo apt-get install -y  default-jdk

查询java版本,系统响应已安装的java版本时,代表已经成功安装了jdk:

$ java -version

image

2.5安装hadoop

hadoop可以到官网下载,首先访问hadoop官网https://archive.apache.org/dist/hadoop/common/ 找到Hadoop相应的版本,然后复制其版本连接,或者也可以到国内镜像站查找对应版本。

在终端中执行命令下载hadoop (wget 后面的链接就是刚才复制的hadoop链接):

$ cd  /usr/local/
$ sudo wget

image

解压文件并重命名:

$ sudo tar -zxvf hadoop-2.7.0.tar.gz 
$ sudo mv ./hadoop-2.7.0/ ./hadoop      # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop

image

配置hadoop环境

查看java的安装路径,从图可以得知,java安装在/usr/lib/jvm/java-11-openjdk-amd64:

$ update-alternatives --display Java

编辑~/.bashrc:

$ sudo vim ~/.bashrc

按“insert”建,如图输入如下内容(复制粘贴即可):

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

image

编辑完之后按“Esc”键,输入“:wq”退出。然后让~/.bashrc设置生效。

$ source ~/.bashrc

编辑hadoop-env.sh文件(和上面两个步骤一样)

$ sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

在hadoop-env.sh中export JAVA_HOME后面添加以下信息(JAVA_HOME路径改为实际路径):

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/

image

保存之后运行下面命令使配置生效

$ source /usr/local/hadoop/etc/hadoop/hadoop-env.sh

查看java和hadoop环境配置
如图,输入命令查看java和hadoop版本信息,说明环境配置成功

$ java -version
$ JAVA_HOME/bin/java -version
$ hadoop version

image

测试

在hadoop目录下新建input文件夹

$ cd /usr/local/hadoop
$ sudo mkdir input

将etc中的所有文件拷贝到input文件夹中

$ sudo cp -r  etc/*  input

image

在hadoop目录下运行wordcount程序,并将结果保存到output中(注意input所在路径、jar所在路径)

$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount  input/hadoop output

image

会看到conf所有文件的单词和频数都被统计出来。

$ cat output/*

image

注意的是,因为hadoop无法覆盖原来的文件,所以当执行了一次程序后想再次执行,需要手动删除output文件夹。

标签:单机版,java,sudo,hadoop,HADOOP,export,Linux,HOME
From: https://www.cnblogs.com/zhuwlong/p/17364802.html

相关文章

  • Linux系统软件安装
    实战章节:在Linux上部署各类软件前言为什么学习各类软件在Linux上的部署在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没有一些具体的实操能够串联起来这些知识点。所以,现在我们设计......
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
    在前两篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.netcore应用。......
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
    在前两篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.netcore应用。......
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
    在前两篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.netcore应用。......
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
    在前两篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.netcore应用。......
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
    在前两篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.netcore应用。......
  • Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
    IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了 Linux 内核安全更新,累计修复了17个安全漏洞。IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了Linux内核安全更新,累计修复了17个安全漏洞。本次更新适用于......
  • Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
    IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了 Linux 内核安全更新,累计修复了17个安全漏洞。IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了Linux内核安全更新,累计修复了17个安全漏洞。本次更新适用于......
  • Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
    IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了 Linux 内核安全更新,累计修复了17个安全漏洞。IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了Linux内核安全更新,累计修复了17个安全漏洞。本次更新适用于......
  • linux c/c++程序集成python库,实现调用python函数
    为了提高开发效率,扩展开发程序的功能,我们经常会在我们的linuxc/c++进程里调用外部脚本,例如lua、python,下面,介绍下如何在自己的linuxc/c++代码里调用python脚本里的函数和类,并且将python库集成到我们自己的进程目录里,这样就不依赖系统环境是否存在python及其版本要求。 ......