Hadoop2.x完全分布式配置详解
来源:互联网 发布:网络直播十大灵异事件 编辑:程序博客网 时间:2024/04/20 13:10
1.环境介绍
- 这里用的是四台机器配置一个Hadoop完全分布式的集群环境,一个namenode和三个datanode,四台机器上安装的都是Ubuntu Server 14.04LTS系统;
- JDK版本1.7.0_75,安装详情下面有介绍;
- Hadoop版本为最新稳定版本hadoop2.6.0.
2.准备工作
- 创建用户名和组
为三台机器创建相同的用户名和组,建议密码也都设为一样,我的所有机器用户名和密码都为hadoop,这样方便后面管理(个人建议:安装时直接创建hadoop用户,系统会自动将其放入到同名的组中,这样避免多用户权限问题),命令如下:
//1.创建hadoop用户组$ sudo addgroup hadoop //2.创建hadoop用户并添加到hadoop组里$ sudo adduser -ingroup hadoop hadoop//3.给hadoop用户添加root权限(不建议但是省事,不用管权限问题)$ sudo gedit /etc/sudoers 在root ALL=(ALL:ALL) ALL下添加如下内容:hadoop ALL=(ALL:ALL) ALL
- 修改主机名和主机--ip映射
//1.修改/etc/hostname文件,(建议安装时直接设置好) namenode节点改为Master,三个datanode分别改为Slave1、Slave2、Slave3//2.修改每个节点/etc/hosts文件,加入以下内容 192.168.1.151 Master 192.168.1.152 Slave1 192.168.1.153 Slave2 192.168.1.154 Slave3
- 安装SSH并配置各个节点间无密码互访
//1.安装ssh一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以用以下命令重新安装:sudo apt-get install ssh//2.设置无密码互访(思路:各个节点的公钥文件都包含各个节点的秘钥)a.各个节点都执行:第一步:产生密钥$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa第二步:将秘钥追加到公钥中$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keysb.然后将各个节点公钥文件合并,并覆盖各个节点~/.ssh下的公钥文件authorized_keys3.测试namenode节点: ssh localhost ssh Slave1(其他slave节点)datanode节点: ssh localhost ssh Master(其他Slave节点)如果都能无密码登陆到别的节点,则表示配置成功
- 安装JDK
//1.到oracle官网下载jdk-7u75-linux-x64.tar.gz,解压到/usr/lib/jvm目录下sudo tar zxvf jdk-7u75-linux-x64.tar.gz -C /usr/lib/jvm//2.修改环境变量sudo gedit /etc/profile添加如下内容:#set java environmentexport JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH//3.使配置立即生效source /etc/profile//4.配置默认JDK版本第一步: sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_75/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_75/bin/javac 300第二步,输入以下命令,选择刚刚安装的jdk:sudo update-alternatives --config java5.测试,输入java -version,若显示的是刚刚安装的jdk,则表示jdk安装成功
3.安装Hadoop
强烈建议:所有节点都按以下步骤来配置,可以配置一个节点,然后复制到其他节点(当然要确保每个节点环境一致,如jdk的路径和版本,hadoop的路径等等),这样不仅省事省力,还便于以后修改和管理
- 下载hadoop并解压
从官网下载最新稳定版本hadoop-2.6.0.tar.gz,复制到/home/hadoop目录下并解压到当前目录
sudo tar -zxvf hadoop-2.6.0.tar.gz
- 修改hadoop-2.6.0/etc/hadoop下的配置文件
- 修改hadoop-env.sh文件
- 修改hadoop-env.sh文件
//修改JAVA_HOME路径为jdk的安装路径export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
- 修改yarn-env.sh文件
//修改JAVA_HOME路径为jdk的安装路径export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
- 修改slaves文件
//将datanode的主机名都加进去,我的配置如下:Slave1Slave2Slave3
- 修改core-site.xml文件
//在<configuration></configuration>标签中加入如下属性配置,官网core-default.xml说明了该文件的可配属性和默认值 <property> <name>fs.defalutFS</name> <value>hdfs://Master:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> <!--建议先手动建好该临时目录--> </property>
- 修改hdfs-size.xml文件
//在<configuration></configuration>标签中加入如下属性配置,官网hdfs-default.xml说明了该文件的可配属性和默认值 <property> <name>dfs.namenode.secondary.http-address</name> <value>Master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/dfs/name</value> <!--建议先手动建好该目录--></property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/dfs/data</value> <!--建议先手动建好该目录--></property> <property> <name>dfs.replication</name> <value>3</value> <!--副本数目不能大于datanode数目--> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <!--防止出现不允许远程读写hdfs--> <value>false</value> </property> <property> <name>dfs.heartbeat.interval</name> <!--namenode每三秒发一个心跳信号--> <value>3</value> </property> <property> <name>dfs.namenode.heartbeat.recheck-interval</name> <!--心跳机制recheck的间隔--> <value>35000</value> </property>
- 修改mapred-site.xml文件
//在<configuration></configuration>标签中加入如下属性配置,官网mapred-default.xml说明了该文件的可配属性和默认值<property> <name>mapreduce.framework.name</name> <value>yarn</value></property><property> <name>mapreduce.jobhistory.address</name> <value>Master:10020</value></property><property> <name>mapreduce.jobhistory.webapp.address</name> <value>Master:19888</value></property>备忘:jobhistory要手动启动,即使start-all.sh也不会启动,启动命令:sbin/mr-jobhistory-daemon.sh start historyserver,这样在web上就可以访问Master:19888端口了,这是查看job的history信息的端口
- 修改yarn-site.xml文件
//在<configuration></configuration>标签中加入如下属性配置,官网yarn-default.xml说明了该文件的可配属性和默认值<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property><property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property> <name>yarn.resourcemanager.scheduler.address</name> <value>Master:8030</value> </property><property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>Master:8031</value></property><property> <name>yarn.resourcemanager.address</name> <value>Master:8032</value></property><property> <name>yarn.resourcemanager.admin.address</name> <value>Master:8033</value></property><property> <name>yarn.resourcemanager.webapp.address</name> <value>Master:8088</value></property>
- 修改/etc/profile文件,加入hadoop的环境变量(为了方便执行hadoop的命令),修改完执行source /etc/profile使配置立即生效
#for hadoopexport HADOOP_HOME=/home/hadoop/hadopp-2.6.0export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
4.测试
所有节点都做到如上如上配置后,hadoop完全分布式集群就基本配置完毕,下面来测试。
- 格式化namenode
注:在namenode节点下执行以下命令(其他节点不用做这个操作)
hadoop namenode -format
- 启动服务
在namenode输入以下命令启动hdfs和yarn,不建议使用start-all.sh,标准做法输入start-dfs.sh和start-yarn.sh来分别启动hdfs和yarn
start-all.sh
- 查看各节点进程
在namenode节点和各个datanode节点分别输入jps命令,若在namenode出现如下进程:
NameNodeResourceManagerSecondaryNameNode并且datanode节点出现如下进程:
DataNodeNodeManager则表示hadoop的完全分布式集群配置成功,你可以尝试在集群上运行一下hadoop自带的example(如:WorldCount),这里我就不演示了。
结尾注:博主写这篇博客目的在于记录这几天配置hadoop集群的过程,和初学者进行交流学习,难免有不足之处,望大家批评指正。ps:因为服务器没安装图形界面,不方便截图,所以主要以文字为主。
5.参考
http://www.aboutyun.com/thread-7684-1-1.html
0 0
- Hadoop2.x完全分布式配置详解
- linux下hadoop2.x完全分布式配置
- hadoop2.x完全分布式安装配置
- hadoop2.5.x完全分布式集群搭建配置
- (配置Hadoop2.x 环境搭建)完全分布式集群
- Hadoop2.6.2完全分布式集群HA模式安装配置详解
- Hadoop2.6.2完全分布式集群HA模式安装配置详解
- Hadoop2.2.0完全分布式配置
- hadoop2.x 完全分布式详细集群搭建
- 构建完全分布式的Hadoop2.x
- hadoop2.x完全分布式环境搭建
- hadoop2.x完全分布式环境搭建
- 完全分布式Hadoop2.3安装与配置
- hadoop2.7集群完全分布式安装配置
- 安装配置Hadoop2.6.0(完全分布式)
- Ubantu下搭建Hadoop2.x完全分布式集群
- hadoop2.X的ha完全分布式安装和部署
- hadoop学习(三)----hadoop2.x完全分布式环境搭建
- 正则表达式和grep,sed,awk
- cocos2d CCScrollView 解析
- vs使用备忘
- ceph 块操作实例
- wp8 资料收集
- Hadoop2.x完全分布式配置详解
- Gradle 修改 Maven 仓库地址
- linux下怎样卸载mysql
- Html嵌入视频播放器
- 应用之星,让App开发更简单
- IPv4学习笔记
- java 中的数据结构
- MFC列表控件(ListControl)
- 游标的概念和作用