分布式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 地址:


至此,算是安装完成了。
浙公网安备 33010602011771号