基于Ubuntu14.04的Hadoop2.6.0完全分布式安装

来源:互联网 发布:php和java哪个好找工作 编辑:程序博客网 时间:2024/04/30 17:35

博客搬家了,最近同时更新,没准什么时候就完全搬走了-_-
http://blog.just666.cn 这个是新博客地址,希望大家多多关照

**

//到底怎么安装完全完全分布Hadoop

**

/最近正在准备一个云计算&&大数据的比赛,需要配置Hadoop,然而并没有找到一个可以完全走流程的Hadoop安装教程,So,准备自己边学边写一个,不知道是不是到了别人不同的机器上会不会也是出现各种问题。。。算了,试试吧/

0.准备一些生物设备,物理设备,软件

人一个
阿里云/腾讯云/虚拟机 的三台机器
给他们装好系统

安装环境:

Ubuntu Server 14.04 LTS + Hadoop 2.6.0 用户名:ubuntu
//有的教程是创建了一个hadoop用户组和用户,我这里就不创建了,容易晕,而且没问题
JDK1.7
Hadoop 2.6.04
openssh-server
除了系统的东西都可以先不管呢,后面会一起安装

注意:

操作用户的用户名:ubuntu
对,就是这个诡异的名字、下文出现ubuntu的时候就是这个用户名可能是她的家里目录也可能指的是这个用户,请读者慢慢参悟。。。

1.首先要修改主机名,这步并不是必须的,但是会提高以后的效率
目的是一眼就能看出来现在配置的是哪台、不会乱(同时打开多个xShell还是挺刺激的,一不小心就乱了)
sudo vim /etc/hostname 修改这个文件,然后 reboot 重启一下,就能看到了。
建议命名方式:

HadoopMaster
HadoopSlave0
HadoopSlave1
HadoopSlave…

2.安装JDK 因为Hadoop是运行在Java上的,所以我们需要JDK
安装JDK的时候最好用官方的,据说openJDK会有莫名其妙的问题,但是我没作死尝试过
我安装JDK是用了一些诡异的办法才传到服务器上去的、如果也是用的服务器的话可以尝试一下我的方法:

我先在Master上搭建了VSFTP然后用Windows本地机下载好传上去、
因为直接wget下载的话,有很多问题,我就用了这么一个简单明了而且还暴力的办法

具体安装过程就不说了,安装好JDK之后进入下一步

3.修改hosts文件 //为了后面通过主机名查找主机
sudo vim /etc/hosts
修改成大概这样

127.0.0.1 localhost HadoopMaster //这一行最后的名字是本主机名
10.105.2.90 HadoopMaster //前面是IP后面是主机名
10.131.166.248 HadoopSlave0 //如果在同一内网里的话,最好用内网IP,毕竟快
10.105.4.252 HadoopSlave1

云服务器的话建议用内网IP,毕竟传输快不要钱

4.SSH免密码登陆——当时我在这里出现了很多很多问题、有多少?大概Linux内核代码行数个小时吧
注意:

id_rsa.pub文件相当于是自己的密码,authorized_keys文件相当于用来存储别人密码的容器

免密码登陆大概是这么回事:把自己的密码(id_rsa.pub文件)发给别人,然后别人把你的密码放在自己的容器中(authorized_keys文件)
所谓的免密码登陆就是用自己容器中的每一条密码去尝试看能不能登陆到对方

sudo apt-get install openssh-server //先安装服务端
首先执行一次 sudo rm ~/.ssh-rfv 删除配置文件
然后执行 ssh localhost 链接自己,会提示输入密码,我们Ctrl + C 结束掉就好了 现在已经生成了属于当前用户的 .ssh 文件夹了
ssh-keygen -t rsa //生成密钥,一路回车 cat
id_rsa.pub >> authorized_keys //把自己的密钥放到容器中

对每一台服务器都这么操作
然后用一些自己认为可行的方法把三台服务器的每一台中的密钥(id_rsa.pub文件)的内容
复制到其他所有服务器的authorized_keys文件中,相当于每台服务器都可以免密码登陆其他两台了

最后在三台服务器上执行试试

ssh HadoopMaster
看看是不是登陆了,是的话exit就好了
然后试试
ssh HadoopSlave0 yes
exit
ssh HadoopSlave1 yes
exit

能登陆的话免密码就设置好了

5.下载Hadoop2.6.0 因为这篇文章就是安装Hadoop,所以我们需要Hadoop →_→
下载Hadoop的时候我是直接在终端里wget的,如果中途遇到问题的话可以参照上面的诡异办法
我是在Apache官网上下载的、应该没有什么特殊情况

