阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 14.04下Hadoop 2.7.2安装配置详述

121次阅读
没有评论

共计 10916 个字符,预计需要花费 28 分钟才能阅读完成。

注意:以下实践实在 Ubuntu 14.0.4 以及 Hadoop2.7.2 所做的,如果环境不同,效果可能不理想。

首先,以下默认我们已经下载好了 jdk 以及 hadoop 的压缩包,没有的话,需要这里 ->JDK 下载 | Hadoop 下载下载

一. 配置 jdk

Ubuntu 默认是使用的 OpenJDK,似乎也可以,不过因为惯性,我还是先配置了 Sun 的 JDK,以防万一。

  • 修改环境文件

运行命令:sudo gedit ~/.bashrc
末尾另起一行加入

    export JAVA_HOME=[your_jdk_path]
    export  PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

例如:

    export JAVA_HOME=/home/lq/jdk1.8
    export  PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

修改 bashrc 文件,可以参考文章设置 Linux 环境变量的方法和区别  http://www.linuxidc.com/Linux/2015-02/113488.htm

二. 设为默认 jdk

命令行中输入命令

sudo update-alternatives --install /usr/bin/java java [your_jdk_path]/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac [your_jdk_path]/bin/javac 300

例如:

sudo update-alternatives --install /usr/bin/java java /home/lq/jdk1.8/bin/java 300`
sudo update-alternatives --install /usr/bin/javac javac /home/lq/jdk1.8/bin/javac 300`

三. 配置 ssh:

因为是 hadoop 伪分布试配置,hadoop 需要设置 ssh 登录,一般设为无密码登录
1. 安装 SSH server

运行命令:sudo apt-get install openssh-server
2. 登录

运行命令:ssh localhost
3. 配置无密码登录

运行以下 4 条命令:

exit #退出刚才的 ssh localhost

cd ~/.ssh/ # 若没有该目录,请先执行一次 ssh localhost

ssh-keygen -t rsa # 会有提示,都按回车就可以

cat ./id_rsa.pub >> ./authorized_keys # 加入授权

四. 配置 Hadoop 环境

运行命令:
sudo gedit ~/.bashrc
末尾加入如下语句:

export HADOOP_HOME=[your_hadoop_path]
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

例如:

export HADOOP_HOME=/home/lq/hadoop-2.7
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

五. 修改 Hadoop 默认的配置文件

  • 修改 hadoop-env.sh 文件

在文件中找到export JAVA_HOME=${JAVA_HOME},修改为export JAVA_HOME=[your_jdk_path]

例如:export JAVA_HOME=/home/lq/jdk1.8

  • 在 hadoop 的目录中找文件夹 etc,修改其中的 core-site.xml

    <configuration>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:[your_hadoop_temp_path]</value>// 这里填写的是你的 hadoop 的临时文件夹,一般放到 hadoop_home 文件夹的目录下
        <description>Abase for other temporary directories.</description>
        </property>
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
        </property>
    </configuration>

例如:

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
  • 修改 hdfs-site.xml 文件

       <configuration>
           <property>
               <name>dfs.replication</name>
               <value>1</value>
           </property>
           <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:[your_hadoop_temp_path]/tmp/dfs/name</value>
           </property>
           <property>
               <name>dfs.datanode.data.dir</name>
               <value>file:[your_hadoop_temp_path]/tmp/dfs/data</value>
           </property>
       </configuration>

例如:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp/dfs/data</value>
        </property>
    </configuration>

六. 启动 hadoop

  • 首先需要先格式化 namenode,在 hadoop 的安装目录下执行
    bin/hadoop namenode -format

这条语句执行一次就可以了,无需次次启动都执行,成功的话会有下面图片上的信息 而且格式化 namenode 会造成 HDFS 文件系统内的数据丢失,如果有重要数据的话需要先保存。

另外,遇到格式化不成功的情况,再次启动 hadoop,使用 jps 语句查看会发现 Datanode 进程不存在,这时可以将 hadoop 的临时目录(在 hdfs-site.xml 中配置的)清空后再次格式化、启动,就可以了。
* 启动 hadoop
sbin/start-all.sh

启动后使用命令 jps 可查看现在运行的 java 进程,如下

Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

  • 停止 hadoop
    sbin/stop-all.sh

如你所想,启动和停止命令是两个总命令,还可以通过两个小命令(start-dfs.sh start-yarn.sh stop-dfs.sh stop-yarn.sh)实现同样的功能。

至此,如果启动关闭过程中命令行没有报错,那么就配置成功了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148471p2.htm

