hadoop1.0.3完全分布式安装详细教程

来源:互联网 发布:java短期培训学校 编辑:程序博客网 时间:2024/04/27 15:01


前提
安装hadoop的服务器上需统一创建hadoop用户(其它用户名也可),要求uid一致。
useradd –u 1000 hadoop   (root用户执行,uid需指定)
指定密码passwd hadoop xxx   (xxx为密码)
Namenode节点服务器可以无密码ssh到自身以及DataNode所在服务器上。
hadoop用户操作(su – hadoop)
cd (进入hadoop用户主目录下)
ssh-keygen -t rsa(默认直接敲回车,这样会在用户(hadoop)主目录下生成.ssh目录,其下包含两个文件id_rsa和id_rsa.pub文件)
cd .ssh(进入用户主目录下的.ssh目录中),执行cat  id_rsa.pub >> authorized_keys (将公钥放到认证文件中)
ssh host137检查无密码是否登录成功。注意第一次提示需要输入yes
将authorized_keys文件分别拷贝到其它服务器上对应的目录下(/home/hadoop/.ssh/)。  
注意:.ssh目录权限是755, authorized_keys权限是644(chmod 644 authorized_keys)。
安装linux版本jdk1.6.31,也可以是其它版本,但要求版本为1.6+,安装目录如下/usr/java/jdk1.6.0_31,将安装好的jdk同步至其它服务器相同目录下(查看jdk版本号 java -version)
 
红色部分为linux 指令,()内容用于说明

搭建hadoop (以在host115上搭建为例)
下载hadoop  hadoop选用版本为apache hadoop1.0.3版本
地址如下:http://hadoop.apache.org/common/releases.html#Download
以NameNode节点所在服务器安装为例
解压tar包到hadoop用户主目录下,解压后的hadoop目录为hadoop-1.0.3。
(tar –xvf hadoop安装压缩包)
修改相关配置文件内容
hadoop-env.sh
添加export JAVA_HOME=${JAVA_HOME}
修改HADOOP_NAMENODE_OPTS增加GC(红色标注部分)
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} -XX:+UseParallelGC $HADOOP_NAMENODE_OPTS
export HADOOP_LOG_DIR=/home/hadoop/hadoop-1.0.3/logs
core-site.xml 属性内容如下
<property>
 <name>fs.default.name</name>
 <value>hdfs://host137:9000</value>
</property>
<property>
 <name>hadoop.tmp.dir</name>
 <value>/dmp/hadoop/hadoop-1.0.3/tmp</value>
 </property>
hdfs-site.xml
<property>
  <name>dfs.name.dir</name>
  <value>/data/hadoop/hdfs/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/data/hadoop/hdfs/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>
mapred-site.xml
<property>
 <name>mapred.job.tracker</name> 
 <value>host115:9001</value>
</property>

修改用户主(hadoop用户)目录下的.bashrc文件,指定相关的目录值
export JAVA_HOME=/usr/java/jdk1.6.31
export JRE_HOME=/usr/java/jdk1.6.31/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HIVE_HOME/lib/*.jar
export HADOOP_HOME=/home/hadoop/hadoop-1.0.3
export HADOOP_COMMON_HOME=/home/hadoop/hadoop-1.0.3
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export HDFS_CONF_DIR=$HADOOP_HOME/conf 
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin/:.:$CATALINA_HOME/bin:

将.bashrc同步到其它服务器对应的目录下。(注意:修改完.bashrc文件后执行source .bashrc)

修改/etc/hosts内容(root用户操作)
追加以下内容
192.168.5.115   host115 
192.168.5.116   host116
192.168.5.117   host117
192.168.5.121   host121
注意:其它服务器做同样修改(root操作)
在/home/hadoop/hadoop-1.0.3/conf目录下,修改masters和slaves文件
masters文件内容改为host116
slaves文件内容
改为
host116
host117
host121
注意:一个主机名占一行
同步hadoop-1.0.3目录至其它服务器相同目录下
cd
scp –r hadoop-1.0.3  hadoop@host116:/home/hadoop/
scp –r hadoop-1.0.3  hadoop@host117:/home/hadoop/
scp –r hadoop-1.0.3  hadoop@host121:/home/hadoop/

红色部分为指令
Namenode格式化并启动hadoop
先进行namenode格式化操作hadoop namenode –format
如果格式化成功(日志会有所提示successful format)
则启动hadoop集群 start-all.sh 查看输出日志检查状态
jps –l
host115 进程为 namenode,jobtracker
host116进程为secondarynamenode,datanode,tasktracker
host117进程为datanode,tasktracker
host121进程为datanode,tasktracker
    
    启动hadoop集群 start-all.sh
       关闭hadoop集群 stop-all.sh

动态添加节点服务器
在不影响集群运行的情况下,我们要添加一台计算结点(数据结点),假如IP是192.168.5.118,hostname为host118。步骤如下:

在host118结点服务器上创建相同用户(hadoop),要求用户id,gid一样。指令参照“前提”部分。
将namenode结点服务器hadoop用户主目录下.ssh/authorized_keys文件拷贝到host118结点服务器相同目录下。注意保持目录,文件权限一致。
将namenode结点服务器的jdk安装包拷贝到host118相同目录下。注意保持目录权限一致。
将namenode结点服务器的hadoop安装目录拷贝到host118结点服务器相同目录下。
修改所有服务器的/etc/hosts内容,加入各台服务器对应的ip到主机名的映射。(已有的不用加,缺少加入)
在namenode结点,修改$HADOOP_HOME/conf/slaves文件,加入host118。
将其它计算结点(如host116)上的hadoop用户主目录下的.bashrc文件拷贝到host118结点服务器相同目录下。执行完后执行source .bashrc指令。
host118服务器上,执行如下指令
hadoop-daemon.sh  start  datanode
hadoop-daemon.sh  start  tasktracker
start-balancer.sh
    9)在namenode结点所在服务器上执行hadoop dfsadmin –report查看新加结点是否成功

防止too many open files问题
/etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350

原创粉丝点击