一聚教程网:一个值得你收藏的教程网站

Ubuntu14.04 安装配置完全分布式 Hadoop2.6.0

时间:2016-09-08 00:00:00 编辑:简简单单 来源:转载

最近在准备一个大数据处理的东西,需要配置 Hadoop,但是并没有在网上找到可以完全照抄的教程,每次都会出现各种问题,就决定自己写一个,不知道是不是大家的环境不同造成的问题。
0X00 安装前提

设备:
  XX 云 / 虚拟机 / 物理机 任意设备三台
安装环境:
  Ubuntu Server 14.04 LTS 用户名: Ubuntu
  Hadoop 2.6.0
  OpenSSH-Server
  Java JDK
  某些教程会创建单独的 hadoop 用户和用户组,我这里就不弄了,新手容易晕
注意:
  操作用户的用户名:ubuntu
  对,就是这个诡异的名字、下文出现 ubuntu 的时候就是这个用户名可能是她的家里目录也可能指的是这个用户,请读者慢慢参悟。。。
  其实也没多墨迹
0X01 修改主机名

修改主机名的目的是为了后来可以一眼看出来现在配置的是哪台,而且也能起到一个良好的标记作用
sudo vim /etc/hostname/修改这个文件,然后重启机器,主机名就跟着改了
建议命名方式
  HadoopMaster
  HadoopSlave0
  HadoopSalve1
  HadoopSlave...
0X02 安装 JDK

因为 Hadoop 是运行于 JVM 之上的,所以我们需要 JDK
安装 JDK 的时候最好使用 Oracle 的 JDK 因为据说使用 OpenJDK 会出现莫名其妙的问题,但我没作死尝试过
如果服务端在 Oracle 官网下载 JDK 出现问题的话可以用下面两种方法解决
1. SSH 支持文件传输,可以直接下载 JDK 到自己主机上,然后通过 SSH 的软件直接将 JDK 传到服务器上
2. 可以在服务器上搭建 vsftp 服务,从主机上传过去
具体 JDK 的安装就不在这里说了
0X03 修改 hosts 文件

修改 hosts 文件是为了通过主机名能直接找到主机没有人会更愿意背 IP 吧
修改完了之后大概是这样的
127.0.0.1       localhost HadoopMaster //这一行最后的名字是本主机名
10.105.2.90     HadoopMaster //前面是IP后面是主机名
10.131.166.248  HadoopSlave0 //如果在同一内网里的话,最好用内网IP,毕竟快
10.105.4.252    HadoopSlave1
云服务器的话,建议使用内网 IP,毕竟传输快还不要钱
0X04 SSH 免密码登陆 --- 这一步貌似很容易出问题

注意:
id_rsa.pub 文件相当于是自己的密码,authorized_keys 文件相当于用来存储别人密码的容器
免密码登陆大概是这么回事:把自己的密码 (id_rsa.pub 文件) 发送给别人,然后别人把你的密码放在自己的容器中,(authorized_key 文件),所谓免密码登陆大概就是用自己容器中的密码去匹配将要登陆的对方主机密码
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
ssh HadoopSlave0
ssh HadoopSlave1
...
没问题的话就设置好了免密码登陆
0X05 下载 Hadoop2.6.0

下载 Hadoop 的时候我是直接在终端里 wget 的,如果中途遇到什么问题的话,可以参照上面的诡异的办法
我是在 Apache-Hadoop 官网上下载的应该没有问题
wget http://apache.dataguru.cn/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
0X06 解压 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 配置文件,简单配置环境变量
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
然后 source ~/.bashrc 让配置文件生效
执行 hdfs 应该能看到 hdfs 的提示,这就证明安装成功了
0X07 创建 Hadoop 关键目录

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
0X08 配置 Hadoop

vim /usr/local/hadoop/etc/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>
注意倒数第三行是自己的 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
那么最好修改下面这个文件,然后复制一份,改名为上面的名字
修改 D:
/usr/local/hadoop/etc/hadoop/slaves
注意:
这里写的是机器名字也就是我们第一步修改的那个
修改这个文件内容改成:
HadoopSlave0
HadoopSlave1
修改 E:
/usr/local/hadoop/etc/hadoop/slaves
这里写的是机器名字也就是我们第一步修改的那个
修改这个文件内容改成:
HadoopSlave0
HadoopSlave1
0X09 格式化 HDFS 文件系统的 namenode

cd /usr/local/hadoop
bin/hdfs namenode -format
注意:
如果出现疑似下面的问题——————(我不想说我在这上面用了 n 小时)
/************************************************** SHUTDOWN_MSG: Shutting down NameNode at HadoopMaster/10.105.2.90
**************************************************/
其实这特么是没有特么什么特么的问题的!!!!!!!!!
0X0A 启动 Hadoop 集群

/usr/local/hadoop/sbin/start-dfs.sh //这个是启动
/usr/local/hadoop/sbin/stop-dfs.sh  //这个是关闭
启动完成之后执行jps查看输出
如果在 Master 有三个进程,Slave 有两个进程,那就是启动成功了
0X0B 至此,在 Ubuntu Server 14.04 上安装 Hadoop2.6.0 完毕!!!

文章评论

热门栏目