使用 eclipse 开发 Hadoop 而不是使用记事本 + 命令行是一种进步吧,那么为了这种进步,首先我们需要配置 eclipse

之前我试过在 windows 下运行 eclipse 连接虚拟机中的 hadoop,后来觉得速度简直不能忍,而且软件反应也慢,所以我推荐在虚拟机中使用 eclipse。
好在使用 eclipse 配置 hadoop 开发环境,在 Ubuntu 和 windows 下完全一样,所以以下部分有共同之处。

1. 下载 eclipse 和 Hadoop 插件

eclipse 下载地址

eclipse-hadoop 插件下载地址
下载推荐自己去官网下载,而不是用 Ubuntu 的软件市场,一是因为软件市场里的 eclipse 版本较低,二是因为软件市场里安装的 eclipse 不好找到安装位置,不便于找到 plugins 文件夹拷贝 hadoop 的插件。

2. 配置 eclipse

下载好后,解压,把文件夹放到合适的地方(你喜欢的地方),然后将下载的 eclipse-hadoop-plugins 插件粘贴到 eclipse 的 plugins 目录下,启动 eclipse。
1. window->Preference-> 左侧 Hadoop Map/Reduce-> 右侧 browse , 选择 Hadoop 的安装目录
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
2. 然后在 eclipse 的 window 选项卡下找到 show view->other-> 选择 Map/Reduce Tool 下的 Map/Reduce Location 即可
3. 同时,最好将 Project Explorer 的 View 也选中,这时,在 Project Explorer 中可以看到一个 DFS Location 的文件夹,Hadoop 的 HDFS 文件系统的文件都会显示在这里,之后我们开发就不用使用命令行向 HDFS 中拷贝文件了,直接在这里拷贝就行。
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

3. 连接 Hadoop

首先保证 Hadoop 已经正常运行起来。
在 Map/Reduce Location 的 view 中右键 new hadoop location,在弹出窗口中配置如下信息
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
应当注意,这些信息与我们曾经在“Ubuntu 虚拟机下配置 Hadoop 开发环境(1)”中第 5 步配置 core-site.xml 的配置是一致的

配置好后,新建工程选项 Map/Reduce project 就可以建立 hadoop 的工程了

这里有一点:我们工程里没有 hadoop 的 library 怎么办?

我的笨办法是从 hadoop 的安装目录的 share/hadoop 下将常见的 library 的 jar 包拷贝出来一份,组成一个 library 导入到 hadoop 工程的 Build Path 中. 常见的 jar 包分别是 common、hdfs、yarn、mapreduce 目录下的 jar 以及下一层目录 lib 中的 jar 包。更好的办法是使用 Ant 和 Maven 构建工程。

参考:搭建 Hadoop2.6.0+Eclipse 开发调试环境

注意:以下实践实在 Ubuntu 14.0.4 以及 Hadoop2.7.2 所做的,如果环境不同,效果可能不理想。

首先,以下默认我们已经下载好了 jdk 以及 hadoop 的压缩包,没有的话,需要这里 ->JDK 下载 | Hadoop 下载下载

一. 配置 jdk

Ubuntu 默认是使用的 OpenJDK,似乎也可以,不过因为惯性,我还是先配置了 Sun 的 JDK,以防万一。

  • 修改环境文件

运行命令:sudo gedit ~/.bashrc
末尾另起一行加入

    export JAVA_HOME=[your_jdk_path]
    export  PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

例如:

    export JAVA_HOME=/home/lq/jdk1.8
    export  PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

修改 bashrc 文件,可以参考文章设置 Linux 环境变量的方法和区别  http://www.linuxidc.com/Linux/2015-02/113488.htm

二. 设为默认 jdk

命令行中输入命令

sudo update-alternatives --install /usr/bin/java java [your_jdk_path]/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac [your_jdk_path]/bin/javac 300

例如:

sudo update-alternatives --install /usr/bin/java java /home/lq/jdk1.8/bin/java 300`
sudo update-alternatives --install /usr/bin/javac javac /home/lq/jdk1.8/bin/javac 300`

三. 配置 ssh:

因为是 hadoop 伪分布试配置,hadoop 需要设置 ssh 登录,一般设为无密码登录
1. 安装 SSH server

运行命令:sudo apt-get install openssh-server
2. 登录

运行命令:ssh localhost
3. 配置无密码登录

运行以下 4 条命令:

exit #退出刚才的 ssh localhost

cd ~/.ssh/ # 若没有该目录,请先执行一次 ssh localhost

ssh-keygen -t rsa # 会有提示,都按回车就可以

