文章目录
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 [email protected]:~/id_rsa.pub.1
scp ~/.ssh/id_rsa.pub [email protected]:~/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 [email protected]:~/.ssh/
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
6.6 节点之间同步文件
需要同步的文件共有下列文件:
- /etc/hosts
- /etc/profile
- /usr/local/jdk1.8.0_151
- /usr/local/hadoop-2.7.4
# 在 master 节点执行如下命令
# 拷贝 主机名 IP 映射文件
scp /etc/hosts [email protected]:/etc/
scp /etc/hosts [email protected]:/etc/
# 拷贝环境变量配置文件
scp /etc/profile [email protected]:/etc/
scp /etc/profile [email protected]:/etc/
# 拷贝 JDK
scp -r /usr/local/jdk1.8.0_151/ [email protected]:/usr/local/
scp -r /usr/local/jdk1.8.0_151/ [email protected]:/usr/local/
# 拷贝 Hadoop
scp -r /usr/local/hadoop-2.7.4/ [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.7.4/ [email protected]:/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 伪分布式大数据环境构建