hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-env.sh
mapred-site.xml
yarn-site.xml
学习资料
Hadoop 组件之间需要基于 SSH 进行通讯,配置免密登录后不需要每次都输入密码。
配置映射,配置 ip 地址和主机名映射
vim /etc/hosts # 文件末尾增加 192.168.80.100 server
生成公钥私钥
ssh-keygen -t rsa
授权,进入 ~/.ssh 目录下,查看生成的公匙和私匙,并将公匙写入到授权文件:
cd ~/.ssh cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys
进入/opt/server/hadoop-3.1.0/etc/hadoop 目录下,修改以下配置:
vim hadoop-env.sh export JAVA_HOME=/opt/server/jdk1.8.0_131
(此目录不需要手动创建)
<configuration> <property> <!--指定 namenode 的 hdfs 协议文件系统的通信地址--> <name>fs.defaultFS</name> <value>hdfs://server:8020</value> </property> <property> <!--指定 hadoop 数据文件存储目录--> <name>hadoop.tmp.dir</name> <value>/app/hadoop_data</value> </property> </configuration>
<configuration> <property> <!--由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1--> <name>dfs.replication</name> <value>1</value> </property> </configuration>
vim workers # 配置所有从属节点的主机名或 IP 地址,由于是单机版本,所以指定本机即可: server
关闭防火墙,不关闭防火墙可能导致无法访问 Hadoop 的 Web UI 界面
# 查看防火墙状态 sudo firewall-cmd --state # 关闭防火墙: sudo systemctl stop firewalld # 禁止开机启动 sudo systemctl disable firewalld
初始化,第一次启动 Hadoop 时需要进行初始化,进入 /opt/server/hadoop-3.1.0/bin目录下,执行以下命令:
cd /opt/server/hadoop-3.1.0/bin ./hdfs namenode -format
Hadoop 3中不允许使用root用户来一键启动集群,需要配置启动用户
cd /opt/server/hadoop-3.1.0/sbin/ # 编辑start-dfs.sh、stop-dfs.sh,在顶部加入以下内容 HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
启动HDFS,进入/opt/server/hadoop-3.1.0/sbin/ 目录下,启动 HDFS:
cd /opt/server/hadoop-3.1.0/sbin/ ./start-dfs.sh
验证是否启动
[root@server bin]# jsp 41032 DataNode 41368 Jps 40862 NameNode 41246 SecondaryNameNode
配置环境变量,方便启动
export HADOOP_HOME=/opt/server/hadoop-3.1.0 export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin source /etc/profile
./hadoop fs -ls /
vim yarn-env.sh export JAVA_HOME=/opt/server/jdk1.8.0_131
yarn
classic
local
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</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>
<configuration> <property> <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在Yarn 上运行 MapRedvimuce 程序。--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
# start-yarn.sh stop-yarn.sh在两个文件顶部添加以下内容 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
进入 $/sbin/ 目录下,启动 YARN:
./start-yarn.sh
验证是否启动成功
[root@server bin]# jsp 41655 ResourceManager 41032 DataNode 42125 Jps 40862 NameNode 41246 SecondaryNameNode 41983 NodeManager
Hadoop自带的hadoop-mapreduce-examples-x.jar中包含一些示例程序,位于{HADOOP_HOME}/share/hadoop/mapreduce 目录。 进入 /bin/ 目录下,执行以下命令
hadoop jar /opt/server/hadoop-3.1.0/share/hadoop/mapreduce/hadoop-mapreduce- examples-3.1.0.jar pi 2 10
查看运行效果./hdfs getconf -confKey fs.defaultFS