前言
本系列文章按Hadoop集群、并在此基础集群基础上搭设Hbase,这比较复杂的路径编写的。
如果资源有限,不搭设Hbase集群,可以直接使用文章二提到的本地文件模式。则本篇可以跳过,直接看文章二三。
前置工作
资源情况:集群资源,三台虚拟机
-
分别在/etc/hosts文件上,附加上:
10.xx.xx.xx bigdata-master
10.xx.xx.xx bigdata-slave1
10.xx.xx.xx bigdata-slave2 -
然后为了三台机器能相互通信我们分别生成ssh信息
三台机子分别执行 ssh-keygen -t rsa 命令生成公钥和私钥。
然后通过分别都执行:
ssh-copy-id root@bigdata-master
ssh-copy-id root@bigdata-slave1
ssh-copy-id root@bigdata-slave2
## 尝试无密码登陆
ssh bigdata-slave1
- 关闭防火墙
##查看防火墙状态
firewall-cmd --state
##停止firewall
systemctl stop firewalld.service
##禁止firewall开机启动
systemctl disable firewalld.service
4.配置JAVA_HOME
为了在shell脚本里直接使用定义变量$JAVA_HOME,配置了全局变量。
which java
/usr/bin/java
ll /usr/bin/java
/usr/bin/java -> /etc/alternatives/java
ll /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java
##设置全局变量
vim /etc/environment
添加JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
Hadoop集群搭建
- 到官网下载https://hadoop.apache.org/releases.html,稳定版的发布包,我选择的是2.9.2版本。接下来我们的工作目录都在/root/workspaces/hadoop
## 解压缩并重命名
cd /root/workspaces/
tar -xvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 hadoop
##创建数据目录
mkdir -p /data/hadoop/data
##创建命名目录
mkdir -p /data/hadoop/name
##创建临时文件夹
mkdir -p /data/hadoop/tmp
- 配置hdfs-site.xml:
修改HDFS核心配置文件/root/workspaces/hadoop/etc/hadoop/hdfs-site.xml,通过dfs.replication指定HDFS的备份因子为3,通过dfs.name.dir指定namenode节点的文件存储目录,通过dfs.data.dir指定datanode节点的文件存储目录。
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/data</value>
</property>
</configuration>
- 配置core-site.xml
修改Hadoop核心配置文件/root/workspaces/hadoop/etc/hadoop/core-site.xml,通过fs.default.name指定NameNode的IP地址和端口号,通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-master:9000</value>
</property>
</configuration>
- 配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://bigdata-master:9001</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.resourcemanager.hostname</name>
<value>bigdata-master</value>
</property>
</configuration>
- 配置masters文件
修改masters文件,该文件指定namenode节点所在的服务器机器。删除localhost,添加namenode节点的主机名bigdata-master
vim /root/workspaces/hadoop/etc/hadoop/masters
bigdata-master
- 配置slaves文件
列出etc / hadoop / slaves文件中的所有从属主机名或IP地址,每行一个。 Helper脚本(如下所述)将使用etc / hadoop / slaves文件一次在多个主机上运行命令。 它不用于任何基于Java的Hadoop配置。 为了使用此功能,必须为用于运行Hadoop的帐户建立ssh信任(通过无密码ssh或其他方式,如Kerberos)。
vim /root/workspaces/hadoop/etc/hadoop/slaves
bigdata-slave1
bigdata-slave2
- 复制分发到各个slave节点
scp -r hadoop/ root@bigdata-slave1:/root/workspaces/
scp -r hadoop/ root@bigdata-slave2:/root/workspaces/
- 配置bash的环境变量
在三台机器上,修改/etc/profile或者~/.bash_profile中,
# .bash_profile
# 在头部添加如下两行
export HADOOP_HOME=/root/workspaces/hadoop
export HADOOP_CONF_DIR=/root/workspaces/hadoop/etc/hadoop
# 在尾部添加一行
PATH=$PATH:$HADOOP_HOME/bin
export PATH
# 配置文件立即生效
source /etc/profile
- 启动Hadoop和关闭Hadoop
# 第一次启动需要格式化Namenode节点,之后不需要再格式化了
bin/hadoop namenode -format
# 启动
sbin/start-all.sh
# 启动
sbin/stop-all.sh
- 可以使用jps命令看看java的进程
jps
53520 NameNode
103696 Jps
42486 ResourceManager
53758 SecondaryNameNode
38351 DataNode
网友评论