Linux 下搭建 Hadoop 环境
作者:互联网
环境要求#
操作系统:CentOS 7
需要准备两个节点,一个是 master 节点,另一个是 slave 节点。
其中 master 节点的 IP:192.168.100.130
slave 节点的 IP:192.168.100.131
并且参考Linux 下配置 hosts 并设置免密登录先配置好两个免密登录。
JDK 版本:8u181
Hadoop 版本:2.7.5
如果使用的软件版本不一致,请以官方搭建文档为准。
安装步骤
准备软件目录
mkdir /datalake
上传之前下载好的安装包到 /datalake 目录下
jdk-8u181-linux-x64.gz
hadoop-2.7.5.tar.gz
批量解压这几个安装包
cd /datalake
ls * | xargs -n1 tar xzvf
将解压的软件移动到 /usr/local 目录
cd /datalake
mv jdk1.8.0_181 /usr/local/jdk
mv hadoop-2.7.5 /usr/local/hadoop
配置环境变量
vi /etc/profile
添加如下内容
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
应用环境变量
source /etc/profile
关闭防火墙,在 master 和 slave 下分别执行
systemctl stop firewalld.service
以下的配置,在 master 和 slave 上都要做
vi $HADOOP_HOME/etc/hadoop/core-site.xml
在<configuration></configuration>
节点之间添加如下内容
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
配置 hadoop 使用的 jdk,执行
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
将 jdk 配置为
export JAVA_HOME=/usr/local/jdk
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
在<configuration></configuration>
节点之间添加如下内容
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
执行
cd $HADOOP_HOME/etc/hadoop && cp mapred-site.xml.template mapred-site.xml
然后执行
vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
在<configuration></configuration>
节点之间添加如下内容
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
执行
vi $HADOOP_HOME/etc/hadoop/slaves
替换为如下内容
master
slave
在 master 上把 hadoop 的上述配置文件改好以后,可以执行
cd /usr/local && scp -r hadoop slave:/usr/local/
将配置拷贝到 slave,就无需在 slave 上做同样繁琐的配置操作了。
然后,在 master 节点上进行格式化,执行
hadoop namenode -format
SH 复制 全屏
最后,在 master 上启动 hadoop
start-dfs.sh
启动成功后,在 master 和 slave 上分别执行 jps,可以看到 hadoop 相关的进程已经正常启动
master 上
[root@master local]# jps
13984 SecondaryNameNode
1579 QuorumPeerMain
14108 Jps
13693 NameNode
13821 DataNode