hadoop集群搭建

来源:互联网 发布:阿里巴巴网络银行 编辑:程序博客网 时间:2024/06/12 00:52
一、系统环境说明:
本次搭建系统一共使用3台服务器由一台主节点master和2台从节点slave组成:
后续会用master slave1 和slave2分别代表三台主机的hostname


二、 SSH无密码验证配置
Hadoop运行过程中,需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。


1) 测试服务前件是否可以无密码登录


ssh localhost
    -如果返回” Permission denied (publickey,gssapi-keyex,gssapi-with-mic).”说明没有权限。如果进入到对应主机说明已经配置好无密码登录


2) 如果没有配置无密码登录按如下方法配置


a) 生成公钥和秘钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
b) 将公钥添加到需要访问服务器的authorkeys_keys
cat id_rsa.pub >> authorized_keys
c) 设置需要访问服务器authorized_keys权限
chmod 600 authorized_keys
3) 依次重复1)2)操作,配置服务器之间相互访问

ps:或者直接cat id_rsa.pub的内容添加到对应authorkeys_keys文件中也挺方便


三、安装JDK
文件版本jdk-8u77-linux-x64.rpm 


    1)rpm -ivh jdk-8u77-linux-x64.rpm
  查看是否安装成功
java -version


    2)##配置环境变量
修改系统环境变量文件
vi /etc/profile




i插入
向文件里面追加以下内容:


JAVA_HOME=/usr/java/jdk1.8.0_77
JRE_HOME=/usr/java/jdk1.8.0_77/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH


3)使修改生效
source /etc/profile


4)查看环境变量
echo $PATH
echo $JAVA_HOME


jdk安装完毕




四、下载hadoop 2.7.1
文件版本hadoop-2.7.1
进入/home/hadoop 文件夹 若没有自行创建 mkdir ,可以自定义安装目录
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz


五、解压
tar -zvxf hadoop-2.7.2.tar.gz


六、配置hadoop环境变量,还是修改刚刚配置jdk环境变量的文件(使用root用户)
vi /etc/profile


文件末端添加
export HADOOP_HOME=/home/hadoop/hadoop-2.7.1  
export PATH=$PATH:$HADOOP_HOME/bin


使修改生效
source /etc/profile


执行下列命令验证安装成功
hadoop version
正常会显示版本信息
七、配置 ~/hadoop/etc/hadoop下的hadoop-env.sh、yarn-env.sh、mapred-env.sh


vi /home/hadoop/hadoop-2.7.1/etc/hadoop/hadoop-env.sh
添加

export JAVA_HOME=/usr/java/jdk1.8.0_77

export HADOOP_LOG_DIR=/rc/local/hadoop/logs

vi /homehadoop/hadoop-2.7.1/etc/hadoop/yarn-env.sh
添加
export JAVA_HOME=/usr/java/jdk1.8.0_77
vi /home/hadoop/hadoop-2.7.1/etc/hadoop/mapred-env.sh
添加
export JAVA_HOME=/usr/java/jdk1.8.0_77


八、配置系统目录:Hadoop程序存放目录为/home/hadoop/,可以将程序和数据目录分开,可以更加方便的进行配置的同步,具体目录的配置如下所示:
l  在每个节点上创建程序存储目录/home/hadoop/,用来存放Hadoop程序文件。
l  在每个节点上创建数据存储目录/home/hadoop/hdfs,用来存放集群数据。
l  在主节点node上创建目录/home/hadoop/hdfs/name,用来存放文件系统元数据。
l  在每个从节点上创建目录/home/hadoop/hdfs/data,用来存放真正的数据。
l  所有节点上的日志目录为/home/hadoop/logs。
l  所有节点上的临时目录为/home/hadoop/tmp。
执行命令mkdir -p  /home/hadoop/logs,为还没有的目录创建,后面以此类推


九、 修改hadoop配置文件
Hadoop2.7.1配置文件在hadoop/etc/hadoop目录下,主要需要配置4个主要的配置文件文件:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。


core-site.xml和hdfs-site.xml是站在HDFS角度上配置文件;
core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件;


1) core-site.xml(master代表主节点服务器名,下同)
<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
             <description> 设定 namenode 的 主机名 及 端口 </description>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        <description> 设置缓存大小 </description>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/tmp</value>
               <description> 存放临时文件的目录 </description>
       </property>
</configuration>
2) hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hdfs/name</value>
        <description> namenode 用来持续存放命名空间和交换日志的本地文件系统路径 </description> 
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file: /home/hadoop/hdfs/data</value>
        <description> DataNode 在本地存放块文件的目录列表,用逗号分隔 </description> 
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
        <description> 设定 HDFS 存储文件的副本个数,默认为3 </description>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>


3) mapred-site.xml
<configuration>  
    property>
        <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
        </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>master:50030</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>
        <property>
                <name>mapred.job.tracker</name>
                <value>http://master:9001</value>
        </property>
</configuration>
4) yarn-site.xml
<configuration>
        <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.address</name>
               <value>master:8032</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.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>


十、设置hadoop集群


master上配置好的hadoop所在文件夹"/rc/local/hadoop"复制到所有的从的"/rc/local"目录下,而不必每台机器都要安装设置,用下面命令格式进行。
例如:从"bj-rc-stream-druidcoordinator-v-test-1"
到"bj-rc-stream-druidhistorical-v-test-1"复制配置Hadoop的文件:
scp –r /home/hadoop rc@bj-rc-stream-druidhistorical-v-test-1:/home/
复制完成后在master上配置节点信息(其余节点不需要),使用下列命令
vi /etc/hadoop/slaves
每行只添加一个主机名或者IP地址,每一行代表添加一个datanode子节点


十一、格式化HDFS文件系统
 cd /home/hadoop/hadoop2.1.7/


bin/hadoop namenode –format
十二、启动hadoop服务
sbin/start-all.sh


#命令“sbin/stop-all.sh”停止hadoop服务
十三、服务验证
java自带的小工具jps查看进程
1)master 应该显示
11044 Jps 
6097 NodeManager
5999 ResourceManager
5122 SecondaryNameNode
4836 NameNode
4957 DataNode


2)重服务器应该显示
11044 Jps 
6097 NodeManager
4957 DataNode
十四、通过网页查看
  输入以下网页, http://localhost:50070/dfshealth.html#tab-overview 进入hadoop管理首页



0 0
原创粉丝点击