hadoop环境搭建

本文详细介绍了如何在Linux环境下配置Hadoop,包括创建虚拟机、添加用户、配置SSH以实现无密码登录、安装Java、配置Java环境、安装SSH服务器、生成公钥实现免密登录、下载并安装Hadoop,以及配置Hadoop核心文件和启动停止服务的过程。
摘要由CSDN通过智能技术生成

 第一步 Linux系统环境 推荐是Ubuntu/centos,创建两个虚拟机,一个命名为master,一个命名为slaver01

    第二步 linux系统中,Hadoop的基础环境

        2.1 新增Hadoop用户           

 sudo useradd -m hadoop -s /bin/bash

 sudo passwd hadoop // 为"hadoop"用户设置密码;

 sudo adduser hadoop sudo //为"hadoop"用户添加管理员权限;

        2.2 配置host host的作用:做ip地址与主机名或者域名的映射

            2.2.1 使用vim 编辑器 ,需要下载vim, 有可能需要更新apt     

sudo apt install vim // 下载vim

sudo update apt //更新apt

     

            2.2.2

               修改主机名  master , slave01  主从

               

 sudo vim /etc/hostname

            2.2.3

                ifconfig 命令查看当前节点ip地址;

                使用ping 命令,查看节点是否网络互通; (查看虚拟机网络连接模式,桥接或者nat,保证节点在同一个局域网下)

                修改/etc/hosts文件,完成ip和主机名映射;

vim /etc/hosts

2.3 Java环境配置

    两种方式,这里我们使用第一种,通过浏览器下载jdk,解压后,添加到系统path中。

```

cd /usr/lib

sudo mkdir jvm

cd /home/hadoop/Download

sudo tar -xzvf jdkxxxxxxx.tarsudos.gz -C /usr/lib/jvm    //解压jdk到/usr/lib/jvm目录下




vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/jdkxxxxx

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH     //将jdk目录下可执行文件加入到系统PATH中

```

    在线安装DefaultJDK 方式

```

sudo apt-get install default-jre default-jdk// 在/usr/lib/jvm目录下执行命令



export JAVA_HOME=/usr/lib/j vm/default-java //配置环境变量

```

    通过java -version 以及javac 命令测试Java是否安装成功

2.4 SSH配置 (Secure Shell)

     SSH(Secure Shell)为建立在应用层基础上的安全协议,SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题;

    了实现集群中,节点之间的信息交互,我们采用SSH的方式,可以让master节点无密码登录其他slave节点上。这里面关键的一步就是基于RSA的非对称加密,非对称加密,简单来说就是使用公钥加密,私钥解密,私钥保存在本地,公钥可以在网络上流传。下面是SSH配置流程,实现master节点免密登录slave节点;  

### 2.4.1 安装SSH测试本地

```   

sudo apt-get install openssh-server    //安装ssh-server

    ssh localhost //验证是否可以登录本地

```

2.4.2 master节点生成公钥

```

cd ~/.ssh          //如果提示找不到文件或路径,先执行一次ssh localhost

 rm ./id_rsa*       //如果有,则删除之前的公钥

ssh-keygen -t rsa  //一路回车生成公钥



cat ./id_rsa.pub >> ./authorized_keys  //将公钥放到autiorized_keys中

```

    将公钥传到slave01、slave02、slave03等节点上,执行如下命令,这里会提示输入slave节点到登录密码:

```

scp ~/.ssh/id_rsa.pub hadoop@slave03:/home/hadoop   //将meter节点到公钥复制到slave03节点中



mkdir ~/.ssh //slave节点创建.ssh文件夹

cat ~/id_rsa.pub>>~/.ssh/authorized_keys//将从master传来的公钥放置在authorized_keys中

rm ~/id_rsa.pub //删除传来的公钥

```

    同样的操作,对所有slave节点进行SSH设置

2.5 Hadoop配置

    从apache Hadoop官网下载Hadoop

### 2.5.1 解压安装Hadoop

```

sudo tar -zxf~/download/hadoop-3.3.1.tar.gz -C /usr/lcoal      //将Hadoop解压到/usr/lcoal下

cd /usr/local

sudo mv ./hadoop-3.3.1 ./hadoop   //修改文件名为hadoop

sudo chown -R hadoop ./hadoop  //修改文件权限

```

    配置环境变量 和jdk类似

```       

 vim ~/.bashrc

         export HADOOP_HOME=/usr/local/hadoop

         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}/lin/native

         export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

//将这段内容加入配置文件中

```

2.5.2 Hadoop配置文件设置

    我们主要修改:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml文件,这些文件都在/usr/local/hadoop/etc/hadoop目录下

core-site.xml

 <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abasefor other temporary directories.</description>
        </property>
        <property>
            <name>hadoop.proxyuser.spark.hosts</name>
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.spark.groups</name>
            <value>*</value>
        </property>
    </configuration>

hdfs-site.xml

<configuration>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/dfs/data</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
    </configuration>

yarn-site.xml

 <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8035</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
        </property>
    </configuration>

复制mapred-site.xml.template并重命名为mapred-site.xml

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

mapred-site.xml

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>master:19888</value>
	</property>
</configuration>

 除此之外,还需要修改当前目录下的workers文件,workers是用来设置datanode节点。workers文件默认为localhost,即默认情况下,namanode和datanode都被部署在同一个节点上,而我们要做完全分布式Hadoop环境,所以,需要将workers中的内容修改为slave节点名称。

2.5.3 slave节点中Hadoop配置同步

将master节点中/usr/local/hadoop中的内容打包压缩,然后发送到各个slave节点中;

cd /usr/local
        sudo rm -r ./hadoop/tmp      //删除Hadoop路径下的临时文件
        sudo rm -r ./hadoop/logs     //删除Hadoop路径下的日志文件
        tar -zcf ~/hadoop.master.tar.gz ./hadoop //将hadoop目录下的内容打包复制到~/hadoop.master.tar.gz
        scp ~/hadoop.master.tar.gz slave03:/home/hadoop    //将打包内容复制到slave节点
```

```
        在slave节点上解压hadoop.master.tar.gz文件,并给予授权;

        sudo rm -r /usr/local/hadoop   //删除之前版本
        sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local    //解压文件到 /usr/lcoal
        sudo chown -R hadoop /usr/lcoal/hadoop    //授权

 2.5.4 Hadoop的启动和停止

     Hadoop的启动:

    在master节点上依次执行start-dfs.sh、start-yarn.sh等命令,可以分别在master节点和slave节点上看到对应调起的线程,用jps命令查看如下图所示;也可以直接执行start-all.sh命令;

     Hadoop的停止:

    在master节点对应执行stop-yarn.sh、stop-dfs.sh命令即可,也可直接执行stop-all.sh命令。

  • 40
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值