ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux环境搭建hadoop(伪分布式)平台

2021-11-03 19:58:28  阅读:85  来源: 互联网

标签:sudo hadoop cd usr Linux local ssh 分布式


伪分布式搭建

1.安装环境
采用的LInux环境为14.04版本
在这里插入图片描述
使用的hadoop是3.0.3版本,jdk使用的是8u91版本
在这里插入图片描述
2.安装步骤
(1)安装好Linux之后,按ctrl+Alt+T打开终端,进入之后首先增加一个Hadoop用户,并为其设置登录密码和增加管理员权限:

sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo

更新apt,后面要使用 apt 安装软件,如果没更新可能有一些软件安装不了,更新结束之后可以先安装vim命令包,安装ssh时有提示直接输入y即可

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim

(2)安装ssh、配置ssh无密码登录,Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server

sudo apt-get install openssh-server
ssh localhost #安装后,可以使用此命令登陆本机

登录时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

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

此时再用ssh localhost命令,无需输入密码就可以直接登陆了,如下图所示:
在这里插入图片描述
(3)配置好ssh之后接下来安装java环境jdk
在Linux命令行界面中,执行如下Shell命令(切换到hadoop用户下执行如下命令):

cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads  #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u91-linux-x64.tar.gz -C /usr/lib/jvm  #把JDK文件解压到/usr/lib/jvm目录下

JDK文件解压缩以后,可以执行如下命令到/usr/lib/jvm目录查看一下:

cd /usr/lib/jvm
ls

在/usr/lib/jvm目录下有个jdk1.8.0_91目录
在这里插入图片描述
下面继续执行如下命令,设置环境变量:

cd ~
vim ~/.bashrc

上面命令使用vim编辑器打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:

source ~/.bashrc
java -version    #可以使用此命令查看是否安装成功

如果能够在屏幕上返回如下信息,则说明安装成功:
在这里插入图片描述
(4)安装 Hadoop3.0.3
可以选择将 Hadoop 安装至 /usr/local/ 中:

sudo tar -xvf  hadoop-3.0.3.tar -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.1.3/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop
./bin/hadoop version

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml ,(在hadoop目录下使用如下命令)使用如下命令:

cd /usr/local/hadoop/etc/hadoop
vim core-site.xml

将当中的

<configuration>
</configuration>

修改为下面配置:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

同样的,使用如下命令修改配置文件 hdfs-site.xml:

vim hdfs-site.xml

将里面内容更改为如下部分:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

配置完成后,执行 NameNode 的格式化:

cd /usr/local/hadoop
./bin/hdfs namenode -format

有提示弹出直接输入y即可,成功的话,会看到如下提示,具体返回信息类似如下:
在这里插入图片描述
接着开启 NameNode 和 DataNode 守护进程

cd /usr/local/hadoop
./sbin/start-dfs.sh  #start-dfs.sh是个完整的可执行文件,中间没有空格

若出现SSH提示,输入yes即可
开启之后可以使用如下命令查看是否成功启动

jps

如果出现以下几行说明开启成功:
在这里插入图片描述
可以使用ifconfig查看linux下的ip地址,在网页端输入此IP地址和端口号查看Namenode,注意端口号是9870,如下图所示:
在这里插入图片描述
如上图所示hadoop伪分布式平台搭建成功

标签:sudo,hadoop,cd,usr,Linux,local,ssh,分布式
来源: https://blog.csdn.net/weixin_54554221/article/details/120773985

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有