暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

单节点Hadoop环境搭建

四阿哥胤禛 2019-04-26
772

本文基于CentOS Linux 7虚拟机搭建的Hadoop环境。Hadoop版本3.2.0,Java 1.8


首先我们需要安装一些常用工具:netstat、telnet、wget、net-tools、ssh、rsync

    yum -y install netstat telnet wget net-tools ssh rsync
    复制

    Hadoop依赖Java环境,我们需要安装一下JDK 1.8,先搜索openjdk1.8的安装包有哪些

      yum search java-1.8
      复制

      我们安装java-1.8.0-openjdk-devel.x86_64 

          $ yum -y install java-1.8.0-openjdk-devel.x86_64
        复制

        之后配置环境变量,修改/etc/profile文件,在文件末尾添加以下三行,JAVA_HOM指向你的JDK目录

          export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
          export PATH=$JAVA_HOME/bin:$PATH
          export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
          复制

          使配置生效

              $ source etc/profile
            复制

            hadoop所需的依赖安装好之后,我们下载Hadoop3.2.0并解压

                $ wget http://apache.mirrors.lucidnetworks.net/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz


              $ tar -zxvf hadoop-3.2.0.tar.gz
              复制

              进入hadoop-3.2.0,并修改文件etc/hadoop/hadoop-env.sh,设置hadoop的环境变量JAVA_HOME

              在sbin/start-dfs.sh,sbin/stop-dfs.sh两个文件顶部添加以下参数

                HDFS_DATANODE_USER=root
                HADOOP_SECURE_DN_USER=hdfs
                HDFS_NAMENODE_USER=root
                HDFS_SECONDARYNAMENODE_USER=root
                复制

                在sbin/start-yarn.sh,sbin/stop-yarn.sh顶部添加以下参数


                  YARN_RESOURCEMANAGER_USER=root
                  HADOOP_SECURE_DN_USER=yarn
                  YARN_NODEMANAGER_USER=root
                  复制



                  修改etc/hadoop/core-site.xml,我的虚拟机ip是192.168.5.206,所以我的配置如下

                    <configuration>
                    <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://192.168.5.206:9000</value>
                    </property>
                    </configuration>
                    复制

                    修改etc/hadoop/hdfs-site.xml

                      <configuration>
                          <!-- 指定HDFS副本数 -->
                      <property>
                      <name>dfs.replication</name>
                      <value>1</value>
                      </property>

                          <!-- 配置namenode的web界面 -->
                          <property>
                      <name>dfs.namenode.http-address</name>
                      <value>192.168.5.206:50070</value>
                          </property>
                      </configuration>
                      复制

                      配置免密登录(注意:对本机也需要配置)

                          $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
                        $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
                        $ chmod 0600 ~/.ssh/authorized_keys
                        复制

                        格式化文件系统

                            $ bin/hdfs namenode -format
                          复制

                          启动NameNode守护程序和DataNode守护程序,hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME logs)

                             $ sbin/start-dfs.sh
                            复制

                            浏览NameNode的Web界面,这里我的ip是192.168.5.206,访问http://192.168.5.206:50070/;我们将看到Hadoop的节点Web页面


                            接下来,我们创建执行MapReduce作业所需的HDFS目录

                                $ bin/hdfs dfs -mkdir user
                              $ bin/hdfs dfs -mkdir user/<username>
                              复制

                              将输入文件复制到分布式文件系统中

                                 $ bin/hdfs dfs -put etc/hadoop input
                                复制

                                运行一些提供的示例

                                    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'
                                  复制

                                  检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们

                                      $ bin/hdfs dfs -cat output/*
                                    复制

                                    完成后,停止守护进程

                                        $ sbin/stop-dfs.sh
                                      复制



                                      我们也可以通过设置一些参数并运行ResourceManager守护程序和NodeManager守护程序,以伪分布式模式在YARN上运行MapReduce作业

                                      • 修改etc/hadoop/mapred-site.xml配置参数如下:

                                        <configuration>
                                        <property>
                                        <name>mapreduce.framework.name</name>
                                        <value>yarn</value>
                                        </property>
                                        </configuration>
                                        复制
                                        • 修改etc/hadoop/yarn-site.xml

                                          <configuration>
                                          <property>
                                          <name>yarn.nodemanager.aux-services</name>
                                          <value>mapreduce_shuffle</value>
                                          </property>
                                          </configuration>
                                          复制
                                          • 启动ResourceManager守护程序和NodeManager守护程序

                                              $ sbin/start-yarn.sh
                                            复制
                                            • 浏览ResourceManager的Web界面;默认情况下,可访问 http://<ip>:8088/



                                            • 运行MapReduce作业

                                            • 完成后,停止守护进程

                                                $ sbin/stop-yarn.sh
                                              复制



                                              多节点集群安装可参考官方文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html



                                              点个“好看”支持一下鸭

                                              点鸭点鸭点鸭

                                                                                                                                                     ↓↓↓




                                              文章转载自四阿哥胤禛,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                              评论