cat ./id_rsa.pub >> ./authorized_keys # 加入授权

四. 配置 Hadoop 环境

运行命令:
sudo gedit ~/.bashrc
末尾加入如下语句:

export HADOOP_HOME=[your_hadoop_path]
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

例如:

export HADOOP_HOME=/home/lq/hadoop-2.7
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

五. 修改 Hadoop 默认的配置文件

  • 修改 hadoop-env.sh 文件

在文件中找到export JAVA_HOME=${JAVA_HOME},修改为export JAVA_HOME=[your_jdk_path]

例如:export JAVA_HOME=/home/lq/jdk1.8

  • 在 hadoop 的目录中找文件夹 etc,修改其中的 core-site.xml

    <configuration>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:[your_hadoop_temp_path]</value>// 这里填写的是你的 hadoop 的临时文件夹,一般放到 hadoop_home 文件夹的目录下
        <description>Abase for other temporary directories.</description>
        </property>
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
        </property>
    </configuration>

例如:

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
  • 修改 hdfs-site.xml 文件

       <configuration>
           <property>
               <name>dfs.replication</name>
               <value>1</value>
           </property>
           <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:[your_hadoop_temp_path]/tmp/dfs/name</value>
           </property>
           <property>
               <name>dfs.datanode.data.dir</name>
               <value>file:[your_hadoop_temp_path]/tmp/dfs/data</value>
           </property>
       </configuration>

例如:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/lq/hadoop-2.7/tmp/dfs/data</value>
        </property>
    </configuration>

六. 启动 hadoop

  • 首先需要先格式化 namenode,在 hadoop 的安装目录下执行
    bin/hadoop namenode -format

这条语句执行一次就可以了,无需次次启动都执行,成功的话会有下面图片上的信息 而且格式化 namenode 会造成 HDFS 文件系统内的数据丢失,如果有重要数据的话需要先保存。

另外,遇到格式化不成功的情况,再次启动 hadoop,使用 jps 语句查看会发现 Datanode 进程不存在,这时可以将 hadoop 的临时目录(在 hdfs-site.xml 中配置的)清空后再次格式化、启动,就可以了。
* 启动 hadoop
sbin/start-all.sh

启动后使用命令 jps 可查看现在运行的 java 进程,如下

Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

  • 停止 hadoop
    sbin/stop-all.sh

如你所想,启动和停止命令是两个总命令,还可以通过两个小命令(start-dfs.sh start-yarn.sh stop-dfs.sh stop-yarn.sh)实现同样的功能。

至此,如果启动关闭过程中命令行没有报错,那么就配置成功了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148471p2.htm

在 Windows 下配置,还需要当心 IP 地址和 eclipse 配置时的问题,这需要单独说一下。

在 Ubuntu 下 eclipse 新建 HadoopIP 直接填 localhost 就好,但是在 Windows 下肯定是不行的,它需要连接到虚拟机中的 hadoop,这里涉及到配置虚拟机 Ubuntu 的固定 IP,还设计到 telnet 服务,比较麻烦,我们一个一个讲(所以说,还是推荐在 Ubuntu 下使用 eclipse 连接 hadoop)

1. 配置虚拟机 IP 地址:

这一步,这个教程的简单粗暴就体现出来了,如何简单地固定虚拟机的 IP 地址呢。传统的固定 IP 的方法是在 VMware 设置完后,再在 Ubuntu 中设置获取 IP 的方法,这种方法当然结果一定正确,也最普适。这里有一篇文章讲到这种方法    VMware 下 Ubuntu 14.04 静态 IP 地址的设置方法  见  http://www.linuxidc.com/Linux/2017-11/148470.htm

我觉得上面提到的方式太复杂了,没有照着做。
我的方法是:

在 VMware 中 -> 编辑 -> 虚拟网络编辑器 ->Vmnet8-> 修改最下面显示的子网 IP,比如改为 192.168.100.0 -> 再修改 DHCP 设置中的开始 IP 和结束 IP,比如开始 IP 改为 192.168.100.128, 结束 IP 改为 192.168.100.129
附图
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

这种方法的好处是不需要再在 Ubuntu 中设置什么了,Ubuntu 如果联网,一定只能获取一个 IP,按照这里的修改方法,IP 为 192.168.100.128。当然,缺点也是很明显的,所有 VMware 下的虚拟机都是这一个 IP,如果要多开虚拟机的话一定会有问题。不过我们这是 Hadoop 伪分布式配置,只使用一个虚拟机,而且多个虚拟机我的笔记本电脑也受不了,所以这个问题目前不用考虑。

