基于 CentOS 7 构建完全分布式大数据平台

1. 环境

Windows 10 机器一台
Putty 64-bit(含 SSH、FTP 工具)
云服务器(三个节点)

2. 网络

主机名 与 IP 映射如下

master.novalocal		192.168.72.126
slave1.novalocal		192.168.72.127
slave2.novalocal		192.168.72.128

3. 目标

分布式 Hadoop、单节点 Hive

4. 安装包列表

注: 注释中含'(必备)'的为构建环境必须的压缩包,不含必备的可自行选择

# Hadoop 安装包(必备)
hadoop-2.7.4.tar.gz

# Hive 安装包(必备)
apache-hive-2.1.1-bin.tar.gz

# mysql 安装包(必备)
mysql57-community-release-el7-8.noarch.rpm

# mysql JDBC(必备)
mysql-connector-java-5.0.4-bin.jar

# JDK(必备)
jdk-8u151-linux-x64.tar.gz

# 阿里云开源镜像
Centos-7.repo

# yum 加速
axel-2.4.tar.gz

# 配置 yum 加速需要的文件
axelget.conf

# 配置 yum 加速需要的文件
axelget.py

5. 准备工作

注:从步骤 5 开始到 6.4 之前只在 master 节点执行

5.1 传输安装包

通过 Putty 下的 FTP 工具传输安装包列表中的所有安装包到 master 服务器中
放一张导入所有安装包后的图

5.2 配置 yum 源

# 备份原有的 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo CentOS-Base.repo.cp

# 配置阿里云镜像源
cp Centos-7.repo /etc/yum.repos.d/

# 生成新的 yum 缓存
yum makecache

5.3 安装 GCC GCC-C++

yum install gcc gcc-c++

5.4 yum 加速

参考文章:Linux 软件下载速度优化

5.5 主机名 与 IP 映射

将 IP 与 主机名映射配置好

# 主机名 与 IP 映射配置文件
vi /etc/hosts

配置结果如下所示

6. 安装

6.1 解压安装包

# 解压 JDK 安装包
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/

# 解压 Hadoop 安装包
tar -zxvf hadoop-2.7.4.tar.gz -C /usr/local/

# 解压 Hive 安装包
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local/

6.2 安装 MySQL

参考文章:Linux 常用软件管理

6.2.1 配置 MySQL

# 开启 MySQL 服务
systemctl start  mysqld.service

# 查看初始密码
grep 'temporary password' /var/log/mysqld.log

# 使用初始密码登录
mysql -u root -p

# 修改 root 用户密码, PASSWORD 为指定密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';

注:修改密码时注意对应 MySQL 版本对应的密码安全检查插件

6.2.2 MySQL 开启远程连接

参考文章:Tips —— MySQL

6.3 配置 Hadoop

Hadoop 配置文件目录:HADOOP_DIR/etc/hadoop/
core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master.novalocal:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop-2.7.4/tmp</value>
</property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-2.7.4/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-2.7.4/tmp/dfs/data</value>
    </property>
</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master.novalocal:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master.novalocal:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master.novalocal:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master.novalocal:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master.novalocal:8088</value>
  </property>
</configuration>

mapred-ste.xml

# 生成该配置文件
cp mapred-site.xml.template mapred-site.xml
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master.novalocal:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master.novalocal:19888</value>
  </property>
</configuration>

slaves

slave1.novalocal
slave2.novalocal

hadoop-env.sh

# 在该文件中加入如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_151

6.4 配置环境变量

# /etc/profile 为配置文件
# 加入如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/local/hadoop-2.7.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 使配置文件立即生效
source /etc/profile

6.5 免密码登录

#每个节点都执行

cd ~/.ssh/

# 生成密钥
ssh-keygen
# 在 slave1 和 slave2 两个节点上分别执行
scp ~/.ssh/id_rsa.pub root@192.168.72.126:~/id_rsa.pub.1
scp ~/.ssh/id_rsa.pub root@192.168.72.126:~/id_rsa.pub.2
# 在 master 节点上执行
cat ~/id_rsa.pub.1 >> .ssh/authorized_keys
cat ~/id_rsa.pub.2 >> .ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys root@slave1.novalocal:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2.novalocal:~/.ssh/

6.6 节点之间同步文件

需要同步的文件共有下列文件:

  1. /etc/hosts
  2. /etc/profile
  3. /usr/local/jdk1.8.0_151
  4. /usr/local/hadoop-2.7.4
# 在 master 节点执行如下命令
# 拷贝 主机名 IP 映射文件
scp /etc/hosts root@slave1.novalocal:/etc/
scp /etc/hosts root@slave2.novalocal:/etc/

# 拷贝环境变量配置文件
scp /etc/profile root@slave1.novalocal:/etc/
scp /etc/profile root@slave2.novalocal:/etc/

# 拷贝 JDK
scp -r /usr/local/jdk1.8.0_151/ root@slave1.novalocal:/usr/local/
scp -r /usr/local/jdk1.8.0_151/ root@slave2.novalocal:/usr/local/

# 拷贝 Hadoop
scp -r /usr/local/hadoop-2.7.4/ root@slave1.novalocal:/usr/local/
scp -r /usr/local/hadoop-2.7.4/ root@slave2.novalocal:/usr/local/
# 在两个 slave 节点上执行如下命令
source /etc/profile

6.7 格式化 Hadoop 集群

# 在 master 节点上执行如下命令
hdfs namenode -format

6.8 启动 Hadoop 集群并测试

# 在 master 节点上执行如下命令
start-all.sh

# 三个节点上执行 jps 查看进程状态
jps

master
在这里插入图片描述
slave1
在这里插入图片描述
slave2
在这里插入图片描述
打开网页访问 http://192.168.72.126:50070

DataNode 存活数量与实际情况一致, Hadoop 集群构建结束

6.9 安装 Hive

参考文章:基于 Centos 7 伪分布式大数据环境构建

参考网址

Hadoop安装教程_单机/伪分布式配置
完全分布式安装

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值