Jetson TK1嵌入式开发板hadoop集群配置详细过程

JetsonTK1嵌入式开发板hadoop配置详细过程

实验环境

操作平台:Jetson TK1嵌入式开发板
操作系统:Ubuntu14.04
软件版本:hadoop-0.20.2, jdk-7u60-linux-arm
集群架构:包括4个节点:1个Master,3个Salve,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:

主机名

IP

系统版本

Hadoop node

hadoop进程名

master

211.68.39.143

Ubuntu14.04

master

namenode,jobtracker

slave1

211.68.39.144

Ubuntu14.04

slave

datanode,tasktracker

slave2

211.68.39.145

Ubuntu14.04

slave

datanode,tasktracker

slave3

211.68.39.146

Ubuntu14.04

slave

datanode,tasktracker

四个节点上均是Ubuntu系统,并且有一个相同的用户hadoop。master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个slave机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

配置过程:

下载资源:hadoop-0.20.2.tar.gz    jdk-7u60-linux-arm-vfp-hflt.gz

1、 在每台主机上安装JDK

在/usr建立java文件夹(注意权限)

#mkdir  /usr/java

将jdk-7u60-linux-arm-vfp-hflt.gz移到/usr/java下

解压文件(/usr/java)

#tar       –zxvf     jdk-7u60-linux-arm-vfp-hflt.gz

解压完毕查看目录会发现生成了文件夹jdk1.7.0_60即可

添加java环境变量:

#vim /etc/profile

#于该文件最后添加

export JAVA_HOME=/usr/java/jdk1.7.0_60/

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

生效java变量:

#source/etc/profile

 

在终端输入java –version / javac测试安装JDK是否成功;

同时,在每台主机上配置/etc/hosts 以便快速访问。

#vim /etc/hosts

#增加内容如下

211.68.39.143     master

211.68.39.144     slave1

211.68.39.145     slave2

211.68.39.146     slave3

 

在所有的机器上都建立相同的目录,也可以就建立相同的用户,最好是以该用户的home路径来做hadoop的安装路径。安装路径都是:/home/hadoop/hadoop-0.20.2

在每台主机上创建hadoop用户

#useraddhadoop

#passwd hadoop

#mkdir     /home/hadoop

#chown -R hadoop    /home/hadoop

2、SSH配置

在Hadoop启动以后,Namenode是通过SSH(SecureShell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。以本文中的四台机器为例,现在Master是主节点,他须要连接Slave1、Slave2和Slave3。须确定每台机器上都安装了ssh,并且datanode机器上ssh服务已经启动。
切换到hadoop用户(保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)

#su        hadoop

#ssh-keygen -t rsa

#此过程中如需输入 直接回车即可

这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。

2) 将Master公钥添加到远程主机Slave1的 authorized_keys 文件中

Slave1节点下,在/home/hadoop/.ssh/下创建authorized_keys

#vim authorized_keys

将刚才复制的公钥内容复制进去

权限设置为600.(这点很重要,没有设置600权限会导致登陆失败)

测试登陆:

#ssh Slave1

若无需密码登录,即设置成功

同样的方法,将Master 的公钥复制到其他节点。

 

 

3、安装Hadoop

1) master主节点下,切换为hadoop用户,下载安装包后,直接解压安装即可:

#su – hadoop

#将hadoop-0.20.2.tar.gz  移到/home/hadoop(注意权限)

#tar -zxvf hadoop-0.20.2.tar.gz 

进入hadoop-0.20.2文件夹进行文件配置工作

1. 配置conf/hadoop-env.sh文件

配置conf/hadoop-env.sh文件,添加:

export JAVA_HOME= /usr/java/jdk1.7.0_75/

这里修改为你的jdk的安装位置,保存退出。

2.配置文件:conf/core-site.xml

   fs.default.name

    hdfs://localhost:54310

   hadoop.tmp.dir

   /home/hadoop/tmp

    Abase for other temporary directories.

保存退出。

fs.default.name是NameNode的URI。hdfs://主机名:端口/hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。

3.配置文件:conf/mapred-site.xml

   mapred.job.tracker

    localhost:54311

    Thehost and port that the MapReduce job tracker runs at. If "local",then jobs are runin-process as a single map and reducetask.

 

   mapred.local.dir

    /home/hadoop/tmp

保存退出。

mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。

4.配置文件:conf/hdfs-site.xml

   dfs.name.dir

   /home/hadoop/dfs/name

    Determineswhere on the local filesystem the DFS name node should store

   dfs.data.dir

   /home/hadoop/dfs/data

   Determin. If this is a comma-delimited

 dfs.replication

    3

  

保存退出。

dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。

4) 配置masters和slaves主从结点
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。

#vim masters:

#内容如下

master

#vim slaves:

#内容如下

slave1

slave2

slave3

配置结束,把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh

#scp -r/home/hadoop/hadoop-0.20.2  slave1:/home/hadoop/

#scp -r/home/hadoop/hadoop-0.20.2  slave2:/home/hadoop/

#scp -r/home/hadoop/hadoop-0.20.2  slave3:/home/hadoop/

 

5、hadoop启动

1) 格式化一个新的分布式文件系统

#cd /home/hadoop/hadoop-0.20.2

#bin/hadoopnamenode –format

查看输出保证分布式文件系统格式化成功执行完后可以到master机器上看到/home/hadoop/dfs/name目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。

2)启动所有节点

#bin/start-all.sh

3) 关闭所有节点

从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。

#$ bin/stop-all.sh

6、测试

1) 用jps检验各后台进程是否成功启动

--在master节点查看后台进程

# /usr/java/jdk1.7.0_75/bin/jps

3180 Jps

2419SecondaryNameNode

2236 NameNode

2499 JobTracker

--在slave节点查看后台进程

# /usr/java/jdk1.7.0_75/bin/jps

2631 Jps

2277 DataNode

2365 TaskTracker

 

 

你可能感兴趣的:(Linux,hadoop,ubuntu)