大数据系列 (2)之hadoop集群搭建

本次搭建版本 为hadoop-3.3.0.

1、下载hadoop

创建hadoop文件夹

cd usr/
mkdir softInstall
cd softInstall/
mkdir hadoop

在hadoop文件夹下执行下载命令:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

注:如果wget命令不存在,则安装wget:yum install wget
要下载hadoop-3.3.0.tar.gz文件,不要下载hadoop-3.3.0-src.tar.gz 文件

解压下载好的hadoop文件

 tar -zxvf   hadoop-3.3.0.tar.gz

 解压后的 hadoop-3.3.0文件位于当前目录

2、修改hadoop配置
进入hadoop文件夹:

cd  hadoop-3.3.0/etc/hadoop/

编辑hadoop-env.sh文件:

vi hadoop-env.sh
export  JAVA_HOME=usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export  HADOOP_CONF_DIR=usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop

执行 source hadoop-env.sh 让配置立即生效

source hadoop-env.sh 

修改 core-site.xml:

执行命令:

vim  core-site.xml
<!--指定 主节点 (nameNode)ip-->
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://192.168.3.7:9000</value>
  </property>
</configuration>
<!--指定hadoop运行时产生的文件的目录-->
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/softInstall/hadoop/tpm</value>
  </property>
</configuration>


配置hdfs-site.xml文件

执行:

vi etc/hadoop/hdfs-site.xml
<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>192.168.3.8:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/softInstall/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/usr/softInstall/hadoop/dfs/data</value>
       </property>
<!--设置datanode 副本数量 -->
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
<!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件-->
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
<!-- 不检查hadoop是否使用host+hostName的配置方式,否则要配置hostname -->
    <property>
                 <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
                 <value>false</value>
        </property>
</configuration>

配置yarn-site.xml

<configuration>
<!--NodeManager获取数据的方式-->
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
<!--指定yarn的老大 resoucemanager的地址-->
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.3.7</value>
    </property>
<property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
<!--忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。-->
<property> 
        <name>yarn.nodemanager.vmem-check-enabled</name> 
        <value>false</value>
</property>
</configuration>


配置mapred-site.xml

vi mapred-site.xml
<property>
<!-- 指定mapreduce运行在yarn上 -->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>


修改worker文件(hadoop3.2版本没有slaves文件,之前版本修改slaves文件)

vi /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/workers

修改worker文件,将里面的localhost删除,添加自己 从节点的ip:
这里刚开始配置的是ip但后面出现了一个问题后来改为hostname的形式,并加了两个节点
刚开始

后改为

3、同步配置

通过 以下命令将 本机hadoop文件夹下的内容 全部copy到另外几台电脑上,减少安装和 配置时间
#将本主机的/usr/softInstall/hadoop目录copy到远程linux主机上/usr/softInstall的文件夹下面

scp -r /usr/softInstall/hadoop root@192.168.3.8:/usr/softInstall
scp -r /usr/softInstall/hadoop root@192.168.3.9:/usr/softInstall
scp -r /usr/softInstall/hadoop root@192.168.3.13:/usr/softInstall

4、配置 hadoop环境变量

vi /etc/profile

# hadoop  环境变量

export HADOOP_HOME=/usr/softInstall/hadoop/hadoop-3.3.0
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

5、启动hdfs
全部配置完成后,启动hdfs,首次启动需格式化hdfs,后面可以选择性格式化

hdfs namenode -format

启动 

start-dfs.sh

报错


因为每台机器用的都是root用户,这里需要添加root用户

6、给 hadoop-env.sh该文加添加root用户

vi /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export HDFS_NODEMANAGER_USER=root

给一下四个文件添加如下root用户

vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/start-all.sh
vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/stop-all.sh
vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/start-dfs.sh
vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/stop-dfs.sh
HADOOP_SECURE_DN_USER=hdfs
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

给如下两个 文件添加一下root

vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/start-yarn.sh
vi  /usr/softInstall/hadoop/hadoop-3.3.0/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

用复制的形式,将其它几台机器的文件 也设置root用户
#将本主机的/usr/softInstall/hadoop目录copy到远程linux主机上/usr/softInstall的文件夹下面

