hadoop2.6.4集群笔记

---恢复内容开始---

一,linux下的准备工作

1,修改主机名:

vi /etc/sysconfig/network

2,修改ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0

3,修改主机名和ip的映射

vi /etc/hosts

192.168.145.109 eddy01                                                                                              
192.168.145.110 eddy02                                                                                              
192.168.145.111 eddy03                                                                                              
192.168.145.112 eddy04                                                                                              
192.168.145.113 eddy05                                                                                              
192.168.145.114 eddy06                                                                                              
192.168.145.115 eddy07 

4,关闭防火墙

5,在生产坏境中,操作linux不可能用root用户,最好添加一个普通的用户

  useradd eddy

  password eddy

6,给eddy用户添加sudo指令,

  vi /etc/sudoers

7,查看是否有java环境

8,配置JAVA_HOME环境变量

  vi /etc/profile

  source /etc/profile

9,ssh的免密登录

ssh-keygen

不要忘了在使用hadoop命令中的start-all.sh命令需要给自己一个免密登录公钥
ssh-copy-id eddy02

二,hadoop集群

规划:

  1,eddy01   namenode    resourcemanager

  2,eddy02 datanode  nodemanager

  3,eddy02 datanode  nodemanager

  4,eddy02 datanode  nodemanager

执行:

1,在eddy01中的/home/eddy/中mkdir一个apps

  mkdir/home/eddy/apps

2,在apps中解压java和hadoop 

[eddy@eddy01 ~]$ cd apps/
[eddy@eddy01 apps]$ ll
total 8
drwxrwxr-x. 11 eddy eddy 4096 Mar 28 23:14 hadoop-2.6.4
drwxr-xr-x.  8 eddy eddy 4096 Mar 28 22:38 jdk1.7.0_79

3,在/etc/profile中添加JAVA_HOME和HADOOP_HOME环境变量

    export HISTCONTROL=ignoredups                                                                 
fi                                                                                                

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL                                       

# By default, we want umask to get set. This sets it for login shell                              
# Current threshold for system reserved uid/gids is 200                                           
# You could check uidgid reservation validity in                                                  
# /usr/share/doc/setup-*/uidgid file                                                              
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then                                          
    umask 002                                                                                     
else                                                                                              
    umask 022                                                                                     
fi                                                                                                

for i in /etc/profile.d/*.sh ; do                                                                 
    if [ -r "$i" ]; then                                                                          
        if [ "${-#*i}" != "$-" ]; then                                                            
            . "$i"                                                                                
        else                                                                                      
            . "$i" >/dev/null 2>&1                                                                
        fi                                                                                        
    fi                                                                                            
done                                                                                              

unset i                                                                                           
unset -f pathmunge                                                                                

JAVA_HOME=/home/eddy/apps/jdk1.7.0_79                                                             
CLASSPATH=.:$JAVA_HOME/lib.tools.jar                                                              
PATH=$JAVA_HOME/bin:$PATH                                                                         
export JAVA_HOME CLASSPATH PATH                                                                   

export HADOOP_HOME=/home/eddy/apps/hadoop-2.6.4                                                   
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin               
                           

 4,分别拷贝/etc/profile文件到其它三台主机上

scp /etc/profile eddy@eddy02:/etc/

scp /etc/profile eddy@eddy03:/etc/

scp /etc/profile eddy@eddy04:/etc/

 5,配置hadoop配置文件

cd /home/eddy/apps/hadoop-2.6.4/etc/hadoop

1,hadoop-env.sh中添加java环境变量

export JAVA_HOME=/home/eddy/apps/jdk1.7.0_79  

2,vi core-site.xml

<configuration>                                                                                                     
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->                                      
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>fs.defaultFS</name>                                                                   
                                                                                                                    
                        <value>hdfs://eddy01:9000</value>                                                           
                                                                                                                    
                </property>                                                                                         
                                                                                                                    
                <!-- 指定hadoop运行时产生文件的存储目录 -->                                                         
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>hadoop.tmp.dir</name>                                                                 
                                                                                                                    
                        <value>/home/eddy/apps/hadoop-2.6.4/tmp</value>                                             
                                                                                                                    
    </property>                                                                                                     
</configuration> 

3,hdfs-site.xml

<configuration>                                                                                                     
<!-- 指定HDFS副本的数量 -->                                                                                         
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>dfs.replication</name>                                                                
                                                                                                                    
                        <value>2</value>                                                                            
                                                                                                                    
                </property>                                                                                         
                                                                                                                    
                                                                                                                    
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>dfs.secondary.http.address</name>                                                     
                                                                                                                    
                        <value>eddy01:50090</value>

                </property>                                                                       
</configuration> 

4,mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)

<configuration>                                                                                                     
<!-- 指定HDFS副本的数量 -->                                                                                         
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>dfs.replication</name>                                                                
                                                                                                                    
                        <value>2</value>                                                                            
                                                                                                                    
                </property>                                                                                         
                                                                                                                    
                                                                                                                    
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>dfs.secondary.http.address</name>                                                     
                                                                                                                    
                        <value>eddy01:50090</value>

                </property>                                                                       
</configuration>  

5, yarn-site.xml

<configuration>                                                                                                     
<!-- 指定YARN的老大(ResourceManager)的地址 -->                                                                    
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>yarn.resourcemanager.hostname</name>                                                  
                                                                                                                    
                        <value>eddy01</value>                                                                       
                                                                                                                    
                </property>                                                                                         
                                                                                                                    
                <!-- reducer获取数据的方式 -->                                                                      
                                                                                                                    
                <property>                                                                                          
                                                                                                                    
                        <name>yarn.nodemanager.aux-services</name>                                                  
                                                                                                                    
                        <value>mapreduce_shuffle</value>                                                            
                                                                                                                    
                </property>                                                                                         
<!-- Site specific YARN configuration properties -->                                                                
                                                                                                                    
</configuration>  

6,以eddy用户的身份cp到其它三台主机上。

注意:⚠️如果用root用户cp会出现hadoop在启动的时候权限访问的问题,

scp -r /home/eddy/apps eddy@eddy02:/home/eddy/

scp -r /home/eddy/apps eddy@eddy04:/home/eddy/

scp -r /home/eddy/apps eddy@eddy03:/home/eddy/

7,格式化namenode

hdfs namenode -format (hadoop namenode -format)

8,启动dfs分布式文件系统

hadoop-daemon start namenode

9,在其它三台主机上启动datanode

hadoop-daemon.sh start datanode

10查看页面

http://eddy01:50070/

 关闭进程

hadoop-daemon stop namenode

hadoop自动化启动脚本的说明:

 1,上述中,只有三个节点,但是如果还有更多,就需要自动化启动

如:start-all.sh

  start-dfs.sh

    start-yarn.sh

这里说明一下/home/eddy/apps/hadoop-2.6.4/etc/hadoop中的slaves文件,

eddy01                                                                                                              
eddy02                                                                                                              
eddy03                                                                                                              
eddy04  

当使用start-all.sh启动的时候会ssh到slaves文件中的主机上启动namenode,resourcemanager等进程。

---恢复内容结束---

原文地址:https://www.cnblogs.com/Eddyer/p/6639072.html