image
于开帅

顺应自然,发挥主观能动性。

Hadoop安装配置(伪分布式)

于开帅    2017-11-14 22:14

背景

       本人这段时间一直在进行hadoop的安装配置,前前后后花费了很多时间。在这里感谢学长的帮助,才让我对安装的过程

有了更好的理解也让我更加顺利的安装成功。在这里只提供伪分布式的安装步骤,分布式的安装之后经过测试再给出。安装过程如

有错误,欢迎大家前来指正。

环境

虚拟环境:Oracle VM VirtualBox

虚拟机:ubuntu-14.04.4-server-amd64

JDK:jdk-8u131-linux-x64.tar

HADOOP:hadoop-2.6.0.tar

客户端:Bitvise SSH Client

安装虚拟环境

在window上安装VirtualBox虚拟环境。这里使用VirtualBox-5.1.18-114002-Win。傻瓜式安装。

安装虚拟机

1、点击新建按钮,选择类型为linux,点击下一步。

2、选择内存1024M,储存20G。傻瓜式安装,设置账号密码并牢记。

添加启动镜像,此处为ubuntu14.04

english —— install —— 键盘检测跳过直接选english US —— 傻瓜式安装。设置账户密码,牢记账户密码。

注意要选择ssh(按空格选择)

sudo passwd改root密码

配置网卡+重启

输入sudo vim /etc/network/interface

后增加以下内容

auto eth0

iface eth0 inet dhcp