2. 配置 talnet 服务

  • Windows 连接 Ubuntu 需要 talnet 服务,Windows 默认可能是关闭这个服务的,我们需要首先到控制面板 -> 程序与功能 -> 左侧面板 找 启动或关闭 Windows 功能 -> 找到 talnet 客户端,打对勾开启功能

然后,Ubuntu 默认也是没有这项功能的,需要我们自己安装

  • 安装 openbsd-inetd,运行命令:

sudo apt-get install openbsd-inetd

  • 然后是 telnet,运行命令:

sudo apt-get install telnet

  • 配置,运行命令:

    sudo gedit /etc/inetd.conf

在打开的文件中加入以下一行

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
  • 1
  • 2
  • 重启 openbsd-inetd,运行命令:

    sudo /etc/init.d/openbsd-inetd restart

  • 使用命令 netstat -a | grep telnet 命令查看是否开启 telnet
    Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

没有任何显示的话就是没开启,开启的话,在 Windows 下命令行输入 talnet 192.168.100.128 会显示一个没有文字的黑框或者提示登陆,注意,这里的 IP 地址也是我们在 VMvare 中配置的
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

3. Ubuntu 配置 hadoop 的 IP

这一步比较混乱,我试了好久,糊里糊涂找到一种可行的方法,却想不清楚缘由。

  1. 首先修改 hosts 文件,将 VMware 分配的固定的 IP 加入:这里,我直接将原先有的 127.0.0.1 ubuntu 改成了 192.168.100.128 ubuntu,没有问题。
    Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
  2. 修改 hadoop 下的 core-site.xml 文件:
    这个文件中,我们曾配置过 IP 地址为 localhost,现在,我们为了 Windows 连接到 hadoop,将其改为 192.168.100.128,保存
    Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
  3. 启动 hadoop,在 hadoop 文件下打开命令行,输入sbin/start-all.sh

  4. 测试
    这个时候在 ubuntu 的命令行里输入 netstat -a | grep tcp 应该能看到 192.168.100.128(我的对应主机名正是 ubuntu)下有监听端口 9000。在 Windows 中也打开命令行 telnet 相应端口,输入telnet 192.168.100.128 9000, 没有问题的话会像之前测试 telnet 功能一样只显示一个黑框
    Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
    Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述

4. 配置 Windows 下的 eclipse

这里就和上一篇博文中提到的 ubuntu 下配置 eclipse 大同小异了
1. 首先,将 hadoop-eclipse 插件放入 eclispe 安装目录的 plugins 目录下
2. window->Preference-> 左侧 Hadoop Map/Reduce-> 右侧 browse , 选择 Hadoop 的安装目录
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
3. 然后在 eclipse 的 window 选项卡下找到 show view->other-> 选择 Map/Reduce Tool 下的 Map/Reduce Location 即可。同时,这时,在 Project Explorer 中可以看到一个 DFS Location 的文件夹,Hadoop 的 HDFS 文件系统的文件都会显示在这里,之后我们开发就不用使用命令行向 HDFS 中拷贝文件了,直接在这里拷贝就行
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
4. 连接 hadoop
首先确保 Ubuntu 的 hadoop 正常启动,然后在 Windows 下的 eclipse 中新建一个 hadoop,配置如图:
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
Ubuntu 14.04 下 Hadoop 2.7.2 安装配置详述
IP 输配置好的(我的是 192.168.100.128),端口是 9001,另一个选项栏打对勾(选中是伪分布模式),端口是 9000(到此位置和在 Ubuntu 下的配置相同)。然后另一个选项卡找 hadoop.tem.dir,填 Ubuntu 下 hadoop 的临时文件目录,与 core-site.xml 中配置的是一样的。确认,等一会儿就会出现 hadoop 的文件夹了(速度比较慢)

至此,不出意外的话 Windows 下 eclipse 就连接到虚拟机中的 hadoop 了。不得不说,两边开两个重型软件,我的电脑比较卡,还是在 Ubuntu 下用 Eclipse 感觉流畅一些。

Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

Hadoop2.7.2 集群搭建详解(高可用)http://www.linuxidc.com/Linux/2017-03/142052.htm

使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)http://www.linuxidc.com/Linux/2017-03/142136.htm

Ubuntu 14.04 下 Hadoop 集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

CentOS 6.7 安装 Hadoop 2.7.2  http://www.linuxidc.com/Linux/2017-08/146232.htm

Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

CentOS 7.3 下 Hadoop2.8 分布式集群安装与测试  http://www.linuxidc.com/Linux/2017-09/146864.htm

CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148471.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计10916字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中