《深入理解大数据:大数据处理与编程实践》一一2.3 集群分布式Hadoop系统安装基本步骤

简介:

本节书摘来自华章计算机《深入理解大数据:大数据处理与编程实践》一书中的第2章,第2.节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 集群分布式Hadoop系统安装基本步骤

Hadoop安装时对HDFS和MapReduce的节点允许用不同的系统配置方式。在HDFS看来,节点分别为主控节点NameNode和数据存储节点DataNode,其中NameNode只有一个,DataNode可以有多个。在MapReduce看来,节点又可以分为作业主控节点JobTracker和任务执行节点TaskTracker,其中JobTracker只有一个,TaskTracker可以有多个。NameNode和JobTracker可以部署在不同的机器上,也可以部署在同一台机器上,但一般中小规模的集群通常都把NameNode和JobTracker安装配置在同一个主控服务器节点上。部署NameNode和JobTracker的机器是Master(主服务器),其余的机器都是Slaves(从服务器)。详细的安装和配制过程如下。
2.3.1 安装和配置JDK
集群分布式Hadoop系统的安装首先也需要在每台机器上安装JDK。和单机伪分布式一样,我们采用的版本为jdk-6u23-linux-x64。在集群中的每台机器上安装JDK,步骤如下:
1)将jdk-6u23-linux-x64-rpm.bin拷贝到所需要的安装目录下,如/usr/jdk。
2)执行./jdk-6u23-linux-x64-rpm.bin安装文件。
3)配置JAVA_HOME以及CLASS_PATH,vi进入/etc/profile,在文件最后加上如下语句:

JAVA_HOME=/usr/java/jdk1.6.0
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH

保存退出,执行source /etc/profile使得配置文件生效。
4)执行java-version查看当前版本配置有没有生效。
5)执行以下命令分别进行编译和执行,查看结果是否正确。

$javac HelloWorld.java
$java HelloWorld

2.3.2 创建Hadoop用户
在所有机器上建立相同的用户名,例如名为“hadoop”的用户名。这一步使用如下命令实现:

#useradd –m hadoop
#passwd hadoop

