hadoop 2.6.5 安装配置

使用VMare建3个虚拟机(使用CentOS7系统),三个虚拟机IP为:

192.168.100.130、192.168.100.131、192.168.100.134     
192.168.100.130作为master节点,其他两个IP作为slave节点


一、在3个节点上的hosts文件配置IP与主机名的映射


找到/etc/hosts,在里面加入三行:

192.168.100.130   master  
192.168.100.131   slave1  
192.168.100.134   slave2 

二、配置SSH免密码登录


1、找到/etc/ssh/sshd_config,去掉注释符”#“

RSAAuthentication yes
  PubkeyAuthentication yes
  AuthorizedKeysFile  .ssh/authorized_keys


2、在每个节点上生成公钥和私钥

ssh-keygen -t rsa -P ""  


3、在master 上,进到~/.ssh目录下,执行

cat id_rsa.pub >> authorized_keys


4、分别将slave1和slave2上的公钥加到master上
的authorized_keys文件里
在slave1:
scp id_rsa.pub   master:~/.ssh/id_rsa.pub.s1   slave1
在slave2:
scp id_rsa.pub   master:~/.ssh/id_rsa.pub.s2 slave2
在master上(注意进到~/.ssh目录下):
cat id_rsa.pub.s1 >> authorized_keys master
cat id_rsa.pub.s2 >> authorized_keys master
chmod  600  authorized_keys 
可以尝试下是是否成功了
ssh localhost 
第一次应该会要求输入yes/no  
输入yes之后就登录成功了
同样的,ssh slave1\ssh  master\ssh  slave2,
会出现类似的结果,这时候应该不需要输密码了
如果还是要输入密码,
錯誤訊息:Agent admitted failure to sign using the key
使用 ssh-add 指令将私钥加进来(根据个人的密匙命名不同更改 id_rsa)
ssh-add  ~/.ssh/id_rsa (分别在master、slave1、slave2上执行)

三、新增账户,分配权限


为每台机器新建了一个账户hadoopuser.这里需要给每个账户分配sudo的权限。
(切换到root账户,修改/etc/sudoers文件,
增加:hadoopuser  ALL=(ALL) ALL )

四、确认已安装jdk,若没有安装就安装一下JDK并配置一下环境变量

粘贴一下自己的配置,输入:vim /etc/profile,进入编辑界面

export JAVA_HOME=/usr/local/app/jdk
export ZOOKEEPER_HOME=/usr/local/app/zookeeper
export HADOOP_HOME=/usr/local/app/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

完成之后使用source /etc/profile使刚才的配置生效

五、关闭防火墙

不关闭防火墙,namenode和datanode节点虽然起来,但在web控制台上看到的livenode 数目为0
各个版本的linux稍有差异,在CentOS7上是:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动


六、拷贝hadoop包到主节点,并进行解压

省略


七、修改文件配置


进到主节点的hadoop解压根目录下的/etc/hadoop/下
共有7个文件要配置:
~/hadoop-2.6.5/etc/hadoop/hadoop-env.sh
~/hadoop-2.6.5/etc/hadoop/yarn-env.sh
~/hadoop-2.6.5/etc/hadoop/slaves
~/hadoop-2.6.5/etc/hadoop/core-site.xml
~/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
~/hadoop-2.6.5/etc/hadoop/mapred-site.xml
~/hadoop-2.6.5/etc/hadoop/yarn-site.xml
以上个别文件默认不存在的,可以复制相应的template文件获得。 

配置文件1:hadoop-env.sh


修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)

配置文件2:yarn-env.sh


修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)


配置文件3:slaves (这个文件里面保存所有slave节点)


写入以下内容:
  slave1
  slave2


配置文件4:core-site.xml

<configuration>
    <property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
    </property>
    <property>
<name>io.file.buffer.size</name>
<value>131072</value>
    </property>
    <property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hduser/tmp</value>
<description>Abase for other temporary directories.</description>
    </property>
    <property>
  <name>hadoop.proxyuser.hduser.hosts</name>
  <value>*</value>
    </property>
    <property>
  <name>hadoop.proxyuser.hduser.groups</name>
  <value>*</value>
    </property>
</configuration>


配置文件5:hdfs-site.xml

<configuration>
   <property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
    <property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hduser/dfs/name</value>
    </property>
    <property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hduser/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
    <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
    </property>
</configuration>


配置文件6:mapred-site.xml

<configuration>
<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>
</configuration>


配置文件7: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的解压安装目录下创建临时目录和data和name节点的存放位置,如:

mkdir /dfs
mkdir /dfs/name
mkdir /dfs/data
mkdir /tmp

这样当执行scp时,可以将所有的内容直接复制到其他机器了,注意上面的配置文件也要跟着改一下。


将主节点配置好的内容复制到其他节点

scp -r hadoop slave1:`pwd`
scp -r hadoop slave2:`pwd`

分别复制到slave1和slave2的同级目录下。


4、启动验证


4.1 启动hadoop

进入安装目录: cd  ~/hadoop-2.6.5/
格式化namenode:./bin/hdfs namenode –format


启动hdfs: ./sbin/start-dfs.sh
此时在master上面运行的进程有:namenode secondarynamenode
slave1和slave2上面运行的进程有:datanode

启动yarn: ./sbin/start-yarn.sh

此时在master上面运行的进程有:namenode secondarynamenoderesourcemanager
slave1和slave2上面运行的进程有:datanode nodemanaget


查看集群状态:./bin/hdfs dfsadmin –report
查看文件块组成:  ./bin/hdfsfsck / -files -blocks
查看HDFS:    http://192.168.100.130:50070
查看RM:    http://192.168.100.130:8088

猜你喜欢

转载自blog.csdn.net/u014532775/article/details/91960656
今日推荐