Hadoop安装与配置 2.6 or 2.7

    hadoop安装前需要安装java。java安装这里就不多介绍。然后去hadoop官网下载hadoop source包。下载下来后把他放到你想安装的位置。比如,解压到c盘:

安装路径

    我这里安装了两个版本,你选择一个就可以了。然后将安装路径添加到系统环境变量中。那么安装结束。

    hadoop简单配置方式基本一致,主要配置四个文件,core-site.xml, yarn-site.xml, hdfs-site.xml和mapred-site.xml(路径在 hadoop-xxx/etc/hadoop目录下)。

    四个配置文件从名字上我们可以看出他们的作用,core核心的意思,core-site.xml 主要是hadoop的核心配置文件。(这里我们使用伪分布式,文章最后会给出完全分布式配置)

主要内容如下:

core-site.xml

    当然这里只指定了两个标签属性,还有其他标签属性。如果有特殊需要可以参考hadoop配置标签文档。

    hdfs-site.xml 从名字上可以看出是hdfs的配置。配置内容如下:

hdfs-site.xml

    这里主要配置hdfs的备份数量,namenode的物理地址,和datanode的物理位置。还有其他需要的话可以参考hadoop配置文档。这里如果只是伪分布式搭建学习用已经足够了。

    mapred-site.xml 是mapreduce任务执行管理的配置文件。从2.x之后mapreduce任务执行控制交由yarn来管理所以这里只需要指定,任务交给yarn管理就好了。

mapred-site.xml

    yarn-site.xml这是任务调度器yarn的配置文件。文件内容如下:

yarn-site.xml

    这里的配置文件配置只是简单的伪分布式。具体配置可以更加需求添加配置属性。配置好后。在hadoop/bin 目录下执行:  hdfs namenode -format 格式化namenode。记得在格式化前 把 配置文件中指定的几个路径创建好。并且具有可读可写权限。

    然后 在sbin目录下执行 start-all (当然 windows系统和linux有差别,windows执行的是.cmd结尾的文件 linux执行的是.sh结尾的文件。 打开sbin目录你会发现好多 start开头的文件 和stop结尾的文件。start-all就是把需要启动的这些start-xxx一次启动。当然不是所有!!!!你启动后会发现  windows下跳出了 四个框体,那就是启动的四个任务。)

    至此,伪分布式配置好了。

    但是有时会报错:比如java环境找不到。这是因为,windows环境默认安装java在 program files文件夹,中间有个空格。这是hadoop找不到java的关键。所以修改hadoop-env.cmd中JAVA_HOME:改为

JAVA_HOME

PROGRA~1 就是 program files。

    还比如:namenode报错,id不一致,那是因为 多次执行hdfs namenode -format.导致。可以删除data,name。重新格式化一次。

    完全分布式的配置。和伪分布式差不多只是有微小差别。


core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

其中,Master这是我配置完全分布式的主节点名。

其中,还需要配置的还有slaves文件夹。

slaves

配置的是从节点。这两个是我配置的从节点名字。在/etc/hosts文件夹中添加  ip映射。

hosts

最好把第一行注释掉,否则你会发现一个头疼的错误,怎么都找不到192.168.157.129:port这个地址。因为你如果用netstat -nlpt就会发现。启动的是 127.0.0.1  Master所以第一行注释掉。

文件配置好后 把hadoop整个文件发送到 Master slave 上。然后添加环境配置。

/etc/profile

添加 hadoop path。这里我没有添加,其实最好把 hadoop的配置路径也加进去。

export HADOOP_CONF_DIR=/usr/hadoop/etc/hadoop

export PATH=$PATH:$HADOOP_CONF_DIR

    因为后续会用到FileSystem.get()这个方法。你读源码会发现,他需要加载core-site.xml文件。如果不添加这个路径,他找不到我们配置的文件在哪。所以可能会报错。如果windows安装,最好也添加到系统变量中。不过你还是会发现,例如idea,eclipse等找不到。这是你可以将路径添加到classpath中。   

    找不到的表现是:var fs = FileSystem.get(new Configuration())

                                   fs.gerUri == file:///

    (这是用scala写的。)

配置好后,最好对mater->slave 做ssh免密登录。不做也可以,但是每次启动和关闭会要求你密码验证。麻烦!!!

在ssh上执行 ssh-keygen -t rsa 以后一直回车到最后。

我是用root执行指令的。cd ~/.ssh

在目录下:有 

ssh

执行cat ida_rsa.pub >> authorized_keys

然后把 ida_rsa.pub发送到 各个slave 节点 ~/.ssh 目录下也执行cat ida_rsa.pub >> authorized_keys

这样就配置好了。

然后在master上执行,hdfs namenode -format

然后start-all。至此结束。

如果有问题。或者写不到的地方麻烦指正。第一次写 写的不好见谅。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 终极算法 关注微信号每天收听我们的消息终极算法为您推送精品阅读 前言 Hadoop 在大数据技术体系中的地位至关...
    Yespon阅读 131,404评论 12赞 168
  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,970评论 0赞 14
  • 1. Zookeeper介绍: 1.基本介绍: Zookeeper: 为分布式应用提供分布式协作(协调)服务。使用...
    奉先阅读 4,752评论 0赞 10
  • 参考书目:《气质》 气质是一个人最好的化妆,即使貌不惊人也能吸引到艳羡的目光。 要拥有良好的气质需要长时间的修炼,...
    太平洋里的猫阅读 165评论 0赞 3
  • 可以根据客户的职能部门去找人。 我们客户公司的各个部门均有其工作职责和相应的工作范围权限,比如采购部只负责采购,技...
    摩西44阅读 222评论 0赞 0

友情链接更多精彩内容