打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Hadoop单机以及伪分布式和完全分布式的环境搭建详细步骤

Hadoop环境搭建过程:

1.目标:

安装单机,伪分布式,完全分布式环境的Hadoop,并且使用HDFS上传一个内容为HelloWorld的文档,使用Hadoop包中自带的WordCount运行一个MapReduce过程,熟悉部分HDFS的API使用。

2.单机版本的环境搭建步骤:

1.使用的软件版本介绍:

这里使用虚拟机VMware-workstation 版本12.1.1,镜像版本: ubuntu-16.04-desktop-amd64.iso,JDK版本:jdk-8u101-linux-x64.tar.gz,Hadoop版本:hadoop-2.7.3.tar.gz。

2.创建Hadoop用户:

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :sudo useradd -m hadoop -s /bin/bash,接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

sudo passwd hadoop,可为 hadoop 用户增加管理员权限,方便部署,避免一些对权限问题:sudo adduser hadoop sudo,最后注销当前用户(点击屏幕右上角的齿轮,选择注销),在登陆界面使用刚创建的 hadoop 用户进行登陆

3.安装SSH:

sudo apt-get update若出现如下 “Hash校验和不符” 的提示,可通过更改软件源来解决。若没有该问题,则不需要更改。(具体更改方法:http://www.powerxing.com/install-hadoop/)集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:sudo apt-get install openssh-server,安装后,可以使用如下命令登陆本机:ssh localhost此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:exit退出刚才的 ssh,切换目录cd ~/.ssh/,然后利用 ssh-keygen -t rsa 生成密钥,cat ./id_rsa.pub >> ./authorized_keys  并将密钥加入到授权中,再使用 ssh localhost 登陆,这次不用输入用户密码,说明无密码登录成功。

4.安装JDK,配置JAVA环境:

(1)解压压缩包(使用命令解压,命令不行使用手动解压)

(2)配置环境变量(vi ~/.bashrc,添加一行export JAVA_HOME=JDK安装路径)

(3)source ~/.bashrc 让环境变量生效

(4)echo $JAVA_HOME    

java -version查看java 是否生效,当前终端可能有效,但是换另外一个终端就不行,继续下面步骤

(5)cd /etc  然后 sudo vi environment 添加环境变量JAVA_HOME=jdk包的路径,更新PATH,PATH="$JAVA_HOME/bin:原来部分"

(6)java -version  javac -version

(7)若出现

* gcj-4.4-jre-headless

* openjdk-6-jre-headless

* cacao * gij-4.3

这样的情况,说明系统没有默认的JDK,所以系统还是要求下载包含JDK命令的软件。修改现有的为默认jdk

(8)执行    

sudo update-alternatives --install /usr/bin/java java /home/shu/soft/jdk1.8.0_101/bin/java 1000

sudo update-alternatives --install /usr/bin/javac javac /home/shu/soft/jdk1.8.0_101/bin/javac 1000

sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.8.0_101/bin/jps 1000

sudo update-alternatives --config java

(9)关闭终端,重新开启终端,再java -version和javac -version

(10)命令jps 出现9300 Jps 说明java配置成功

5.配置Hadoop:(Hdoop下载链接:http://mirror.bit.edu.cn/apache/hadoop/common/

(1)一般选择下载最新的稳定版本,即下载 “stable” 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。

(2)建议也下载 hadoop-2.x.y.tar.gz.mds 这个文件,该文件包含了检验值可用于检查 hadoop-2.x.y.tar.gz 的完整性,否则若文件发生了损坏或下载不完整,Hadoop 将无法正常运行。

(3)cat ~/Downloads/hadoop-2.7.3.tar.gz.mds | grep 'MD5'看输出的MD5校验

(4)md5sum ~/下载/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z" 对比前面MD5的值是否一致,一致说明包下载完整,否则不完整,需要重新下载

(5)解压压缩包,若在根目录下面,需要加上sudo 或者直接给用户管理员权限

(6)配置Hadoop环境变量和JDK配置环境变量相似

(7)cd /etc  然后 sudo vi environment 添加环境变量

(8)HADOOP_HOME=jdk包的路径,更新PATH,PATH="$HADOOP_HOME/sbin:原来部分"

(9)Hadoop 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

3.伪分布式的环境搭建步骤:

1.伪分布式基本运行环境与单机环境一致

2.Hadoop 伪分布式需要修改配置文件 core-site.xml hdfs-site.xml 

(1)cd Hadoop安装路径/etc/hadoop 然后 ls

(2)需要编辑的文件有   hadoop-env.sh   core-site.xml

       hdfs-site.xml   (mapred-site.xml.template)

     yarn-site.xml   slaves

(3)sudo vi hadoop-env.sh  把java环境写成绝对路径,以免没有配置JAVA_HOME的时候,找不到jdk

(4)配置core-site.xml       配置Common组件的属性

<configuration>

<property>

             <name>hadoop.tmp.dir</name> //hadoop临时目录用来存放nn临时文件

             <value>file:/hadoop/hadoop-2.7.3/tmp</value>  //该目录必须预先手工创建不能删除

        </property>

        <property>

             <name>fs.defaultFS</name>   //配置NN节点地址和端口号

             <value>hdfs://localhost:9000</value>

        </property>

<property>

     <name>fs.checkpoint.period</name> //snn检查nn日志的时间周期

     <value>3600</value> //单位秒,实际情况应该是12小时

</property>

</configuration>

(5)配置 hdfs-site.xml

<configuration>

<property>

             <name>dfs.replication</name> //备份数设置为1

             <value>1</value>

        </property>

        <property>

             <name>dfs.namenode.name.dir</name> //若不自定义目录,HDFS重启,则需要format

             <value>file:/hadoop/hadoop-2.7.3/tmp/dfs/name</value>

        </property>

        <property>

             <name>dfs.datanode.data.dir</name>

             <value>file:/hadoop/hadoop-2.7.3/tmp/dfs/data</value>

        </property>

</configuration>

(6)配置文件 mapred-site.xml(需要先将原本的文件mapred-site.xml.template cp mapred-site.xml,然后更改mapred-site.xml即可 )

    <configuration>

            <property>

                 <name>mapreduce.framework.name</name>

                 <value>yarn</value>

            </property>

    </configuration>

(7)接着修改配置文件 yarn-site.xml

    <configuration>

            <property>

                 <name>yarn.nodemanager.aux-services</name>

                 <value>mapreduce_shuffle</value>

                </property>

</configuration>

3.配置完成后

(1)执行Namenode的格式化操作

bin/hdfs namenode -format 成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

(2)开启 NameNode 和 DataNode 守护进程

sbin/start-dfs.sh然后使用jps查看进程,出现进程有jps SecondaryNamenode

DataNode Namenode ,即说明启动HDFS成功

(3)开启yarn运算框架sbin/start-yarn.sh

出现jps SecondaryNamenode DataNode Namenode ResourceManager NodeManager 说明启动yarn运算框架成功

(4)成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

(5)启动 YARN 可以通过 Web 界面查看任务的运行情况:http://localhost:8088/查看

4.完全分布式的环境搭建步骤:

1.基本环境与伪分布式环境一致

2.Hadoop 集群的安装配置大致为如下流程:

选定一台机器作为 Master在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境在 Master 节点上安装 Hadoop,并完成配置在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境将 Master 节点上的 hadoop 目录复制到其他 Slave 节点上在 Master 节点上开启 Hadoop

3.将配置过的伪分布式的虚拟机关闭,使用虚拟机的克隆功能,克隆一个主机出来当作分支节点,原来的主机作为主节点,更改两个主机的名字为master和slave,以便区分主从结构,就可以直接使用master节点配置好的hadoop环境,不用再在Slave节点上再次配置hadoop。

4.编辑master和Slave两个主机的etc/hosts文件,将两个主机的ip以及主机名加入到hosts中。

5.使用ping命令,ping 主机名,看是否能够ping通,ping通说明hosts文件配置成功。

6.配置主机和分支的SSH无密码登陆:需要让master节点和分支节点slave之间可以无密码相互登陆,所以需要先在master节点上面ssh-keygen -t rsa -p '' 产生 .ssh 文件夹,将公钥加入一直authorized_keys中,再将公钥共享给Slave,自己手动建立.ssh文件,后面同样操作,在master节点上面ssh Slave,连接成功,再在Slave上面ssh master。这里使用ssh 主机名 ,必须先在etc/hosts下面写上主机名和其对对应的ip,否则直接使用ssh ip。

(详细参考链接:http://www.open-open.com/lib/view/open1386252393705.html#articleHeader4)

7.在主机中使用ssh 从机名,”@”后面的机器名变了,由"master"变为了"slave",这就说明我们已经成功实现了SSH无密码登录了同样在从机上ssh 主机名,结果变为master,说明成功,这样主从机就可以无密码相互登陆了。

8.文件 hdfs-site.xmldfs.replication 一般设为 3,但我们只有一个 Slave 节点,所以 dfs.replication 的值还是设为 1

9.配置mapred-site.xml,修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。

9.将主机中的slaves文件中的localhost改为从机的主机名,有多少个从机就配置多少个,从机的salves文件中就直接写localhost就可以。

10.配置完成后,使用bin/hdfs namenode -format 格式化HDFS,然后再使用命令sbin/start-dfs.sh启动HDFS。

To be continue..........

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
hadoop安装配置 ubuntu9.10 hadoop0.20.2
818不败家
Hadoop环境搭建——集群篇
搭建hadoop1.2集群
Hadoop面试45个题目及答案
hadoop集群配置文件与功能对应解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服