分布式hadoop安装配置

一、总体介绍

目的:使用虚拟机搭建一套小的分布式hadoop,以方便自己以后学习使用。

环境:

三台虚拟机,安装的都是centOS7 mini版的。

       ip              主机名

192.168.0.10    master

192.168.0.20    slav1

192.168.0.30    slav2

网络均已调通,小编在windows端使用Xshell统一访问发送指令。

安装版本:

hadoop-2.6.5.tar.gz
jdk-8u221-linux-x64.tar.gz

安装大致步骤:

1、环境准备

包括:添加用户、免密配置、jdk安装配置、分发拷贝hadoop安装软件等;

2、配置hadoop并启动各组件

3、验证安装是否成功

 

二、安装过程记录——环境准备

1、添加hadoop用户;

添加用户:useradd hadoop

设置密码:passwd hadoop

·················输入密码;

配置hadoop的权限:vi /etc/sudoers

此处给它配置了最高权限,如下所示:

 

 2、配置免密

配置hosts:vi /etc/hosts

  在文件尾下入(此处配置自身情况定):

  192.168.0.10 master
  192.168.0.20 slav1
  192.168.0.30 slav2

切换到hadoop用户:su hadoop

生成公私密钥:ssh-keygen

 

进入公私密钥所在目录:cd  /home/hadoop/.ssh

可使用指令查看到生成的公(id_rsa.pub)私(id_rsa)密钥。

将公钥拷贝到slav1:ssh-copy-id slav1

将公钥拷贝到slav2:ssh-copy-id slav1

每两个节点之间,节点和localhost也执行一次ssh-copy-id指令。(这个之前没配,后面启动的时候报错,提示免密登录授权失败,所以这个后面就都配置了个遍。希望有大神能指点下为什么)

······如果还有其他节点,则该操作继续,直到拷贝到所有其它节点即可。

3、安装包从master分发到slav1和slav2

我将下载好的安装包都放在master节点下/home/hadoop/app_gz下(home/hadoop/app_gz目录事先在每个节点上都建立好),

使用scp 将本地安装包分别拷贝到slav1和slav2节点:scp app_gz/*  slav1(或者slav2):/home/hadoop/app_gz

 

三、安装过程记录——Hadoop环境安装配置

1、安装配置java8

每个节点都需要安装jdk8,具体可以参考其他文章,此文略;

2、hadoop安装包解压

创建/home/hadoop/apps目录:mkdir /home/hadoop/apps

进入apps目录:cd  /home/hadoop/apps

解压hadoop安装包:tar  -zxvf   /home/hadoop/app_gz/hadoop-2.6.5.tar.gz  

3、hadoop环境变量配置

配置HADOOP_HOME环境变量:sudo vim  /etc/profile

所有节点文件都修改并报错好后,立即让他们生效:source /etc/profile

验证是否生效:hadoop

输入如图所示,证明成功配置HADOOP_HOME环境变量。

 

4、修改配置文件

修改/home/hadoop/apps/hadoop-2.6.5/etc/hadoop目录下的:

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

slaves

hadoop-env.sh

yarn-env.sh

修改core-site.xml:

<configuration>

<property>

<name>hadoop.tmp.dir</name>
<value>file:/apps/data/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</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:/apps/data/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/apps/data/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

修改yarn-site.xml:

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>shuffle service that needs to be set for Map Reduce to run </description>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
</configuration>

修改mapred-site.xml:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

修改slaves文件:

删除localhost

将两个slave的hostname:

slav1
slav2

修改hadoop-env.sh:

添加 export  JAVA_HOME=/usr/java/jdk1.8.0_221

 

修改yarn-env.sh:

export  JAVA_HOME=/usr/java/jdk1.8.0_221

 

 

 

5、创建数据目录,启动服务

创建目录:

hdfs-site.xml的配置中定义了三个目录:

dfs.namenode.name.dir:/apps/data/hdfs/name

dfs.datanode.data.dir:/apps/data/hdfs/data

hadoop.tmp.dir:/apps/data/hdfs/tmp

不知道是不是需要提前创建,反正我是在这三个节点上先创建了这三个目录:

mkdir /apps/data/hdfs/name

mkdir /apps/data/hdfs/data

mkdir /apps/data/hdfs/tmp

配置HADOOP_HOME及PATH:

vi  /etc/profile 

export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.5

export PATH=${JAVA_PATH}:${HADOOP_HOME}/bin:$PATH

 

HDFS格式化:

 hadoop namenode -format

 

启动hdfs和yarn服务:

./sbin/start-all.sh

 

 

四、安装过程记录——Hadoop安装验证

 master节点输入jps:

2995 ResourceManager
2697 NameNode
3276 Jps
2847 SecondaryNameNode

两个slave节点输入jps:

3088 DataNode
3268 Jps
3165 NodeManager

 

查看yarn webapp 地址:

 

查看 http://master:50070

 

 至此,算是安装完成了。

 

posted @ 2019-08-13 22:02  码海一扁舟  阅读(127)  评论(0)    收藏  举报