CentOS 6.8下安装Hadoop3.1.1完全分布式集群安装

描述:
在四台虚拟机中的Linux机器安装hadoop3.1完全分布式集群。

环境和软件相关:
系统: CentOS 6.8
机器1:主机名-node01;IP-192.168.1.32
机器2:主机名-node02;IP-192.168.1.33
机器3:主机名-node03;IP-192.168.1.34
机器4:主机名-node04;IP-192.168.1.35

JDK版本:JDK1.8
JDK安装包全名:jdk-8u201-linux-x64.tar.gz
Hadoop版本:3.1.1
Hadoop安装包全名:hadoop-3.1.1.tar.gz

一、环境配置
1、修改IP

2、修改hosts文件
vi /etc/hosts
192.168.1.32   note01
192.168.1.33   note02
192.168.1.34   note03
192.168.1.35   note04

3、修改系统参数
vi /etc/selinux/config
将SELINUX修改为下面的值
SELINUX=disabled

4、关闭防火墙
service iptables stop
chkconfig iptables off

5、ssh免秘钥登录
首先在四台机器执行下面的命令
cd ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
注:需要回车生成公私秘钥
将四台机器的秘钥合并到一个文件夹,在node01执行
cat *.pub >> authorized_keys
ssh node02 cat /root/.ssh/*.pub >> /root/.ssh/authorized_keys
ssh node03 cat /root/.ssh/*.pub >> /root/.ssh/authorized_keys
ssh node04 cat /root/.ssh/*.pub >> /root/.ssh/authorized_keys
更改合并后的文件的权限
chmod 600 authorized_keys
将authorized_keys文件分发给其他节点
scp /root/.ssh/authorized_keys node02:/root/.ssh/
scp /root/.ssh/authorized_keys node03:/root/.ssh/
scp /root/.ssh/authorized_keys node04:/root/.ssh/
第一次免秘钥登录需要输入yes,在各个节点执行
ssh node01 date
ssh node02 date
ssh node03 date
ssh node04 date

二、安装Java1.8

1、检查是否安装有java
rpm -qa|grep java

2、卸载JAVA
如上面1未发现安装有java,可忽略此步;

使用命令:
rpm -e java包名

卸载java,与java有关的全部软件都需要卸载,如遇到卸载不了的,需要强制执行卸载
rpm -e java包名 --nodeps

3、下载jdk软件包(这里下载1.8 Linux 64位的版本)
去官网下载软件包
https://www.oracle.com/technetwork/java/javase/downloads/index.html

4、上传jdk到服务器
这里上传到/tmp目录

5、解压安装包
tar -zxvf /tmp/jdk-8u201-linux-x64.tar.gz

6、移动和配置
将刚解压出来的jdk移动并命名到/usr/share/jdk1.8
mv /tmp/jdk1.8.0_201 /usr/share/jdk1.8

配置:在/etc/profile文件添加以下内容
export JAVA_HOME=/usr/share/jdk1.8
export JRE_HOME=/usr/share/jdk1.8/jre
export CLASSPAT=$JAVA_HOME/lib/
export HADOOP_HOME=/opt/hadoop311/
export PATH=$PATH:$JAVA_HOME/bin/:$HADOOP_HOME/bin/:$HADOOP_HOME/sbin/

使其配置生效
source /etc/profile

7、验证JAVA是否安装
java -version

三、hadoop安装
上传安装包到/tmp路径

解压并移动
tar -zxvf /tmp/hadoop-3.1.1.tar.gz
mv /tmp/hadoop-3.1.1 /opt/hadoop311

配置
修改hadoop-env.sh文件,在文件最后添加内容
cd /opt/hadoop311/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/share/jdk1.8
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

配置core-site.xml文件
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node01:9820</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop/full</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
</configuration>

注:note01为主机名;使用3版本默认的9820端口

配置hdfs-site.xml文件
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node02:9868</value>
    </property>
</configuration>

配置文件workers
vi workers
note02
note03
note04

格式化文件系统
cd /opt/hadoop311
hdfs namenode -format

当看到有
INFO common.Storage: Storage directory /var/hadoop/peseudo/dfs/name has been successfully formatted.
表示格式化成功!

启动集群
start-dfs.sh

启动后查看进程是否启动
jps

查看端口
ss -nal

在火狐或谷歌浏览器输入地址:192.168.1.31:9870查看hadoop状态

四、测试hadoop
查看内容
hdfs dfs -ls /

创建目录
hdfs dfs -mkdir /temp

上传文件
hdfs dfs -put /tmp/hadoop-3.1.1.tar.gz /temp

查看内容
hdfs dfs -ls /

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