Hadoop-2.7.6 集群部署搭建

    科技2022-07-12  125

    Hadoop-2.7.6 集群部署搭建

    一、 前期准备1.1 安装JDK并配置环境变量1.2 虚拟机配置1.3 配置ssh免密登录 二、Hadoop集群部署2.1 下载安装并配置环境2.2 设置hadoop配置文件2.3 主节点初始化文件系统2.4 启动Hadoop集群2.5 验证集群是否启动成功2.6 停止hadoop集群 三、提交MapeReduce Job3.1 在HDFS上创建文件夹3.2 创建数据源wordcont.txt 并提交到Hdfs3.3 运行MR

    一、 前期准备

    1.1 安装JDK并配置环境变量

    vim /etc/profile #JAVA环境变量 export JAVA_HOME=/home/iot/jzz/jdk1.8.0_231 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    查看是否安装成功

    java -version

    1.2 虚拟机配置

    操作系统主机名IPUbuntuslave1192.168.0.118Ubuntuslave2192.168.0.119Ubuntuslave3192.168.0.120 #配置hosts,在三台机子上都配置上 vim /etc/hosts

    1.3 配置ssh免密登录

    配置好每台机子的免密通信,并能实现三台机子互相通信

    二、Hadoop集群部署

    2.1 下载安装并配置环境

    下载hadoop地址:http://archive.apache.org/dist/hadoop/common/

    # 下载后解压到指定目录 tar -zxvf hadoop-2.7.6.tar.gz -C /opt/apps

    配置hadoop环境变量

    vim /etc/profile export HADOOP_HOME=/opt/apps/hadoop-2.7.6 export PATH=$PATH:$HADOOP_HOME/bin

    查看是否安装成功

    source /etc/profile hadoop version

    2.2 设置hadoop配置文件

    首先,进入文件目录

    cd /opt/apps/hadoop-2.7.6/etc/hadoop

    1、hadoop-env.sh:用来配置hadoop所需要的jdk的环境,是hadoop可以调用本机的jdk。 2、core-site.xml :里面的参数 fs.defaultFS,用来说明hadoop使用什么文件系统。 hadoop.tmp.dir,hadoop文件存储目录。 还有两个参数一般不做修改, fs.checkpoint.period,表示多长时间记录一次hdfs的镜像,默认是1小时。 fs.checkpoint.size,表示镜像文件快大小,默认64M。

    3、hdfs-site.xml:用来指定namenode和datanode的存放目录,还有存放数据的副本数,一般默认为3。 4、mapred-site.xml:mapreduce的参数。 5、yarn-site.xml :集群资源管理系统参数。 6、slaves:需要启动datanode和nodemanager的虚拟机 修改内容如下:

    hadoop-env.sh

    vim hadoop-env.sh #设置JAVA环境

    core-site.xml

    vim core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://slave1:9000</value> <description>指定HDFS的(NameNode)的地址</description> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/apps/hadoop-2.7.6/dfs/tmp</value> <description>指定hadoop运行时产生文件的存储目录</description> </property> </configuration>

    hdfs-site.xml

    vim hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> <description>指定HDFS副本的数量</description> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/apps/hadoop-2.7.6/dfs/name</value> <description>namenode的存储路径</description> </property> <property> <name>dfs.datenode.date.dir</name> <value>file:/opt/apps/hadoop-2.7.6/dfs/date</value> <description>指定datenode的路径</description> </property> </configuration>

    mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml vim mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>

    yarn-site.xml

    vim yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>slave1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>

    slaves

    vim slaves slave1 slave2 slave3

    这里三台机子都是这样的配置

    2.3 主节点初始化文件系统

    首次启动时,只在slave1主节点格式化文件系统。执行完后可以看到在~/apps/hadoop-2.7.6/dfs/下面会自动生成一个叫name的文件夹

    ./bin/hdfs namenode -format

    2.4 启动Hadoop集群

    /opt/apps/hadoop-2.7.6/sbin/start-all.sh

    2.5 验证集群是否启动成功

    方法1查看进程数据

    在主节点上可以看到下面5个进程 NodeManager ResourceManager DataNode NameNode SecondaryNameNode 在从节点只有2个 DataNode NodeManager

    方法2 在浏览器访问console页面

    访问hadoop页面: http://192.168.0.118:50070 访问yarn页面: http://192.168.0.118:8088

    注意事项: 如果DataNode没有启动,那就说明你可能原本DataNode的目录被使用过了,里面的对于NameNode的编号与现在的不一致。解决方法:如果DataNode文件夹里存在数据,那么你需要修改Current下的version,使其与DataNode上的保持一致。如果DataNode里面没有数据,是刚搭建的,那么可以先将HDFS关闭,然后删除DataNode文件夹,再次打开HDFS,这样的话,DataNode就会重新获取NameNode的信息,就可以连接上了。

    2.6 停止hadoop集群

    /opt/apps/hadoop-2.7.6/sbin/stop-all.sh

    三、提交MapeReduce Job

    3.1 在HDFS上创建文件夹

    hadoop dfs -mkdir /data

    3.2 创建数据源wordcont.txt 并提交到Hdfs

    vim wordcont.txt 添加: hello hadoop hello spark hello yarm hadoop dfs -put wordcount.txt /data

    查看是否上传成功

    3.3 运行MR

    cd /opt/apps/hadoop-2.7.6/share/hadoop/mapreduce hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /data /data/wordresult

    其中 wordcount为程序的主类名, /data 输入目录,/data /wordresult 输出目录,且输出目录不能存在,否则会报错.

    通过管理界面查看效果: 可以看到成功输出到hdfs输出目录,yarm界面也记录这个Job成功运行

    希望文章能对你有帮助

    Processed: 0.013, SQL: 8