前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记hadoop伪分布式安装

记hadoop伪分布式安装

作者头像
zhangheng
发布2020-12-01 10:38:23
4830
发布2020-12-01 10:38:23
举报

最近在系统性学习大数据相关知识,看了一些教学视频,因为教学视频录的比较早了,中间也踩了一些坑,这里记录一下hadoop3.3.0的整个安装过程。

1. java安装

我这边使用的是centos,所以使用下面的命令安装即可:

代码语言:javascript
复制
yum install java-1.8.0-openjdk-devel

安装完后,修改/etc/profile,添加JAVA_HOME变量

代码语言:javascript
复制
export JAVA_HOME=/usr/lib/jvm/java

2. hadoop的下载和安装

首先,在阿里云镜像网站下载hadoop的安装包hadoop-3.3.0.tar.gz。下载完成后,将其解压tar -zxvf hadoop-3.3.0.tar.gz,解压完成后,会出现一个hadoop-3.3.0的文件夹,将这个文件夹移动到/usr/local下并重命名为hadoop,mv hadoop-3.3.0 /usr/local/hadoop

挪动好hadoop文件后,修改/etc/profile,增加hadoop相关变量

代码语言:javascript
复制
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin::$PATH


export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

修改后,使profile生效source /etc/profile

此时,命令行输入hadoop version,如果出现下面的信息,则表示相关配置已经生效。

代码语言:javascript
复制
Hadoop 3.3.0
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r aa96f1871bfd858f9bac59cf2a81ec470da649af
Compiled by brahma on 2020-07-06T18:44Z
Compiled with protoc 3.7.1
From source with checksum 5dc29b802d6ccd77b262ef9d04d19c4
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.0.jar

3. hadoop配置

此时hadoop已经是可以以单机方式运行,为了将hadoop配置成伪分布式,需要进行以下配置。

3.1 域名配置

首先配置一个域名,在/etc/hosts中添加一条记录192.168.10.103 hadoop1,前面的IP是当前机器的IP。

3.2 用户配置

然后生成一个专门用于hadoop相关账号,这里我参照网上的教程,创建一个hadoop用户。

代码语言:javascript
复制
# 添加用户
adduser hadoop

# 将用户增加到root组
usermod -g root hadoop

# 登陆到hadoop账户
su hadoop

接下来,使用ssh-keygen命令创建公钥-私钥对,然后将公钥放到authorized_keys中。

代码语言:javascript
复制
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

之后尝试免密登陆,第一次免密登陆有一个交互提示,之后就不会有交互提示了。

3.3 hadoop core-site文件设置

代码语言:javascript
复制
vim /usr/local/hadoop/etc/hadoop/core-site.xml
代码语言:javascript
复制
<configuration>
    <property>
        <!--hadoop的临时目录设置-->
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <!--dfs的服务端口号,由于本机装了php占用了9000端口,所以修改成8999-->
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:8999</value>
    </property>
</configuration>

3.4 hadoop hdfs-site配置

代码语言:javascript
复制
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
代码语言:javascript
复制
<configuration>
    <property>
        <!--指定副本数为1-->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <!--dfs名称地址-->
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <!--dfs数据地址-->
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
    <property>
        <!--dfs主节点端口-->
        <name>dfs.http.address</name>
        <value>hadoop1:50070</value>
    </property>
</configuration>

3.5 hadoop yarn-site配置

代码语言:javascript
复制
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
代码语言:javascript
复制
<configuration>
    <!-- Site specific YARN configuration properties -->
    <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.address</name>
        <value>hadoop1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop1:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop1:8088</value>
    </property>
</configuration>

3.6 hadoop yarn-site配置

代码语言:javascript
复制
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
代码语言:javascript
复制
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

3.7 格式化namenode

代码语言:javascript
复制
hadoop namenode -format

3.8 启动所有组件

代码语言:javascript
复制
# 进入sbin目录
cd /usr/local/hadoop/sbin
# 执行启动文件
./start-all.sh

当启动完成后,使用jps命令,查看在运行的jvm,其中应当包含以下程序。

代码语言:javascript
复制
7460 SecondaryNameNode
8564 Jps
7269 DataNode
7818 NodeManager
7693 ResourceManager
7119 NameNode

4. 小结

以上安装完成后,接下来就可以在ide中写代码,向dfs中写入或读取数据了。

enjoy~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. java安装
  • 2. hadoop的下载和安装
  • 3. hadoop配置
    • 3.1 域名配置
      • 3.2 用户配置
        • 3.3 hadoop core-site文件设置
          • 3.4 hadoop hdfs-site配置
            • 3.5 hadoop yarn-site配置
              • 3.6 hadoop yarn-site配置
                • 3.7 格式化namenode
                  • 3.8 启动所有组件
                  • 4. 小结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档