hadoop 伪集群
摘要
伪集群适用于测试使用,在实际工作中很常用,以前都是用2.x版本,现在改用3.x版本了,安装步骤记录一下。
一.基础配置
1.1 版本
java 用的:jdk-8u321-linux-x64.tar.gz //请自行下载
hadoop用的: hadoop-3.2.3.tar.gz //请自行去官网下载hadoop官网
hadoop-3.2.3 对应的开发文档地址:document
下载之后自行解压即可
1.2配置java和hadoop 环境变量
打开 /env/profile 按照如下格式配置环境变量,路径请按照自己的解压目录修改即可
#hadoop env
export HADOOP_HOME=/soft/hadoop/hadoop-3.2.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#java env
export JAVA_HOME=/soft/jdk/jdk1.8.0_321
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
1.3修改hosts
vim /etc/hostname
我的hostname 为master
1.4配置免密登陆
- ssh-keygen -t rsa
- ssh-copy-id master //master替换成你自己的主机名
1.5 hadoop中配置导入java
vim /soft/hadoop/hadoop-3.2.3/etc/hadoop/hadoop-env.sh //请改成自己的解压位置
文件中加入: export JAVA_HOME=/soft/jdk/jdk1.8.0_321
二. hadoop 的配置
进入目录:cd /soft/hadoop/hadoop-3.2.3/etc/hadoop
2.1 配置workers
workers中内容清空,加入你的主机名,在这里我加的是master
2.2 配置core-site.xml
<!-- 指定 NameNode 的内部通讯地址,这里推荐使用 8020 端口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定数据储存目录,默认是在 /tmp 路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/hadoop/data</value>
</property>
2.3 配置hdfs-site.xml
<!-- 设置文件副本为 1,从而节省磁盘,集群模式下默认为 3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 指定 是否可以直接在程序中访问hdfs -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!-- 指定 NameNode 的 WEB 访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- secdond NN WEB 访问地址,此配置为可选项 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50071</value>
</property>
2.4 配置yarn-site.xml
<!-- 指定 MR 走的 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManger 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 指定 类路径,这里配置的值 可以通过命令 hadoop classpath -->
<property>
<name>yarn.application.classpath</name>
<value>/soft/hadoop/hadoop-3.2.3/etc/hadoop:/soft/hadoop/hadoop-3.2.3/share/hadoop/common/lib/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/common/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/hdfs:/soft/hadoop/hadoop-3.2.3/share/hadoop/hdfs/lib/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/hdfs/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/mapreduce/lib/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/mapreduce/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/yarn:/soft/hadoop/hadoop-3.2.3/share/hadoop/yarn/lib/*:/soft/hadoop/hadoop-3.2.3/share/hadoop/yarn/* </value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志聚集服务地址,注入到历史服务器 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
<!-- 日志的保留天数(单位秒) -->
<property>
<name>yarn.log-aggregation-seconds</name>
<value>604800</value>
</property>
关于yarna.application.classpath的值看下图:
2.5 配置mapred-site.xml
<!-- 指定 MR 程序运行在 yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器内部地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器 WEB 地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
三.用户相关
hadoop新版本默认以root用户启动会出错的,然而大多数时候我们安装的时候习惯用root,毕竟时自己的测试机器。 所以我就是以root用户安装启动的,那么则需要添加如下配置以支持root启动。
3.1在start-dfs.sh 和 stop-dfs.sh 中 新增!!!:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh 和 stop-yarn.sh 中 新增
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
四.初始化和启动
hdfs namenode -format
start-all.sh //也可以:start-dfs.sh 和start-yarn.sh 分别启动,start-all.sh是一起启动。
上面两个都能打开表示安装成功。
window访问的时候记得修改windows中 hosts文件 比如我的就是:192.168.39.128 master