Hadoop的组成部分
1. HDFS (分布式文件系统)
- NameNode(主节点)
- DataNode(从节点)
- SecondaryNameNode(辅助节点)
2. YARN(分布式资源调度)
- ResourceManager (主节点)
- NodeManager (从节点)
3. MapReduce(分布式计算框架)
- Mapper (数据的并行处理)
- Reducer (数据的聚合操作)
Hadoop集群搭建
0. 卸载自带的MySQL
# 关闭mysql
service mysql stop
# 删除mysql
rm -rf /usr/local/mysql
1. 准备三台服务器(虚拟机)
2. 修改IP和主机名
# 查看IP
ifconfig / ip a
# 修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.121.154
# 重启网络
systemctl restart network
# 修改主机名
hostnamectl set-hostname 主机名
3.配置主机名和IP映射,方便将来集群之间可以直接通过主机名相互访问
vi /etc/hosts
# 添加如下内容
# ip 主机名
192.168.121.154 hadoop01
192.168.121.155 hadoop02
192.168.121.156 hadoop03
4. 设置集群的ssh免密登录
# 1. 删除原来的ssh密钥文件
rm -rf /root/.ssh
# 2. 配钥匙
ssh-keygen -t rsa 一堆回车
# 3. 发钥匙(笛卡尔积)
ssh-copy-id 主机名
5. 关闭防火墙
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 禁用自启动
systemctl disable firewalld
6. 安装JDK
# 上传解压安装包 改名字
tar zxvf
# 配置环境变量
echo 'export JAVA_HOME=/opt/jdk1.8' >> /etc/profile
echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
7. 安装Hadoop的HDFS
① 上传解压该名字
# 解压
tar zxvf hadoop-2.7.7.tar.gz
# 删除不需要的cmd命令
rm -rf /opt/hadoop-2.7.7/bin/*.cmd
rm -rf /opt/hadoop-2.7.7/sbin/*.cmd
# 删除不需要的doc文件
rm -rf /opt/hadoop-2.7.7/share/doc
② 修改配置文件/opt/hadoop-2.7.7/etc/hadoop
# 进入对应的目录下
cd /opt/hive-1.2.2/conf
cp hive-env.sh.template hive-env.sh
export JAVA_HOME=/opt/jdk1.8
export HADOOP_CONF_DIR=/opt/hadoop-2.7.7/etc/hadoop
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.7/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
hadoop01
hadoop02
hadoop03
- mapred-env.sh
- mapred-site.xml
- yarn-env.sh
- yarn-site.xml
③ 分发安装包
scp -r /opt/hadoop-2.7.7 hadoop02:/opt
scp -r /opt/hadoop-2.7.7 hadoop03:/opt
④ 配置环境变量
echo 'export HADOOP_HOME=/opt/hadoop-2.7.7' >> /etc/profile
echo 'export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH' >> /etc/profile
source /etc/profile
⑤ 对HDFS进行格式化
hdfs namenode -format
⑥ 启动集群
start-dfs.sh
⑦ 测试使用
scp 补充
# scp 本机路径 目标机器用户@目标主机名:目标路径
scp /root/1.txt hadoop02:/opt
# -r 递归发送目录
# -q 不显示细节
编写一个SSCP脚本
# 将一个文件发送到集群的所有机器
#!/bin/bash
HOSTS="hadoop01 hadoop02 hadoop03"
for HOST in $HOSTS
do
echo "正在发送${1}到${HOST}的${2}.."
scp -rq $1 $HOST:$2
echo "发送完成"
echo "------------------------"
done
# 先将sscp文件放到/root/shell目录下
echo 'export PATH=.:/root/shell:$PATH' >> /etc/profile
source /etc/profile
# 给sscp添加权限
chmod -R 755 /root/shell/sscp
# 测试使用
sscp 1.txt /opt