Jetson TK1嵌入式开发板hadoop集群配置详细过程
来源:互联网 发布:2016中美贸易数据 编辑:程序博客网 时间:2024/05/17 01:53
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
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
保存退出。
fs.default.name是NameNode的URI。hdfs://主机名:端口/hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
3.配置文件:conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
<description>Thehost and port that the MapReduce job tracker runs at. If "local",then jobs are runin-process as a single map and reducetask.</description>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
保存退出。
mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。
4.配置文件:conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/dfs/name</value>
<description>Determineswhere on the local filesystem the DFS name node should store</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/dfs/data</value>
<description>Determin. If this is a comma-delimited</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
保存退出。
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
- Jetson TK1嵌入式开发板hadoop集群配置详细过程
- NVIDIA Jetson TK1开发板
- Jetson TK1 配置
- NVIDIA Jetson TK1开发板上手
- NVIDIA Jetson TK1开发板上手
- NVIDIA Jetson TK1开发板上手
- NVIDIA Jetson TK1开发板上手
- JETSON TK1中CUDA开发环境搭建过程
- jetson tk1开发(3)-更新源配置
- jetson tk1开发(4)-tensorflow安装与配置
- Jetson TK1开发环境搭建
- 【NVIDIA Jetson TK1】二,TK1开发板安装CUDA与opencv
- 【NVIDIA Jetson TK1】三,TK1开发板运行opencv光流程序,光流代码
- 安装NVIDIA Jetson TK1驱动的过程
- 安装NVIDIA Jetson TK1驱动的过程
- Jetson TK1
- Jetson TK1
- ROS:Nvidia Jetson TK1开发平台
- <转> color颜色十六进制编码大全~
- 用户/组管理(1)——Linux管理用户/组相关的文件详解
- VirtualBox安装Ubuntu如何实现全屏
- 说说JSON和JSONP,也许你会豁然开朗
- UVA_10305: Ordering Tasks
- Jetson TK1嵌入式开发板hadoop集群配置详细过程
- __alloc_bootmem_core
- 从系统相册选择多张图片
- 使用ASP.NET State Service保存Session
- ceph 源代码分析 — peering 过程
- 报表测试
- webservice CXF 客户端调用报错
- Android Studio 下安装配置 Cocos2d-x
- ThinkPHP中select()与find()的区别