Ubuntu16.04搭建hadoop伪分布式环境

参考自:https://blog.csdn.net/hliq5399/article/details/78193113

原材料:

1.Ubuntu16.04操作系统成品(在vmware上安装成功)

2.jdk-7u67-linux-x64.tar.gzjdk-7u67-linux-x64.tar.gz 下载地址:http://download.oracle.com/otn/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz

3.hadoop-2.6.5.tar.gz 下载地址:https://www-eu.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

其中下载jdk时可能需要登录,如果你嫌登录麻烦,也可以直接从我给的百度云链接下载:

链接:https://pan.baidu.com/s/1XtfhgZ8K3VRjyjwNBzYRoQ    提取码:gj10 

 

步骤:

1.使用命令 sudo mkdir  /opt/modules 创建modules目录用于存放与hadoop相关的文件,再使用命令sudo chown hadoop:hadoop -R /opt/modules  将/opt/modules目录及其子目录下所有文件和文件夹的UID和GID改为hadoop

2.将windows上下载的jdk与hadoop压缩文件复制到/opt/modules目录下,我用的是与windows共享目录的方法

3.使用linux的 tar -zxvf命令解压文件

4.删除压缩文件

5.将hadoop-2.6.5文件名改为hadoop,jdk1.7.0_67文件夹名改为jdk

6.配置java和hadoop环境变量。使用命令 sudo gedit /etc/profile 打开/etc/profile,在文件末尾写入

export JAVA_HOME=/opt/modules/jdk

export HADOOP_HOME=/opt/modules/hadoop

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

然后保存退出,重启虚拟机

7.输入命令java -version以及hadoop version查看java环境变量以及hadoop环境变量是否配置正确。如果现实如下结果,则证明配置正确;否则应该再检查下自己哪里写错了

8.输入命令 cd $HADOOP_HOME/etc/hadoop/,进入hadoop配置文件所在的目录,使用命令 gedit hadoop-env.sh mapred-env.sh yarn-env.sh,在这三个文件末尾添加 export JAVA_HOME=/opt/modules/jdk

9.配置core-site.xml.使用命令 gedit core-site.xml,在<configuration></configuration>之间插入以下内容:

<property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://hadoop:8020</value>
           </property>

<property>
                   <name>hadoop.tmp.dir</name>
                   <value>/opt/data/tmp</value>
           </property>

其中第一个property是配置默认文件系统所在的位置,我设置的是hadoop:8020(hadoop为我的主机名,8020为端口号)

第二个property是配置hadoop临时目录所在位置,我设置的是/opt/data/tmp,此时这个目录还不存在,稍后得通过命令创建该目录

10.通过命令 sudo mkdir -p /opt/data/tmp创建上一步指定的hadoop临时目录,并使用命令 chown hadoop:hadoop -R /opt/data 将/opt/data目录及其所有子目录的UID和GID都设置为hadoop

11.配置hdfs-site.xml.在<configuration></configuration>之间插入以下内容:

    <property>
                       <name>dfs.replication</name>
                       <value>1</value>
               </property>

该property是配置分布式文件系统对于每个文件块的副本数量设置,默认为3,而在伪分布式环境下设置为1,因为只有一个节点

12.将mapred-site.xml.template复制一份为mapred-site.xml,再配置mapred-site.xml.在<configuration></configuration>之间插入以下内容:

<property>
                   <name>mapreduce.framework.name</name>
                   <value>yarn</value>
           </property>

该property是配置进行mapreduce计算任务的框架,设置为yarn

13.配置yarn-site.xml.在<configuration></configuration>之间插入以下内容:

<property>
                   <name>yarn.nodemanager.aux-services</name>
                   <value>mapreduce_shuffle</value>
           </property>
           <property>
                   <name>yarn.resourcemanager.hostname</name>
                   <value>hadoop</value>
          </property>

第一个property配置的是mapreduce使用混洗重组模式,第二个property指定了yarn框架中资源管理者的主机名,因为就一个节点,所以也设置为hadoop

14.配置本机ssh免密登录。这一步详情可以查看 https://blog.csdn.net/smart_ferry/article/details/84446479 

15.使用命令 hdfs namenode -format 对namenode进行格式化。若格式化成功,则/opt/data/tmp(第9步创建的hdfs临时目录)目录下会生成一个新目录dfs;否则,即为失败,应往回检查是否哪里设置错误

16.使用命令 start-all.sh 开启所有节点(伪分布式只有本机一个节点)及节点所开启的所有服务,并使用jps查看该节点的对应服务是否开启成功。如果现实一下内容,则证明配置成功。

17.在/opt/data目录中新建一个文件input.txt,输入内容如下图所示

18.在hdfs文件系统中创建目录/test/input。命令:hdfs dfs -mkdir -p /test/input  并使用命令 hdfs dfs -ls / 查看目录是否创建成功

19.将17创建的input.txt上传至hdfs中的/test/input目录下。命令:hdfs dfs -put /opt/data/input.txt /test/input   使用命令 hdfs dfs -cat /test/input/input.txt  查看是否上传成功

20.使用hadoop自带的WordCount程序对input.txt文件进行单词计数。命令:

yarn jar /opt/modules/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /test/input /test/output 

参数 wordcount 为该jar包的主类名 /test/input 为输入文件夹(是文件夹,不是文件!!!) /test/output 为输出文件夹(是文件夹,不是文件!!!并且,在执行此命令之前,hdfs中不能有/test/output目录!!!)

21.查看单词统计结果。命令:hdfs dfs -cat /test/output/part-r-00000

至此,伪分布式的hadoop环境已经安装并且测试成功...遨游吧,少年

 

 

 

猜你喜欢

转载自blog.csdn.net/smart_ferry/article/details/84436416