hadoop_ 快速搭建_1host
1 root用户配置
1.1 设置静态ip
- 修改网络文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
NM_CONTROLLED=no # 不使用网络管理器控制
ONBOOT=yes # 开启启动
BOOTPROTO=static # [none|static|bootp|dhcp](不使用|静态IP|BOOTP协议|DHCP协议)
IPADDR=10.10.10.81 # 本机地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=10.10.10.2 # 默认网关
DNS1=8.8.8.8
DNS2=8.8.4.4
- 重启网络:
service network restart
1.2 修改主机名称
hostnamectl set-hostname lx81
1.3 配置hosts
vi /etc/hosts
10.10.10.81 lx81
1.4 修改时区
ln -sb /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 时区文件软连接覆盖
timedatectl # 显示当前时间信息
1.5 关闭防火墙
systemctl stop firewalld # 关闭:
firewall-cmd --state # 显示状态
systemctl disable firewalld # 禁止开启启动:`
systemctl is-enabled firewalld # 查看是否开机启动:
1.6 安装java
- 删除原来的java
rpm -qa | grep java # 查看是否安装java
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
yum -y remove java # 删除原版本java
- 安装java
tar xzvf jdk1.8.0_211.tar.gz
mv jdk1.8.0_211 /usr/lib/
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
- 分发java
1.7 创建用户,并开启免密登录
useradd hadoop
passwd hadoop
chmod +w /etc/sudoers
echo 'hadoop ALL=(root)NOPASSWD:ALL' >> /etc/sudoers # 免密登录权限
# 或者hadoop ALL=(ALL) ALL
chmod -w /etc/sudoers
2 hadoop用户配置
2.1 配置SSH
【逻辑,机器可以免密登录另外一个拥有自己公钥的主机】
【原理,机器发送公钥到目标,目标计算公钥返回私钥,返回的私钥和本机一致则验证成功】
ssh-keygen -t rsa # 生成密钥文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 配置密钥,加入公钥
chmod 600 ~/.ssh/authorized_keys # 修改密钥文件权限
chmod 700 ~/.ssh
2.2 编辑用户环境变量
vi ~/.bash_profile
export HADOOP_HOME=$HOME/program/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bash_profile
2.3 安装hadoop
tar xzvf hadoop-3.2.0.tar.gz
mv hadoop-3.2.0 $HADOOP_HOME
2.4 执行环境指定jave_home路径
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> $HADOOP_HOME/etc/hadoop/yarn-env.sh
2.5 配置hadoop的xml文件
vi $HADOOP/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- HDFS(分布式文件储存系统)的NameService,是NameNode的URL -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://lx81:9000</value>
</property>
<!-- hadoop临时文件目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/program/hadoop/tmp/hatmp</value>
</property>
<!-- 指定任何ip可以访问 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!-- 指定所有账号可以访问 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 备用主机地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>lx81:50090</value>
</property>
<!-- NameNode名称空间存储地址 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/program/hadoop/tmp/namenode</value>
</property>
<!-- 指定HTTP通讯地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>lx81:50070</value>
</property>
<!-- 冗余数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- DataNode数据存储地址 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/program/hadoop/tmp/datanote</value>
</property>
</configuration>
<!-- 文件块大小 -->
<property>
<name>dfs.block.size</name>
<value>134217728</value><!--修改为128M -->
<description>Block size</description>
</property>
vi $HADOOP/etc/hadoop/yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- NM(NodeManager)的附属服务,需要设置成mapreduce_shuffle才能运行MapReduce任务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 其应用访问管理接口 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>lx81:8032</value>
</property>
<!-- 调度接口地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>lx81:8030</value>
</property>
<!-- RM的Web访问地址 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>lx81:8088</value>
</property>
<!-- 向rm汇报心跳,领取任务的地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>lx81:8031</value>
</property>
<!-- RM管理员接口地址 -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>lx81:8033</value>
</property>
<!-- 启动聚合操作日志 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 计算任务托管的资源管理名称 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置MapReduce JobHistory Server 地址,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>0.0.0.0:10020</value>
</property>
<!-- 配置MapReduce JobHistory Server Web 地址,默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:19888</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/workers
master
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_211
2.6 启动
hadoop namenode -format # 格式化
$HADOOP_HOME/sbin/start-all.sh # 启动