成功建立Hadoop用户后,输入的密码就是该用户的密码。
2.3.3 下载安装Hadoop
和单机伪分布式一样,从Apache Hadoop发布页面(http://hadoop.apache.org/coases.html)下载一个稳定的发布包,再解压缩到本地文件系统中。在这里采用的Hadoop版本是Hadoop-1.2.1。
$tar –xzvf hadoop-1.2.1.tar.gz
2.3.4 配置SSH
该配置主要是为了实现在机器之间访问时免密码登录。在所有机器上建立.ssh目录,执行如下命令:

$mkdir .ssh

在NameNode上生成密钥对,执行如下命令:

$ssh-keygen –t rsa

然后一直按键,就会按照默认的选项将生成的密钥对保存在.ssh/id_rsa中。接着执行如下命令:

$cd ~/.ssh
$cp id_rsa.pub authorized_keys
$scp authorized_keys datanode1:/home/hadoop/.ssh
$scp authorized_keys datanode2:/home.hadoop/.ssh

最后进入所有机器的.ssh目录,改变authorized_keys文件的许可权限:

$chmod 644 authorized_keys

这时从NameNode向其他机器发起SSH连接,只要在第一次登录时需要输入密码,以后则不再需要输入密码。
2.3.5 配置Hadoop环境
要在所有机器上配置Hadoop,首先在NameNode上进行配置,执行如下的解压缩命令:

$tar –xzvf /home/hadoop/hadoop-1.2.1.tar.gz

Hadoop的配置文件主要存放在hadoop安装目录下的conf目录中,主要有以下几个配置文件要修改:
conf/hadoop-env.sh:Hadoop环境变量设置。
conf/core-site.xml:主要完成NameNode的IP和端口设置。
conf/hdfs-site.xml:主要完成HDFS的数据块副本等参数设置。
conf/mapred-site.xml:主要完成JobTracker IP和端口设置。
conf/masters:完成Master节点IP设置。
conf/slaves:完成Slaves节点IP设置。
1.?编辑core-site.xml、hdfs-site.xml和mapred-site.xml
core-site.xml的文档内容如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="conf?iguration.xsl"?>
<!-- Put site-specif?ic property overrides in this f?ile. -->
<conf?iguration>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs:// 192.168.1.253:9000</value>
<!—注意这里要填写自己的IP-->
</property>
</conf?iguration>

hdfs-site.xml的文档内容如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="conf?iguration.xsl"?>
<!-- Put site-specif?ic property overrides in this f?ile. -->
<conf?iguration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop_dir/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>f?ile:// /home/hadoop/hadoop_dir/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<!-副本数根据集群中Slave节点的数目而定,一般小于Slave节点数-->
<value>1</value>
</property>
</conf?iguration>

mapred-site.xml的文档内容如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="conf?iguration.xsl"?>
<!-- Put site-specif?ic property overrides in this f?ile. -->
<conf?iguration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.253:9001</value>
<!—注意这里要填写自己的IP-->
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value>/home/hadoop/hadoop_dir/mapred/local</value>
</property>
<property>
<name>mapreduce.jobtracker.system.dir</name>
<value>/home/hadoop/hadoop_dir/mapred/system</value>
</property>
</conf?iguration>

2.?编辑conf/masters
修改conf/masters文件为Master的主机名,每个主机名一行,此处即为NameNode。
3.?编辑conf/slaves
加入所有Slaves的主机名,即datanode1和datanode2。
4.?把Hadoop安装文件复制到其他节点上
要把Hadoop安装文件复制到其他节点上,需要执行如下命令:
$scp –r hadoop-1.2.1 datanode1:/home/hadoop
$scp –r hadoop-1.2.1 datanode2:/home/hadoop
5.?编辑所有机器的conf/hadoop-env.sh
将JAVA_HOME变量设置为各自的Java安装的根目录。
至此,Hadoop已经在集群上部署完毕。如果要新加入或删除节点,仅需修改所有节点的master和slaves配置文件。
2.3.6 Hadoop的运行
1.?格式化HDFS文件系统
在初次安装和使用Hadoop之前,需要格式化分布式文件系统HDFS,操作命令如下:

$bin/hadoop namenode -format

2.?启动Hadoop环境
启动Hadoop守护进程。在NameNode上启动NameNode、JobTracker和Secondary NameNode,
在datanode1和datanode2上启动DataNode和TaskTracker,并用如下jps命令检测启动情况:

$bin/start-all.sh
$jps

Namenode节点上启动正常结果如下所示:

$jps
14730 SecondaryNameNode
15099 Jps
14375 NameNode
14825 JobTracker

用户也可以根据自己的需要来执行如下命令:
1)start-all.sh:启动所有的Hadoop守护进程,包括NameNode、DataNode、JobTracker和TaskTracker。
2)stop-all.sh:停止所有的Hadoop守护进程。
3)start-mapred.sh:启动Map/Reduce守护进程,包括JobTracker和TaskTracker。
4)stop-mapred.sh:停止Map/Reduce守护进程。
5)start-dfs.sh:启动Hadoop DFS守护进程,包括NameNode和DataNode。
6)stop-dfs.sh:停止Hadoop DFS守护进程。
要停止Hadoop守护进程,可以使用下面的命令:
$bin/stop-all.sh
2.3.7 运行测试程序
下面用一个程序测试能否运行任务,示例程序是一个Hadoop自带的PI值的计算。第一个参数是指要运行的map的次数,第二个参数是指每个map任务取样的个数。
$hadoop jar $HADOOP_HOME/hadoop-examples-0.20.205.0.jar pi2 5
2.3.8 查看集群状态
当Hadoop启动之后,可以用jps命令查看一下它是不是正常启动。在NameNode节点上输入jps命令:

$jps
4706 JobTracker
4582 SecondaryNameNode
4278 NameNode
4889 Jps

在DataNode节点上输入jps命令:

$jps
4413 DataNode
4853 TaskTracker
4889 Jps

如果显示以上的信息,则Hadllop已表示正常启动。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
1063 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
780 8
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
647 7
|
SQL 分布式计算 DataWorks
MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
461 6
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
1063 4

热门文章

最新文章