wget http://apache.dataguru.cn/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz //下载命令

6.解压Hadoop2.6.0 因为压缩包并不能运行,so我们解压Hadoop ←_←

sudo tar -zxvf hadoop2.6.0.tar.gz -C /usr/local //解压文件到/usr/local 目录
sudo mv /usr/local/hadoop2.6.0 /usr/local/hadoop //用mv给文件夹重命名 sudo
chown -R ubuntu /usr/local/hadoop //给权限 ubuntu 指的是用户 尝试执行
/usr/local/hadoop/bin/hadoop 看看能不能执行

vim ~/.bashrc 修改bash配置文件,添加如下内容 //配置hadoop的环境变量

export HADOOP_INSTALL=/usr/local/hadoopexport PATH=$PATH:$HADOOP_INSTALL/binexport PATH=$PATH:$HADOOP_INSTALL/sbinexport HADOOP_MAPRED_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_HOME=$HADOOP_INSTALLexport HADOOP_HDFS_HOME=$HADOOP_INSTALLexport YARN_HOME=$HADOOP_INSTALL

然后执行 source ~/.bashrc 让配置文件生效
执行hdfs命令,应该能看到hdfs的提示,这就证明已经可以运行了

7.创建些个诡异的文件

这些文件夹就是用来存储各种数据的地方、

sudo mkdir /home/hadoop
sudo chown -R ubuntu /home/hadoop
mkdir /home/hadoop/hadoop2.6.0
mkdir /home/hadoop/hadoop2.6.0/tmp
mkdir /home/hadoop/hadoop2.6.0/dfs
mkdir /home/hadoop/hadoop2.6.0/dfs/name
mkdir /home/hadoop/hadoop2.6.0/dfs/data

8.配置hadoop

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

添加如下内容

export JAVA_HOME=/usr/java/jdk1.8.0_25

注意:

java 路径不清楚的话可以 echo $JAVA_HOME 查看一下 然后修改几个xml的配置文件:
注意:必须加在节点内
注意:必须加在节点内
注意:必须加在节点内
//重要的话说三遍

A. 修改/usr/local/hadoop/etc/hadoop/core-site.xml

<configuration>            <property>                <name>hadoop.tmp.dir</name>                <value>/home/hadoop/hadoop-2.6.0/tmp</value>                <description>Abase for other temporary directories.</description>            </property>            <property>                <name>fs.default.name</name>                <value>hdfs://HadoopMaster:9000</value>            </property>        </configuration>

注意,倒数第三行的HadoopMaster:9000是自己的Master主机名加上:9000的

B. 修改 /usr/local/hadoop/etc/hadoop/hdfs-site.xml

<property>        <name>dfs.name.dir</name>        <value>/home/hadoop/hadoop-2.6.0/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/hadoop/hadoop-2.6.0/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>

C. 修改 /usr/local/hadoop/etc/hadoop/mapred-site.xml


mapred.job.tracker
master:9001
Host or IP and port of JobTracker.

注意:

如果/usr/local/hadoop/etc/hadoop/mapred-site.xml文件没有
但是有/usr/local/hadoop/etc/hadoop/mapred-site.xml.template
那么最好修改下面这个文件,然后复制一份,改名为上面的名字

9.修改/usr/local/hadoop/etc/hadoop/masters
注意:

这里写的是机器名字也就是我们第一步修改的那个
修改这个文件内容改成:
HadoopMaster

10.修改/usr/local/hadoop/etc/hadoop/slaves
注意:

这里写的是机器名字也就是我们第一步修改的那个
修改这个文件内容改成:
HadoopSlave0
HadoopSlave1

11.格式化HDFS文件系统的namenode
cd /usr/local/hadoop
bin/hdfs namenode -format
注意:

如果出现疑似下面的问题——————(我不想说我在这上面用了n小时)
/**************************************************
SHUTDOWN_MSG: Shutting down NameNode at HadoopMaster/10.105.2.90
**************************************************/
其实这特么是没有特么什么特么的问题的!!!!!!!!!

12.启动Hadoop集群 →_→
/usr/local/hadoop/sbin/start-dfs.sh //这个是启动
/usr/local/hadoop/sbin/stop-dfs.sh //这个是关闭
启动完了之后执行:
jps
看看是不是在Master有三个进程,Slave上有两个进程、是的话就对了

至此,在Ubuntu Server 14.04上安装Hadoop2.6.0完毕!!!

0 0