rm -rf /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/ root@192.168.3.8:/usr/softInstall/hadoop/hadoop-3.3.0/etc/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/ root@192.168.3.9:/usr/softInstall/hadoop/hadoop-3.3.0/etc/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/ root@192.168.3.13:/usr/softInstall/hadoop/hadoop-3.3.0/etc/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/ root@192.168.3.11:/usr/softInstall/hadoop/hadoop-3.3.0/etc/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/etc/hadoop/ root@192.168.3.12:/usr/softInstall/hadoop/hadoop-3.3.0/etc/
rm -rf /usr/softInstall/hadoop/hadoop-3.3.0/sbin
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/sbin/ root@192.168.3.8:/usr/softInstall/hadoop/hadoop-3.3.0/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/sbin/ root@192.168.3.9:/usr/softInstall/hadoop/hadoop-3.3.0/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/sbin/ root@192.168.3.13:/usr/softInstall/hadoop/hadoop-3.3.0/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/sbin/ root@192.168.3.11:/usr/softInstall/hadoop/hadoop-3.3.0/
scp -r /usr/softInstall/hadoop/hadoop-3.3.0/sbin/ root@192.168.3.12:/usr/softInstall/hadoop/hadoop-3.3.0/

7、启动

start-dfs.sh启动,再次发现问题,需要设置ssh免登录,主要是hadoop01(192.168.3.7)到其他节点的免登录

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.3.7

同样,对其他几个服务开启免登录

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.3.8
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.3.9
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.3.10

在每台 机器上都 执行 ssh-keygen -t rsa  生成秘钥
先执行 cd ~/.ssh  进入到.ssh目录下
再执行 ll  可查看生成的公钥id_rsa.pub,私钥id_rsa

ssh目录下执行  touch authorized_keys  创建存放秘钥的文件
然后执行 cp id_rsa.pub authorized_keys  将公钥放进authorized_keys文件,可无密登录本机
执行 chmod 644 authorized_keys  修改 authorized_keys 权限
执行 sudo service sshd restart  重启ssh服务

将公钥copy到其它几台机器上

scp /root/.ssh/authorized_keys root@192.168.3.8:/root/.ssh
scp /root/.ssh/authorized_keys root@192.168.3.9:/root/.ssh
scp /root/.ssh/authorized_keys root@192.168.3.13:/root/.ssh
scp /root/.ssh/authorized_keys root@192.168.3.11:/root/.ssh
scp /root/.ssh/authorized_keys root@192.168.3.12:/root/.ssh

每台机器都进行 chmod 644 authorized_keys 设置,最后在192.168.3.7上进行逐个ssh登陆测试,如ssh 192.168.3.8

8、重新格式化namenode,并重启

格式化namenode之前,要删除data、name、logs文件夹下的文件
(每次执行该命令hadoop namenode -format 之前都要删除如下文件)

rm -rf /usr/softInstall/hadoop/dfs/data/current
rm  /usr/softInstall/hadoop/dfs/data/in_use.lock

rm -rf /usr/softInstall/hadoop/dfs/name/current
rm  /usr/softInstall/hadoop/dfs/name/in_use.lock

rm -rf /usr/softInstall/hadoop/hadoop-3.3.0/logs/*

格式化namenode

hadoop namenode -format


使用命令启动 

start-all.sh

然后使用jps命令查看NameNode进程号,并结合netstat找到访问地址端口9870
jps
发现进程为31157
netstat -ltunp   找到 对应 端口为 9870


 

9、访问hadoop管理界面
192.168.3.7:9870或者
192.168.3.7:9870/dfshealth.html#tab-overview
特别注意:HaDoop3.0之前web访问端口是50070   hadoop3.0之后web访问端口为9870

如果出现如下问题:live nodes 显示4但datanodes管理界面只有一个节点,且为 localhost,则需要配置 host

vi /etc/hosts


删除 其它几台机器的hosts

rm /etc/hosts

同步给其它几台机器

scp /etc/hosts root@192.168.3.8:/etc/
scp /etc/hosts root@192.168.3.9:/etc/
scp /etc/hosts root@192.168.3.13:/etc/
scp /etc/hosts root@192.168.3.11:/etc/
scp /etc/hosts root@192.168.3.12:/etc/

重启 网格

/etc/init.d/network restart

再次重启start-all.sh即可

至此,hadoop集群搭建完成。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值