欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hadoop(集群)完全分布式环境搭建

程序员文章站 2022-05-07 17:24:58
...
一,环境

    主节点一台: ubuntu desktop 16.04

                 zhoujun      172.16.12.1

    从节点(slave)两台:ubuntu server 16.04  

                hadoop2      172.16.12.131

                hadoop3      172.16.12.129

二, 搭建前准备

   1, 为每台服务器配置 /etc/hosts

sudo vim /etc/hosts
hadoop(集群)完全分布式环境搭建

   2,为每台机器 jdk 安装 ,具体的jdk类型大家可以根据自己的需求来选择,网上的方法也有很多

sudo apt-get install openjdk-8-jre openjdk-8-jdk 
  hadoop(集群)完全分布式环境搭建

 3,为每台机器 安装 openssh-server ××

 sudo apt-get install openssh-server
hadoop(集群)完全分布式环境搭建

安装好后 使用 ssh 登录下本机,这是会自动创建一个 ~/.ssh 的隐藏文件夹,其中放的是 ssh的相关**

ssh localhost
然后在输入 exit 退出

exit

4, 为每个台机器之间建立 ssh 的免密登录  ××

cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa*            # 删除之前生成的公匙(如果有)
ssh-****** -t rsa       # 一直按回车就可以
让主节点能够免密登录在主节点
cat ./id_rsa.pub >> ./authorized_keys
 hadoop(集群)完全分布式环境搭建

这里上图为zhoujun这台主机的免密登录成功, 其他两台,分别 执行 ssh hadoop2, 和 ssh hadoop3 都可以不用输入密码登录说明配置成功!

 重点:   让主机能够免密登录到 hadoop2,和hadoop3

        将zhoujun这台主机的公钥传到hadoop2,hadoop3的机器上

scp ~/.ssh/id_rsa.pub aaa@qq.com:/home/zhoujun/   # 将 zhoujun这台机器的公钥传到 hadoop2 , 注意 hadoop2主机的用户名为 zhoujun
scp ~/.ssh/id_rsa.pub aaa@qq.com:/home/zhoujun/   
#  将 zhoujun这台机器的公钥传到 hadoop3 , 注意 hadoop3主机的用户名也为 zhoujun,根据自己的情况设定
#  scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。
#  执行 scp 时会要求输入 hadoop2 上 zhoujun 用户的密码,输入完成后会提示传输完毕,如下图所示:
关于scp的使用可以参考 scp 使用总结

   然后在分别在 hadoop2,hdaoop3添加对应的公钥到 ssh的相关文件中

mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub    # 用完就可以删掉了
hadoop(集群)完全分布式环境搭建

 使用 ssh hadoop2 命令不需要输入密码就能成功登录了,会出现类似上图的界面!

   注意: 最后让master能够连接slave, 同时也能让slave 免密登录到master,配置类似,将slave节点的公钥传到其他的slave和master节点,

              然后进行上诉步骤添加公钥到各个主机之中,即可

三, hadoop 安装

    1,  下载hadoop的 安装包

    hadoop 2.8.2

   解压 

 tar -zxvf hadoop-2.8.2.tar.gz 

    hadoop(集群)完全分布式环境搭建

    将解压后的hadoop 修改文件名 ,放入/opt文件夹下, 这里可以恶搞那句自己的设置

sudo mv hadoop-2.8.2 /opt/hadoop/
hadoop(集群)完全分布式环境搭建

   进入到 /opt 文件夹下, 修改hadoop 文件夹的用户权限,这里我的用户名为 zhoujun, 请大家根据自己的用于名设置

cd /opt/
 sudo chown -R zhoujun ./hadoop/
hadoop(集群)完全分布式环境搭建

   2,  配置hadoop的配置文件  core-site.xml, hdfs-site.xml, mapred-site.cml, yarn-site.xml

     vim   core-site.xml   # 注意是<configuration></configuration>中的内容

      内容如下:       

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/opt/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://zhoujun:9000</value>
        </property>
</configuration>
   vim hdfs-site.xml,

<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>zhoujun:50090</value>
        </property>
       <property>
                <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
                <value>false</value>
       </property>
        <property>
             <name>dfs.replication</name>
             <value>3</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/opt/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/opt/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

    修改mapred-site.xml
 

cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml
  内容如下:   

<configuration>
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>zhoujun:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>zhoujun:19888</value>
        </property>
</configuration>
 修改 yarn-site.xml

    vim yarn-site.xml

  内容如下: 

<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>zhoujun</value>
        </property>
        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
            </property>
</configuration>

 配置slaves 文件

vim slaves

  内容如下:

192.168.1.105
172.16.12.129
172.16.12.131
注意: 这里记得最好写 ip 地址,不要写主机名

  3, 修改用户的 ~/.bashrc文件,注意这段内容每个节点都需要添加

vim ~/,bashrc
   在文件的头部添加:   

#Java
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

#Hadoop
export HADOOP_HOME=/opt/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

hadoop(集群)完全分布式环境搭建

 

source ~/.bashrc   # 让用户配置文件生效

   

4,  将配置到的hadoop文件传到对应的 hadoop2, hadoop3 节点

        先压缩, 再上传

 cd /opt/  # 切换目录
tar -zcf ./hadoop.tar.gz ./hadoop/ # 压缩文件
   
scp hadoop.tar.gz aaa@qq.com:
scp hadoop.tar.gz aaa@qq.com:

hadoop(集群)完全分布式环境搭建

  5, 然后分别进入hadoop2, hadoop3 节点,解压, 放入到 /opt 文件夹下,同时加入用户权限     

tar -zxvf hadoop.tar.gz        # 解压
sudo mv hadoop /opt/hadoop     # 移动
sudo chown -R zhoujun /opt/hadoop # 授予权限

hadoop(集群)完全分布式环境搭建

hadoop(集群)完全分布式环境搭建


  同理对于hadoop3 执行第5步, 

  6, 格式化hdfs文件系统

hdfs  namenode -format
  在这一步请确保hdfs-site.xml中用到的文件及文件夹不存在,如有,请删除再执行上面的命令!

  好了,集群安装基本上完成了

四, 测试:

    进入主节点服务器:zhoujun节点 利用start-all.sh 启动

hadoop(集群)完全分布式环境搭建

hadoop(集群)完全分布式环境搭建

    在浏览器*问:

    hadoop(集群)完全分布式环境搭建



五, 注意问题!

       一定要注意各个主机的网络,一定要是同一个路由器下的,即同一个网段下的服务器,不然可能出现只有一个datanode的情况,或者没有datanode等的问题!

      其次,保证ssh 能够正常通信,这个是前提

      最后,大家在安装的时候一定要细心,多一个字母数字,可能让你找半天的错!