Ubuntu18.04下安装配置hadoop-3.1.2完全分布式集群(Hadoop之旅4)

上一篇:Ubuntu18.04下配置ssh免密登录(hadoop之旅3)
https://blog.csdn.net/qq_26373925/article/details/97422727

本文主要内容:

0.安装配置hadoop-3.1.2

集群规划: 三节点hadoop环境 (也就是三台 Ubuntu虚拟机

master装载软件: hadoop-3.1.2hive-3.1.1zookeeper-3.4.14hbase-2.1.5
node1装载软件: hadoop-3.1.2zookeeper-3.4.14hbase-2.1.5
node2装载软件: hadoop-3.1.2zookeeper-3.4.14hbase-2.1.5


1.在master上安装配置hadoop-3.1.2

进入目录cd /usr/local,从清华镜像下载hadoop3.1.2

sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

若下载时发生证书错误可在wget后增加参数--no-check-certificate

解压tar -zxvf hadoop-3.1.2.tar.gz,使用ls可以看到当前目录下出现解压好的hadoop-3.1.2目录
在这里插入图片描述


配置环境变量

vi /etc/profilegedit /etc/profile

profile的文件最下方加入内容:

#HADOOP
export HADOOP_HOME=/usr/local/hadoop-3.1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

刷新环境变量

source /etc/profile


修改Hadoop配置文件

进入配置文件目录
cd /usr/local/hadoop-3.1.2/etc/hadoop

修改配置文件(1/6)

hadoop-env.sh

vi hadoop-env.shgedit hadoop-env.sh

添加以下内容

export JAVA_HOME=/usr/local/jdk1.8.0_211
export HADOOP_PID_DIR=/usr/local/hadoop-3.1.2/pids
export HADOOP_LOG_DIR=/usr/local/hadoop-3.1.2/logs

说明:
JAVA_HOME:hadoop所用的jdk路径
HADOOP_PID_DIR:进程标识文件目录
HADOOP_LOG_DIR:日志文件目录

在这里插入图片描述

修改配置文件(2/6)

core-site.xml

vi core-site.xmlgedit core-site.xml

添加以下内容

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop-3.1.2/tmp</value>
  </property>
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

说明:
fs.defaultFS:NameNode的URI,HDFS端口
hadoop.tmp.dir:存放hadoop文件系统的基本配置文件
hadoop.proxyuser参考:https://blog.csdn.net/u012948976/article/details/49904675(可选,我需要用到这个)


修改配置文件(3/6)

hdfs-site.xml

vi hdfs-site.xmlgedit hdfs-site.xml

添加以下内容

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop-3.1.2/hdfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop-3.1.2/hdfs/data</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:50090</value>
  </property>
  <property>  
	<name>dfs.webhdfs.enabled</name>  
	<value>true</value>  
  </property>
</configuration>

说明:
dfs.replication:备份系数
dfs.namenode.name.dir:fsimage存放路径
dfs.datanode.data.dir:数据块文件的本地路径
dfs.namenode.secondary.http-address:配置SecondaryNameNode的地址(我将其规划在虚拟机node2上,此时还没创建这个虚拟机,先配置了再说)
dfs.webhdfs.enabled:开启webhdfs


修改配置文件(4/6)

mapred-site.xml

vi mapred-site.xmlgedit mapred-site.xml

添加以下内容

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
   <property>
       <name>yarn.app.mapreduce.am.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
   </property>
   <property>
       <name>mapreduce.map.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
   </property>
   <property>
       <name>mapreduce.reduce.env</name>
       <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.2</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.address</name>
       <value>node2:10020</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>node2:19888</value>
   </property>
</configuration>

简要说明:
配置Hadoop jobhistory历史服务器以及MAPRED_HOME


修改配置文件(5/6)

yarn-site.xml

vi yarn-site.xmlgedit yarn-site.xml

添加以下内容

<configuration>
    <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.localizer.address</name>
      <value>0.0.0.0:8140</value>
   </property>
   <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>master</value>
   </property>
   <property>
       <name>yarn.log-aggregation-enable</name>
       <value>true</value>
   </property>
   <property>
       <name>yarn.log-aggregation.retain-seconds</name>
       <value>604800</value>
   </property>
   <property>
       <name>yarn.log.server.url</name>
       <value>http://node2:19888/jobhistory/logs</value>
   </property>
</configuration>

说明:
yarn.log.server.url配置在jobhistory那台机器上(node2)
yarn.resourcemanager.hostname:配置resourcemanager在master上

额外配置(暂时不必添加):

<property>
   <name>yarn.scheduler.minimum-allocation-mb</name>
   <value>2048</value>
   <description>default value is 1024</description>
</property>
<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2</value>
    <description>default value is 2.1</description>
</property>

说明:
主要是对内存使用的控制,没配置的时候,反正我32G的台式爆内存了
可以先不管它,出了问题再来研究这个


修改配置文件(6/6)

workers

vi workersgedit workers

添加以下内容

master
node1
node2

说明:
输入咱们的节点名称(hostname),也就是三台虚拟机的主机名


配置完毕

接下来,将master上的配置好的hadoop分发到node1node2上的/usr/local目录

scp -r /usr/local/hadoop-3.1.2 用户名@node1:/usr/local
scp -r /usr/local/hadoop-3.1.2 用户名@node2:/usr/local

用户名为目标虚拟机上的用户名(如果是克隆的虚拟机,那么都是跟master的用户名一样的

然后将profile文件也分发一下,在另外两台机器上使用source /etc/profile更新环境变量


master上格式化namenode

控制台输入,hdfs namenode -format

未出现报错和警告即可视为成功,若出现问题请务必解决

在这里插入图片描述
启动hadoop,在master上运行start-all.sh

若提示找不到start-all.sh,请检查环境变量是否配置正确(此启动脚本在hadoop目录中的bin目录里)

jps查看各机器上启动的服务

purepeace@master:$ jps
3412 ResourceManager
3053 NameNode
3726 Jps
purepeace@node1:$ jps
3412 Jps
2984 DataNode
3288 NodeManager
3151 SecondaryNameNode
purepeace@node2:$ jps
2999 DataNode
3290 Jps
3167 NodeManager

此时可以通过网页看到hdfs了,用浏览器访问:master的ip地址:50070 即可

在这里插入图片描述

node2上启动historyserver服务

mapred --daemon start historyserver

可使用stop-all.sh关闭hadoop服务

需要注意的是,如果ResourceManager没有配置在master上,而是配置在了其它的机器上,那就不能直接使用start-all.sh

应该分别启动:
master: start-dfs.sh
ResourceManager的那台机器:start-yarn.sh

至此,hadoop-3.1.2已安装配置完成

猜你喜欢

转载自blog.csdn.net/qq_26373925/article/details/97415018