目录
安装JAVA(主节点)
使用命令,java -version,检查原本系统自带jdk
- 卸载自带jdk,命令:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps。
- 拖拽方式,上传安装包到Linux的/opt目录下:
使用cd命令进入/opt并解压文件到/opt下,命令:tar -xzvf jdk-8u221-linux-x64.tar.gz -C /opt
使用cd命令进入到jdk解压后文件夹,用pwd查看路径,并使用鼠标复制路径/opt/jdk1.8.0_221
在/etc/profile.d下创建一个my_env.sh,进行配置JAVA环境变量,命令:vi /etc/profile.d/my_env.sh(新文件)
重新启动profile,命令:source /etc/profile
验证java是否安装成功:java -version
安装Hadoop(主节点)
1.上传文件
2.使用cd命令进入文件所在路径,再解压安装,命令:tar -xzvf hadoop-3.1.3.tar.gz -C /usr/local
3.配置环境变量,同JAVA,在/etc/profile.d修改my_env.sh
4.使用cd命令,进入/usr/local/hadoop-3.1.3/etc/hadoop,配置vi hadoop-env.sh,在末尾加上2句
5.重启profile,命令:source /etc/profile
6.使用命令hadoop version检查是否安装成功
配置Hadoop文件(主节点)
进入Hadoop的配置目录,通常是 $HADOOP_HOME/etc/hadoop/,指令:cd $HADOOP_HOME/etc/hadoop/
hadoop-env.sh
设置JAVA_HOME,在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改hadoop-env.sh文件,添加以下部分
export JAVA_HOME=/opt/jdk1.8.0_221
yarn-env.sh
在/usr/local/hadoop-3.1.3/etc/hadoop/
路径下,修改yarn-env.sh文件,在底部添加以下部分
在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改yarn-env.sh文件,在底部添加以下部分
export JAVA_HOME=/opt/jdk1.8.0_221
core-site.xml
配置Hadoop的核心参数,如文件系统地址、端口等。进入/usr/local/hadoop-3.1.3/etc/hadoop/,修改core-site.xml文件,添加以下部分,注意,以下的master都是自己的主机名称(回顾:使用hostname查看自己的主机名称)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml
配置HDFS参数,如数据块大小、副本数量等。在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改hdfs-site.xml文件,添加以下部分
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/data</value>
</property>
(可以不写dfs.namenode.name.dir和dfs.datanode.data.dir配置,这样的话就不会额外定制name、data的路径,会使用core-site.xml的/var/log/hadoop/tmp的路径,如/var/log/hadoop/tmp/hdfs/name。但是偶尔不配置容易出现bug,因此这里还是建议配置)
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
mapred-site.xml
配置MapReduce参数,如任务调度器类型等。在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改mapred-site.xml文件,添加以下部分
<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>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
yarn-site.xml
配置YARN参数,如资源管理器地址、节点管理器地址等。在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改yarn-site.xml文件,添加以下部分
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/tmp/logs</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http:///master:19888/jobhistory/logs</value>
<description>URL for job history server</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<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.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
</configuration>
start-dfs.sh和stop-dfs.sh
到/usr/local/hadoop-3.1.3/sbin/下,修改start-dfs.sh和stop-dfs.sh文件,在文件开头添加以下部分
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs(鉴于会提示WARNING,把这句修改成HDFS_DATANODE_SECURE_USER=hdfs)
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh和stop-yarn.sh
到/usr/local/hadoop-3.1.3/sbin/下,修改start-yarn.sh和stop-yarn.sh文件,在文件开头添加以下部分
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
workers
在/usr/local/hadoop-3.1.3/etc/hadoop/路径下,修改workers文件,改成以下部分(这里不添加master节点,因此后面启动时候master没有datanote,其他3个子节点会有datanote)
slave1
slave2
slave3