先感叹一下
准备
因为之前已经有安装经验了(虚拟机的三节点分布式,按过几次),再加上对Ubuntu还算比较熟悉中间也算少踩了不少坑。因为这次主要是老师要求所以,才打算再自己安装一次apche hadoop版本,其实现在我个人还是更支持CDH搭建大数据开发平台的,但是最近时间略紧,国庆节再弄吧。后来想着之前虚拟机和伪分布式练习语法已经足够了,这次要来就是直接来能工程运用的,于是安装八节点的Hadoop-2.7.4版本(目前最新的稳定版)硬盘大概留了2.7T可以放数据,其实还可以再改硬盘大小,应该还可以扩容1T左右,暂时用个半年跑跑数据练练手还是可以的。
过程
重装系统和配置IP大概用了半天,唉过程很伤。。。但是更没想到的是SSH配置了五六个小时才好。。希望各位要注意这个问题,后来就开始配置Hadoop,但是配置文件有点问题,hdfs只有主节点起来,子节点都不行。后来又改了一上午,花了四五个小时才弄好,对于这个我只想说“假文档”害人啊。不过好在Hadoop搭建起来了,之后再往上搭建HBase,Hive,Pig,Spark什么的就容易多了。不过确实该考虑一下了,要不要换成CDH了,搭建过程实际花费时间是我原来预计的两倍半左右,还真是伤啊。
准备
之前的文章基本已经写清楚了,JDK下载与SSH配置,请看之前的内容
正式开始前的要确认的
- 安装OracleJDK,并确保你知道JDK的安装位置,参考:http://blog.csdn.net/fontthrone/article/details/77915256
- SSH安装,主节点对其他节点可以无密码登录,和无密码传输文件,参考http://blog.csdn.net/fontthrone/article/details/77916630
- 在hosts中配置好节点与主机名字(hostname)
- 下载Hadoop最新稳定版2.7.4:下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/,解压到/HOME下备用
配置
在主节点上需要的操作
需要新建文件夹四个个,新建与修改文档两个,配置XML文件三个,配置.sh文件一个,copy修改XML文件一个,修改环境变量一个
新建四个文件夹
- 在hadoop根目录文件夹下,新建tmp,dfs两个文件夹
- 然后在dfs文件夹下新建data和name两个文件之后他们会被用到
新建与修改文档两个
- 在
~/hadoop-2.7.4/etc/hadoop
文件夹下新建masters并添加172.31.55.20 Ubuntu01
–这是你主节点的IP与主机名字 - 在该文件夹下的slaves中添加主节点与分节点的hostname,不过好像也有的人在配置时没有添加主节点,自己选择即可
配置XML文件三个
还是这个目录,对于各个文件下配置的含义建议你能有先有一定的了解,有本《hadoop权威指南》最佳,一个不错的博客系列次之。全网查询最差,亦不推荐以此入门。
/hadoop-2.7.4/etc/hadoop/
第一个文件:core-site.xml,在configuration中添加
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/hadoop-2.7.4/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://172.31.55.20:9000</value>
</property>
</configuration>
第二个文件:hdfs-site.xml,在configuration中添加
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/bigdata/hadoop-2.7.4/dfs/name</value>
<description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/bigdata/hadoop-2.7.4/dfs/data</value>
<description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第三个文件:yarn-site.xml,在configuration中添加
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- resourcemanager 启动在那台机器上 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Ubuntu01</value>
</property>
</configuration>
配置的.sh文件一个,
修改hadoop-env.sh文件,在其中找到# The java implementation to use.
,并修改下面的JDK地址,例如:export JAVA_HOME=/usr/lib/jvm/java-8-oracle
COPY,并修改的XML文件一个
还是原来的那个文件夹,将其中的“mapred-site.xml.template”文件复制重命名为“mapred-site.xml”文件
在其中配置:
<configuration>
<property>
<name>mapreduce.framwork.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>172.31.55.20:9001</value>
</property>
</configuration>
打开/etc/profile
添加
export HADOOP_HOME=/home/bigdata/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin
生效:source /etc/profile
检查:
复制,格式化,启动,检查,停止
hadoop文件夹复制到所有分节点
scp -r /home/bigdata/hadoop-2.7.4 bigdata@Ubuntu02:/home/bigdata/
当你某个文件需要再次修改时也可以传输该文件覆盖,但是注意当原文件夹,文件存在时都是覆盖,这和拿U盘复制覆盖是一样的,所以要小心那些覆盖后遗留下来的那些文件,可能会妨碍整个集群的部署
格式化
进入hadoop文件夹 bin/hdfs namenode -format
启动
在/hadoop-2.7.4/sbin文件夹下:
./start.sh启动集群
检查
- 主节点终端输入jps检查启动的程序
- 登录字节点检查启动的程序
- 也可以通过localhost:50070在浏览器查看集群信息,第一次登陆只显示了主节点的信息?第二次登录好了,7个子节点一共有2.4T+的硬盘容量.
- 关闭集群,原文件夹下./stop-all.sh