高可用方式(使用了ZooKeeper)的安装步骤
https://www.cnblogs.com/live41/p/15483192.html
* 全文的命令都是在登录root账号的情况下执行。
一、硬件环境
假设有3台机,IP及主机名如下:
192.168.100.105 c1 192.168.100.110 c2 192.168.100.115 c3
二、软件环境
操作系统:Ubuntu Server 18.04
JDK:1.8.0
Hadoop:3.3.0/3.3.1
* 这里的ZooKeeper、Hadoop根目录都放在/home/目录下
三、系统运行环境配置
https://www.cnblogs.com/live41/p/15525826.html
四、部署Hadoop
* 以下操作在每台机都要执行一次
1.下载Hadoop安装包
https://downloads.apache.org/hadoop/common/
2.解压安装包
这里假定下载的是hadoop-3.3.1.tar.gz文件,解压到/usr/bin/目录
tar -xvf hadoop-3.3.1.tar.gz -C /usr/local/
把目录名也改一下
mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
3.创建目录
cd /usr/local/hadoop
sudo mkdir hdfs
sudo mkdir hdfs/datanode
sudo mkdir hdfs/namenode
sudo mkdir hadoop/logs
sudo mkdir yarn
sudo mkdir yarn/logs
4.配置环境变量
vim ~/.bashrc
添加内容
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root
更新环境变量
source ~/.bashrc
测试
hadoop version
5.修改Hadoop的配置
(1) 进入Hadoop的配置文件目录
cd $HADOOP_CONF_DIR
或cd /usr/local/hadoop/etc/hadoop/
(2) 编辑hadoop-env.sh文件
vim hadoop-env.sh
查看以下内容,如果没有就加上,如果已有就不用改。
export JAVA_HOME=/usr/bin/jdk1.8.0 export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop export HADOOP_LOG_DIR=/usr/local/hadoop/logs
(3) 编辑core-site.xml
vim core-site.xml
在c1机添加以下内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://c1:9820/</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> </configuration>
在c2、c3机添加以下内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://c1:9820/</value> <description>NameNode URI</description> </property> </configuration>
(4) 编辑hdfs-site.xml文件
vim hdfs-site.xml
在c1机添加以下内容:
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:///usr/local/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/hadoop/hdfs/datanode</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.datanode.use.datanode.hostname</name> <value>false</value> </property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> </configuration>
在c2、c3添加以下内容:
<configuration> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/hadoop/hdfs/datanode</value> <description>DataNode directory</description> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.datanode.use.datanode.hostname</name> <value>false</value> </property> </configuration>
(4) 编辑yarn-site.xml文件
vim yarn-site.xml
在c1机添加以下内容:
<configuration> <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.nodemanager.local-dirs</name> <value>file:///usr/local/hadoop/yarn/local</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>file:///usr/local/hadoop/yarn/logs</value> </property> </configuration>
在c2、c3机添加以下内容:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
(5) 编辑mapred-site.xml文件
vim mapred-site.xml
在c1机添加以下内容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>c1:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>c1:19888</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/mr-history/tmp</value> </property> <property> <name>mapreduce.jobhistory.done-dir</name> <value>/mr-history/done</value> </property> </configuration>
在c2、c3机添加以下内容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
(6) 修改workers文件(旧版的是slaves文件)
vim workers
添加以下内容:
c1
c2
c3
6.修改文件权限
chmod 777 /usr/local/hadoop/hdfs chmod 777 /usr/local/hadoop/logs
7.格式化hdfs
hdfs namenode -format
五、启动和停止Hadoop
1.启动
在c1机执行:
start-dfs.sh start-yarn.sh
2.检查是否运行正常
每台机执行:
jps
3.创建目录和查看目录
在c1机执行:
hdfs dfs -mkdir /Clotho hdfs dfs -ls /
4.登录管理界面
http://c1:9870/ 或 http://192.168.100.105:9870/
5.停止
在c1机执行:
stop-yarn.sh stop-dfs.sh
附:更简单和安全的操作
https://tecadmin.net/install-hadoop-on-ubuntu-20-04/
http://www.mtitek.com/tutorials/bigdata/hadoop/install.php
以上2篇新建了hadoop用户来运行,且并没有关闭防火墙,只是开通了必须的端口。