Ubuntu18.04安装hadoop伪分布式

首先是装好jdk和弄好ssh免密登录。
安装jdk1.8教程:安装jdk
ssh免密登录教程:ssh安装+免密登录教程

因为博主之后要装Hbase,所以要搞清楚,hadoop和jdk和hbase对应的版本问题。不装hbase的也要注意hadoop和jdk的版本问题。

版本对应问题教程

博主选择的是jdk1.8.0_161和hadoop2.7.3。(因为博主装了删好几次不同版本的hadoop,所以hadoop版本可能图文不符)

开始安装配置:
获取root权限:

sudo su

ljx
下载hadoop:
镜像:http://mirrors.hust.edu.cn/apache/hadoop/common/
官网:http://archive.apache.org/dist/hadoop/common/

(如果是虚拟机上装的Ubuntu系统,下载后涉及到文件从本机到虚拟机的传输问题。)
解决办法:超详细的文件传输教程

或者联网直接下载(比较慢):

wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz

解压hadoop到/usr/local文件夹:

tar -zxvf  hadoop-3.0.3.tar.gz /usr/local

解压完成,并查看:

cd /usr/local
ls

ljx

修改配置文件,和JDK的安装一样,可以选择修改哪个文件。这里修改 sudo vim /etc/profile 或者 sudo vim ~/.bashrc。但是之前java修改的文件和这里hadoop修改的文件必须一致,例如都在/etc/profile上修改,或者都在~/.bashrc上修改。
不然会出现类似下图报错:
ljx

配置~/.bashrc文件:

export HADOOP_HOME=/usr/local/hadoop-3.2.2
export HADOOP_INSTALL=$HADOOP_HOME
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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop

ljx
esc之后:wq!保存修改。

执行命令使刚才的配置生效:

source ~/.bashrc

查看hadoop是否安装成功:

hadoop version

ljx
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop-3.2.2/etc/hadoop/ 中,伪分布式需要修改配置文件 core-site.xml hdfs-site.xml hadoop-env.sh yarn-site.xml mapred-site.xml 等5个文件。

进入/usr/local/hadoop-3.2.2/etc/hadoop/文件夹进行配置

cd /usr/local/hadoop-3.2.2/etc/hadoop/

具体配置内容请直接参照该链接
配置内容请直接参照该链接

伪分布式可以参考该链接

记得hadoop的安装一定要联网!!!

PS以上链接的补充
查询本机ip:

ifconfig

如果显示:
ljx
请先安装net-tool:

apt install net-tool

配置结束之后:
启动HDFS为分布式模式:
/usr/local/hadoop-3.2.2 (注意是自己的hadoop目录) 下使用以下命令,执行format命令,格式化名称节点NameNode。(只能格式化一次!!!!)

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

ljx
启动hadoop:

./sbin/start-all.sh

或者

cd sbin
./start-all.sh

然后查看进程:

jps

ljx
浏览器访问localhost:50070
ljx
关闭hadoop:

./stop-all.sh

ljx

题外话:
下面是以下两个链接的配置教程,按照这两个教程博主没有配置成功。(可能是博主的问题,下面是两个高赞教程)
参考1
参考2
首先配置hadoop-env.sh文件

vim hadoop-env.sh

将jdk的路径添(export JAVA_HOME=/usr/local/java/jdk1.8.0_161)加到hadoop-env.sh文件末尾。

export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export HADOOP=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin

ljx
配置yarn-env.sh文件

vim yarn-env.sh

添加如下代码到文件末尾。

JAVA_HOME=/usr/local/java/jdk1.8.0_161

ljx
配置core-site.xml文件

vim core-site.xml

将core-site.xml中原来的有的< configuration > < /configuration >一定要删除掉,不然后面格式化的时候会出错。即.xml文件中只有一个< configuration > < /configuration >对就可以。

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <!--这里填自己的hadoop路径-->
             <value>file:/usr/local/hadoop-3.2.2/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
</configuration>

ljx
配置hdfs-site.xml文件

然后就是hdfs-site.xml,伪分布式只有一个节点,所以必须配置成1。还配置了datanode和namenode的节点位置,这里也要改成自己hadoop的路径。

vim hdfs-site.xml

插入下列内容:(删除原有的< configuration >)

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

ljx
Hadoop配置文件说明

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行,不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

配置yarn-site.xml文件

vim yarn-site.xml

一个参考链接

<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>127.0.0.1:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>127.0.0.1:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>127.0.0.1:8031</value> 
    </property> 
</configuration>

分割线:

单机变成伪分布式要改的文件,下面是博主的单机配置备份:

core-site.xml

<property>
    <name>fs.defaultFS</name>
    <!-- 这里填的是你自己的ip,端口默认-->
    <value>hdfs://192.168.42.136:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <!-- 这里填的是你自定义的hadoop工作的目录,端口默认-->
    <value>/usr/local/hadoop-2.7.3/tmp</value>
</property>

<property>
    <name>hadoop.native.lib</name>
    <value>false</value>
    <description>Should native hadoop libraries, if present, be used.
    </description>
</property>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.secondary.http.address</name>

<!--这里是你自己的ip,端口默认-->
        <value>192.168.42.136:50070</value>
    </property>

</configuration>
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值