Ubuntu18.04安装配置Hadoop 3.3.2以及创建分布式系统

目录

1. JAVA安装 & 配置

2. 开始搭建分布式环境


1. JAVA安装 & 配置

通过apt安装openjdk-8

sudo apt-get install openjdk-8-jdk

然后借鉴了该大佬的方法配置JAVA_HOME完全分布式Hadoop-3.3.0搭建 - 教程

node1@node1-VirtualBox:~$ which java
/usr/bin/java
node1@node1-VirtualBox:~$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 4月  21 21:16 /usr/bin/java -> /etc/alternatives/java
node1@node1-VirtualBox:~$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 46 4月  21 21:16 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

记录最后得到的地址,并将文件夹路径加入到~/.bashrc中

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

然后从清华源下载Hadoop相应版本(此处链接指向3.3.2)解压即可,可尝试运行/bin/hadoop文件测试,无报错则安装成功。

2. 开始搭建分布式环境

这部分内容参考了很多

Hadoop安装搭建伪分布式教程(全面)吐血整理http://dljz.nicethemes.cn/news/show-337573.html

 和完全分布式Hadoop-3.3.0搭建 - 教程https://www.keanes.cn/index.php/archives/426/

首先要关闭防火墙,对于Ubuntu系统,一般可以使用以下的命令:

# 查看防火墙状态 check the status of firewall
sudo ufw status
# 关闭防火墙 Disable the firewall
sudo ufw disable
# 开启防火墙 Enable the firewall
sudo ufw enable

然后重启网卡(如果防火墙本就没开启可跳过)

# 查看网卡信息,我这里得到的网卡名称为enp0s3
ifconfig
# 重启网卡
sudo ifconfig enp0s3 down
sudo ifconfig enp0s3 up

随后修改主机名,我这里使用的是虚拟机,直接将基础虚拟机复制两份,并将虚拟机主机名修改为main,node01,node02,修改方法

# 获取当前主机名
hostname
# 打开文件,文件内容仅有主机名,修改即可
sudo gedit /etc/hostname
# 打开文件,向文件内容中添加127.0.0.1  node01
sudo gedit /etc/hosts

然后分别修改位于hadoop/etc/hadoop文件夹下的core-site.xml, hdfs-site.xml, yarn-site.xml和mapred-site.xml

<!--core-site.xml-->
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/media/node1/More/username/hadoop-3.3.2/tmp</value>
    <description>Abase for other temporary directories</description>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://main:9000</value>
    <description>host, port of the file system</description>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    <description>size of buffer zone</description>
  </property>
</configuration>

<!--hdfs-site.xml-->
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>${hadoop.tmp.dir}/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>${hadoop.tmp.dir}/dfs/data</value>
  </property>
  <property>
    <name>dfs.datanode.handler.count</name>
    <value>10</value>
  </property>
</configuration>

<!--yarn-site.xml-->
<configuration>
  <property>
    <name>yarn.acl.enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.admin.acl</name>
    <value>Admin ACL</value>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

<!--mapred-site.xml-->
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

然后复制到另外n台虚拟机上,这里因为我只修改了etc/hadoop的内容,所以只复制了该文件夹的内容

scp -r hadoop node01:/media/node1/More/username/hadoop-3.3.2/etc/

然后执行

./bin/hdfs namenode -format

格式化文件系统,然后执行 

./sbin/start-all.sh

这一步即使设置了JAVA_HOME变量也有可能会报错,这时候需要修改/etc/hadoop/hadoop.env.sh向里面再加入一次JAVA_HOME的环境变量值,就可以运行了。除此之外,这一步报错可能也会导致在调用start-all.sh的时候报错,这个时候就需要寻找之前开启了的hadoop进程关闭它们再重新启动hadoop,可能会用到的代码如下所示:

# List all the threads
ps -aux
# List all the threads which belong to hadoop
ps -aux | grep hadoop
# Kill these threads
sudo kill [id of thread]

启动完成没有报错之后在浏览器中打开localhost:9870打开hadoop页面,显示正常即为成功。

封面图来自Apache Hadoop 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值