文章目录
前言
这里在正式搭建hadoop全分布前配置linux基础环境(提前准备好3台虚拟机)
一.配置linux基础环境
1.关闭防火墙
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 下次重启不会开启防火墙
2.网络配置
[root@master ~] vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
ONBOOT=yes
IPADDR=192.168.10.101
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=8.8.8.8 #连通外网要配
[root@master ~]systemctl restart network #重启网络生效
3.修改主机名和hosts(映射文件)
[root@master ~]vi /etc/hostname #这里修改后需要重启之后才能生效,下面有种方法不用
[root@master ~]hostnamecyl set-hostname master #设置好之后,再bash一下就好了
[root@master ~]vi hosts #修改映射文件
192.168.10.101 master
192.168.10.102 slave1
192.168.10.103 slave2
#不要写反了,会识别不了
4.免密登录(都要)
ssh-keygen -t rsa
#回车三次
#拷贝密码到其他机器
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
5.解压jdk,hadoop安装包(配置环境变量)
tar -zxvf /opt/software/jdk -C /opt/module/
...
二.搭建Hadoop全分布
1.配置Hadoop内部环境变量
vi hadoop/etc/hadoop/hadoop-env.sh
(1)修改hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}
改为:export JAVA_HOME=/opt/module/jdk
(2)配置yarn-env.sh
vi yarn-env.sh 添加以下内容:
将JAVA_HOME的注释符去掉,更改JAVA_HOME的路径
(3)配置mapred-env.sh
vi mapred-env.sh 添加以下内容:
将JAVA_HOME的注释符去掉,更改JAVA_HOME的路径
并去掉#,修改为正确的jdk路径/usr/module/jdk
Hadoop3.1版本以后不需要在yarn-env.sh,mapreduce-env.sh配置java路径,因为统一采用了hadoop-env.sh中的java路径,如需修改与上同。
2.配置核心组件:
core-sit.xml
<!-- 配置namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 配置hadoop产生的文件目录-->
#这里配置后要创建对应的data目录 创到hadoop里到时候复制的时候就一起传过去就不用每个都创了
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/data</value>
</property>
hdfs.site.xml
<!--副本数-->这个值是指的是最大节点数,默认是3
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
....后续补充
可以配置端口访问地址
hadoop3.0以后的版本端口号换成了9870,不是50070了
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 2nn web端访问地址,默认master-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master1:9868</value>
</property>
------有默认位置———————————————————————————————————————————————————————————————————————————————————————————————————
<!--存储fsimage文件的地方-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop/data/tmp/dfs/data<value>
</property>#默认${hadoop.tmp.dir}/dfs/name
<!--hdfs数据存放block的地方-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/module/hadoop/data/tmp/dfs/data</value>
</property>#默认${hadoop.tmp.dir}/dfs/data
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
#配置网址监测yarn的运行情况默认端口8088
命令模式 y4y 复制4行,p粘贴
mapreduce-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
与hadoop2.6相比,hadoop3内容增加了很多,hadoop2只需要第一个<property>,但是hadoop3需要指出各个计算组件的环境变量
修改slaves文件(配置工作节点)
删除源文件的localhost
master
node1
node2
格式化文件系统
该操作只需要在master中进行
hdfs namenode -format 多次格式化会造成datanode启动问题,先删除data
rm -rf 目标目录
启动和关闭hadoop集群
start-dfs.sh 和start-yarn.sh分别启动hdfs和yarn
关闭时先使用stop-yarn.sh然后再stop-dfs.sh
这里需要注意start-yarn.sh需要在你配置resourcrmanger的那个节点启动
检测集群是否启动成功?
输入测试程序
hadoop jar hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 10 10
总结
以上就是今天要讲的内容,这是我的第一篇博客,全是自己总结的,希望有用