up route add default gw 10.0.2.2 dev eth0      (#持久化操作)

 

auto eth1

iface eth1 inet static

address 192.168.56.100         (#此处为登录的IP地址)

netmask 255.255.255.0

gateway 192.168.56.1

dns 202.118.1.29

up route del default dev eth1                 (#持久化操作)

注:按i或Insert可以进入填写内容,按Esc和:wq是保存并退出。

输入sudo vim /etc/hosts 配置ip地址,把ipv6注释掉

3、关闭虚拟机

4、客户端网卡配置好

5、启动虚拟机(无界面登录),并且使用Bitvise SSH Client登录(方便)。Bitvise SSH Client的IP和虚拟机中配置的是对应的。

Jdk安装

1、解压缩

hadoop@master:~/softwares$ tar -vzxf jjdk-8u131-linux-x64.tar.gz(tar和-vzxf之间有空格)

2、修改名字

hadoop@master:~/softwares$ mv jjdk1.8.0_131 jdk1.8.0

3、设置环境变量,增加到/etc/profile中

export JAVA_HOME=/home/hadoop/softwares/jdk1.8.0

export JRE_HOME=${JAVA_HOME}/jre

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

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

4、配置生效

 hadoop@master:~/softwares$ source /etc/profile

5、验证

java -version

Hadoop安装

本节的所有的配置均在(/home/hadoop/softwares/hadoop-2.6.0/etc/hadoop/)下。

1、切换到/home/hadoop/softwares/hadoop-2.6.0/etc/hadoop/下,进行hadoop-env.sh的配置。

export JAVA_HOME=/home/hadoop/softwares/jdk1.8.0

2、进行core-site.xml的配置。

<configuration>

       <property>

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

<description>hadoop hdfs 主节点的文件地址</description>

       </property>

       <property>

                <name>io.file.buffer.size</name>

                <value>131072</value>

<description>IO缓冲池大小</description>

        </property>

       <property>

               <name>hadoop.tmp.dir</name>

               <value>file:/home/hadoop/softwares/hadoop-2.6.0/tmp</value>

               <description>hadoop运行时中间文件的存放位置,不能配置成系统默认的/tmp目录,会导致hadoop下次运行时数据丢失</description>

       </property>

        <property>

               <name>hadoop.proxyuser.hadoop.hosts</name>

               <value>*</value>

   <description>该集群的hosts控制,允许hadoop用户在 其他ip地址上进行访问该集群</description>

       </property>

       <property>

               <name>hadoop.proxyuser.hadoop.groups</name>

               <value>*</value>

   <description>hadoop所属组,结合webhdfs使用,可以通过http post 等协议访问hdfs</description>

       </property>

</configuration>

3、配置mapred-site.xml, 默认没有改配置文件,使用

cp  mapred-site.xml.template  mapred-site.xml 进行创建。

 

<configuration>

  <property>                                                                  

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

                <value>yarn</value>

<description>mapreduce使用的资源调度框架,yarn</description>

           </property>

          <property>

                  <name>mapreduce.jobhistory.address</name>

                  <value>master:10020</value>

  <description>提交到hadoop上的作业的jobhistoryserver端口号</description>

          </property>

          <property>

                <name>mapreduce.jobhistory.webapp.address</name>

                <value>master:19888</value>

<description>访问作业历史情况的web端口</description>

       </property>

</configuration>

4、配置hdfs-site.xml。

<configuration>

 <property>

                <name>dfs.namenode.secondary.http-address</name>

               <value>master:9001</value>

   <description>secondary namenode 地址,集群故障时采用</description>

   

       </property>

     <property>

             <name>dfs.namenode.name.dir</name>

             <value>file:/home/hadoop/softwares/hadoop-2.6.0/dfs/name</value>

  <description>主节点元文件信息目录</description>

       </property>

      <property>

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

              <value>file:/home/hadoop/softwares/hadoop-2.6.0/dfs/data</value>

   <description>从节点文件存放目录</description>

       </property>

       <property>

               <name>dfs.replication</name>

               <value>2</value>

    <description>集群存储2份数据</description>

        </property>

        <property>

                 <name>dfs.webhdfs.enabled</name>

                  <value>true</value>

   <description>可以使用web访问hdfs</description>

         </property>

</configuration>

5、在/etc/profile中增加HADOOP_HOME的PATH,CLASSPATH相关的路径,修改完以后,使用source /etc/profile生效。

并有java -version测试。

/etc/profile中的文件内容如下:

6、注:一个横线的问题找了一个小时,很坑。所以当你解决不了问题的时候重新自己打一遍代码,不要复制。如下:

7、最好注释掉/etc/hosts中的ipv6功能和127.0.1.1这个虚地址。

8、各个配置中的文件夹需要手动创建 tmp     dfs/name     dfs/data

9、退出到hadoop-2.6.0目录格式化主节点

10、hadoop@master:~/softwares/hadoop-2.6.0$ bin/hadoop namenode –format

11、启动分布式文件系统

hadoop@master:~/softwares/hadoop-2.6.0$ sbin/start-dfs.sh

12、启动完成以后使用jps命令查看进程。

13、登录网页http://192.168.56.100:50070 查看节点状态。其中192.168.56.100为主节点ip地址。

14、关闭命令。

hadoop@master:~/softwares/hadoop-2.6.0$ sbin/stop-dfs.sh

15.解决datanode进程未出现

解决办法:删除data文件夹。

执行测试程序wordcount

1、进入到/home/hadoop/softwares/hadoop-2.6.0目录(就是有README.txt的那个);

 

2、创建input目录,用来存放README.txt文件:

hadoop fs -mkdir /input

3、将README.txt文件存入HDFS中的input文件夹下:

hadoop fs -copyFromLocal README.txt /input

4、查看是否成功将README.txt文件放入相应的HDFS文件夹:

hadoop fs -ls /input

5、进入/home/hadoop/softwares/hadoop-2.6.0/share/hadoop/mapreduce文件夹下执行:

hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output

6、查看程序运行结果:

hadoop fs -ls /output

7、查看每个单词的统计结果

hadoop fs -cat /output/part-r-00000

8、output已存在,需删除output

hadoop fs -ls /output查看hadoop的output文件

hadoop fs -rm /output/_SUCCESS  删除/output/_SUCCESS

9、测试另一个文本(I LOVE CHINA)

测试之前没有删除output,之后删除也报错。最后采用重启hadoop解决了这个问题,不知道有没有更好的方法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Views: 2.4K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment