热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop2.7集群安装指南

Hadoop2.7集群安装安装环境是centOS环境。有三个下面的主机:balance01hadoop_masterbalance02node02balance0

Hadoop 2.7集群安装

安装环境是centOS环境。有三个下面的主机:

balance01 hadoop_master
balance02 node02
balance03 node03

配置Linux安装账号

三步创建一个用户,使他有与root一样的权限。

1) 用root下,创建一个用户“app” 组 

[root@daddylinux~]#groupadd app

2) 创建APP并添加到app组

[root@daddylinux~]#useradd app –g app
[root@daddylinux~]#passwd app

3) 限定app使用root特权,如下所示,编辑visudo文件。

[root@daddylinux~]# visudo
# 在最后一行,添加下列信息。
app ALL=(ALL) ALL

退出并保存。

安装必要的依赖库

在目标集群的机器上执行下面shell脚本:

sudo yum -y install lzo-devel zlib-devel gcc autoconf automake libtool cmake openssl-devel

安装protobuf-java

下载最新版的protobuf java版本2.5.0:

$curl -i
https://github-cloud.s3.amazonaws.com/releases/23357588/09f5cfca-d24e-11e4-9840-20d894b9ee09.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20161021%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20161021T025702Z&X-Amz-Expires=300&X-Amz-Signature=a7df369f2f7b389193306c85f4d5aba58a6cc2bf7778da54f59658af6bc27b00&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dprotobuf-2.5.0.tar.gz&response-content-type=application%2Foctet-stream $ tar xvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
##安装
$./configure && make && make install

安装maven

下载最新的maven包,现在最新的是apache-maven-3.3.9-bin.tar。解压做到指定的目录下。下面是具体的执行命令:

$ ls
apache-maven-3.3.9-bin.tar.gz
$pwd
/opt/h2
$ tar xvf apache-maven-3.3.9-bin.tar.gz
$ mv apache-maven-3.3.9 maven

配置mvn

$sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
export M2HOME=/opt/h2/maven
export PATH=$JAVA_HOME/bin:$M2HOME/bin:$PATH
#保存并退出$source /etc/profile
$mvn -version
$mvn -versioin
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/h2/maven
Java version: 1.8.0_77, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk1.8.0_77/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-279.el6.x86_64", arch: "amd64", family: "unix"

编译Hadoop源码

下载最新的稳定版本hadoop源码(现在最新是hadoop-2.7.3-src.tar.gz)。

$tar –xvf hadoop-2.7.3-src.tar.gz
$mv hadoop-2.7.3 hadoop
$cd hadoop
$mvn clean package -Pdist,native -DskipTests -Dtar

编译成功后,可以看到上面的信息。

Hadoop-dist/target/hadoop-2.7.3.tar.gz

为需要的编译文件。解压缩到/opt/h2目录下。 

修改hostname

修改hostname只需要两个步骤:

### 显示hostname
#$ hostname
localhost.localdomain
### 修改hostname
#hostname balance02
#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=balance02
###保存并退出即可

安装上面步骤设置balance01,balance02, balance03主机。最后,修改每台机器的hosts文件,添加下面内容: 

192.168.234.155 balance03 node2
192.168.234.33 balance02 node1
192.168.234.154 balance01 hadoopmaster

SSH设置

在每台机上运行: 

ssh-keygen -t rsa

接着不断按Enter键,记住不能够设置密码。

cd ~/.ssh

进入到.ssh 目录中,运行:

cp id_rsa.pub authorized_keys

每个节点运行上面命令。 
然后,运行: 

#master machine
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
#slavemachine

ssh-copy-id -i ~/.ssh/id_rsa.pub Hadoopmaster

hadoopmaster能够直接通过ssh node1或者ssh node2登陆对应节点,表示配置成功了。 

配置Hadoop

设置haoop环境变量

确保已经安装了jvm1.8.0_77,没有安装,执行下面shell脚本。 

curl -L --COOKIE "oraclelicense=accept-securebackup-COOKIE"
http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.tar.gz -o jdk-8-linux-x64.tar.gz
tar -xvf jdk-8-linux-x64.tar.gz
mkdir -p /usr/lib/jvm
mv ./jdk1.8.* /usr/lib/jvm/ update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_77/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_77/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_77/bin/javaws" 1 chmod a+x /usr/bin/java
chmod a+x /usr/bin/javac
chmod a+x /usr/bin/javaws rm jdk-8-linux-x64.tar.gz
java –version

配置环境变量 
$vi ~/.bashrc 

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
export HADOOP_INSTALL=/opt/h2
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 HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
export YARN_HOME=$HADOOP_INSTALL

$source ~/.bashrc 

Hadoop-env.sh

修改hadoop-env.sh,添加配置Namenode使用parallelGC: 

export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"

core-site.xml

#修改为: fs.defaultFS hdfs://hadoopmaster:9000 NameNode URI

hdfs-site.xml

dfs.permissions.enabledfalsedfs.replication2dfs.namenode.name.dir/opt/h2/hdfs/namenodedfs.datanode.data.dir/opt/h2/hdfs/datanode

mapred-site.xml


mapreduce.framework.nameyarnExecution framework.

mapreduce.jobtracker.addresshadoopmaster:9001


yarn-site.xml


yarn.resourcemanager.hostnamehadoop_master

yarn.nodemanager.aux-services.mapreduce_shuffle.classorg.apache.hadoop.mapred.ShuffleHandler

yarn.nodemanager.aux-servicesmapreduce_shuffle

yarn.resourcemanager.addresshadoopmaster:8032

yarn.resourcemanager.scheduler.addresshadoopmaster:8030

yarn.resourcemanager.resource-tracker.addresshadoopmaster:8031

yarn.nodemanager.vmem-pmem-ratio3


masters slaves

添加masters slaves文件的ip地址。 
mastes文件:

hadoopmaster

slaves文件:

node1
node2

验证是否安装成功

启动fds

运行start-dfs.sh命令启动fds。成功启动后,可以使用下面命令验证是否成功。

[app@balance01 h2]$ hdfs dfs -mkdir /tmp
[app@balance01 h2]$ hdfs dfs -put NOTICE.txt /tmp/
[app@balance01 h2]$ hdfs dfs -ls /tmp
Found 1 items
-rw-r--r-- 2 app supergroup 14978 2016-10-24 11:27 /tmp/NOTICE.txt

启动yarn

运行start-yarn.sh命令启动yarn。成功启动后,可以使用下面命令验证是否成功。

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 2 5
……
Job Finished in 28.235 seconds
Estimated value of Pi is 3.60000000000000000000

浏览WEB UI

NameNode的管理界面: http://{hadoopmaster}:8088/cluster

MapReduce JobHistory 的浏览界面:

http://{jms_address}:8088/cluster

必须启动JobHistory的进程,

mr-jobhistory-daemon.sh start historyserver

MapReduce 管理页面:

http://{hadoopmaster}:8088/cluster


欢迎加入微信公众号



推荐阅读
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 在Ubuntu 20.04 Linux系统中部署Git的详细步骤与最佳实践
    在Ubuntu 20.04 Linux系统中部署Git时,首先确保您的操作系统版本正确,并已以具备sudo权限的用户身份登录。推荐使用APT软件包管理器进行安装,这是最简便且可靠的方法。此外,遵循最佳实践,如定期更新Git版本和配置全局设置,可以进一步提升使用体验和安全性。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
author-avatar
学生联盟v
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有