Hadoop,JDK ,SSH 无密钥的Linux下详细的步骤方法

搭建Hadoop,需要在安装jdk,hadoop,以及配置它们的环境变量,还有SSH
(虚拟机自带,不用自己安装)
三台主机的普通用户都是同一个:Mcwang

2018/5/16
创建三台虚拟机:master、slave1、slave2
三台主机ip地址分别为:
        master:192.168.201.135
        slave1: 192.168.  201.133
             slave2: 192.168.  201.134
在Mcwang账户下创建一个soft文件夹,专门用来存放软件

1.CentOS自带jdk删除:2种选择

1.    rpm -qa |  grep jdk
        rpm e jdk1.8.0*
2.yum -y remove java*

2.jdk1.8安装

利用SSH上传jdk的tar.gz压缩包到master主机的Linux系统上(上传文件建议在普通用户下上传)
解压:
tar -zxvf  jdk...tar.gz
将解压后的文件重命名为jdk,mv  old  newname  , 创建软连接到jdk文件夹:
ln -s  jdk   jdk.soft
配置环境变量:
root用户下:

vi /etc/profile
	    export JAVA_HOME=/home/Mcwang/soft/jdk.soft
		export JRE_HOME=$JAVA_HOME/jre
		export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
		export PATH=$PATH:JAVA_HOME/bin:JRE_HOME/bin

		 export JAVA_HOME=/home/Mcwang/soft/jdk.soft
		export JRE_HOME=$JAVA_HOME/jre
		export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
		export PATH=$PATH:JAVA_HOME/bin:JRE_HOME/bin

    export是使它生效
     输入java -version查看安装的jdk版本;
        也可以直接输入java 或javac ,出现一长串文件说明配置没错。

3.hadoop搭建

关闭防火墙和SElinux:
 1..查看防火墙的状态:
     chkconfig iptables --list
     chkconfig ip6tables --list
2. 关闭防火墙(临时)
     chkconfig iptables stop 
     chkconfig ip6tables stop
3.永久关闭
   chkconfig iptables off
   chkconfig ip6tables off
       4.vi /etc/sysconfig/selinux
            SELINUX=disabled
           

 

    如何使普通用户拥有sudo权限,博客在此:https://blog.csdn.net/xiaozelulu/article/details/80343532

 

    需要重启reboot.

 ssh上传hadoop2.7.3的压缩包

解压:
tar -zxvf hadoop2.7.3.tar.gz
重命名:为hadoop下创建文件夹:
mkdir dfs  dfs/name  dfs/data   tmp 

配置hadoop环境: sudo可以使普通用户获得root权限去修改配置文件

一般配置文件我们需要在root下执行,但有了sudo权限我们不用切换到root

sudo vi /etc/profile

		   export  HADOOP_HOME=/home/Mcwang/soft/hadoop.soft
		export HADOOP_INSTALL=$HADOOP_HOME
		export HADOOP_MAPRED_HOME=$HADOOP_HOME
		export HADOOP_COMMON_HOME=$HADOOP_HOME
		export HADOOP_HDFS_HOME=$HADOOP_HOME
		export YARN_HOME=$HADOOP_HOME
		export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
		export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

		   export  HADOOP_HOME=/home/Mcwang/soft/hadoop.soft
		export HADOOP_INSTALL=$HADOOP_HOME
		export HADOOP_MAPRED_HOME=$HADOOP_HOME
		export HADOOP_COMMON_HOME=$HADOOP_HOME
		export HADOOP_HDFS_HOME=$HADOOP_HOME
		export YARN_HOME=$HADOOP_HOME
		export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
		export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

     配置环境之后,需要:source /etc/profile,  目的是使它生效
 

 修改/home/hadoop/soft/hadoop/etc/hadoop下的7个文件:

1)sudo vi hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/Mcwang/soft/hadoop.soft
2) suod vi core-site.xml

 </configuration>  
         <property>
			    <name>hadoop.tmp.dir</name>
			    <value>file:/home/Mcwang/soft/Mcwang/tmp</value>
			    <description>Abase for other temporary directories.</description>
	     </property>
         <property>
		    	<name>fs.defaultFS</name>
			    <value>hdfs://master:9000</value>
          </property>


  </configuration>  

                   master是你的主机名,value:是你tmp的路径
3) sudo vi hdfs-site-xml

<!-- Put site-specific property overrides in this file. -->
		<configuration>

			<property>
				<name>dfs.namenode.secondary.http-address</name>
				<value>master:50090</value>
			</property>
			<property>
				<name>dfs.replication</name>
				<value>1</value>
			</property>
			<property>
				<name>dfs.namenode.name.dir</name>
				<value>file:/home/Mcwang/soft/hadoop/dfs/name</value>
			</property>
			<property>
				<name>dfs.datanode.data.dir</name>
				<value>file:/home/Mcwang/soft/hadoop/dfs/data</value>
			</property>

		</configuration><property>
				<name>dfs.namenode.secondary.http-address</name>
				<value>master:50090</value>
			</property>
			<property>
				<name>dfs.replication</name>
				<value>1</value>
			</property>
			<property>
				<name>dfs.namenode.name.dir</name>
				<value>file:/home/Mcwang/soft/hadoop/dfs/name</value>
			</property>
			<property>
				<name>dfs.datanode.data.dir</name>
				<value>file:/home/Mcwang/soft/hadoop/dfs/data</value>
			</property>

		</configuration>

                           *master主机名,还有name和data的路径
4) sudo vi yarn-site.xml

<configuration>
			<!-- Site specific YARN configuration properties -->
			<property>
				<name>yarn.resourcemanager.hostname</name>
				<value>master</value>
	          </property>
		  <property>
				<name>yarn.nodemanager.aux-services</name>
				<value>mapreduce_shuffle</value>
		  </property>


 </configuration><property>
				<name>yarn.resourcemanager.hostname</name>
				<value>master</value>
	          </property>
		  <property>
				<name>yarn.nodemanager.aux-services</name>
				<value>mapreduce_shuffle</value>
		  </property>


 </configuration>

          **master主机名      
 
5)先将mapred-site.xml.template复制到mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
sudo vi mapred-site.xml

 

 

<!-- Put site-specific property overrides in this file. -->
	 <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> <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>

**master(2)个主机名
6) sudo vi slaves
   添加两个主机名:(每个机器上都写对应的另两个主机名)
slave1
slave2
7) sudo vi yarn-env.sh
    添加JAVA_HOME
 export JAVA_HOME=/home/Mcwang/soft/hadoop.soft
        

 

 

注意:

            jdk的安装和hadoop的安装,以及它们俩的环境变量在三台主机都得配置,但是唯独修改的第六个文件
里面主机名不同,里面是写除本身以外的两个主机名。

将master主机上的/home/Mcwnag/soft/文件夹通过超级命令复制到slave1和slave2主机上,(scp  -r ...)
只需要将soft文件夹中的软连接删除,重新创建软连接:
rm -rf  jdk.soft  hadoop.soft     删除软连接
ln -s   jdk       jdk.soft  创建jdk软连接
ln -s   hadoop   hadoop.soft  创建hadoop软连接
这样三台主机上的hadoop(hdfs)命令可以运行,但是hadoop搭建并未perfect

 

 还有一些配置需要在另外两个机器上:

        ①vi /etc/profile :jdk和hadoop的环境配置;source /etc/profile
        ②vi /etc/hosts :ip hostname形式写入三台机器上,主要是想要主机名代替IP;
        

 

SSH免密登录(三台主机):

1. master 想登陆locahost:
    在master主机上运行命令:
    ssh-keygen -t rsa
            在home/Mcwang下生成新文件夹.ssh(公钥id_rsa.pub、私钥id_rsa和known_hosts文件)
       
将公钥复制成新文件:authorized_keys
    cp id_rsa.pub authorized_keys
修改authorized_keys权限为600,.ssh权限为700
sudo chmod 600 authorized_keys
                sudo  chmod 700 .ssh
此时ssh登录localhost,可以免密登录
2.如果master想免密登录slave1,
        需要在slave1中/home/Mcwang下创建文件夹.ssh,并修改权限700
mkdir .ssh
sudo chmod 700  
将authorized_keys通过超级命令复制到slave1主机中
scp authorized_keys Mcwang@192.168.29.133:/home/hadoop/.ssh
3.master 免密登录slave2:
            需要在slave2中/home/hadoop下创建文件夹.ssh,并修改权限700
mkdir .ssh
sudo chmod 700 /home/Mcwang/.ssh
将authorized_keys通过超级命令复制到slave2主机中
scp authorized_keys Mcwang@192.168.201.134:/home/Mcwang/.ssh
此时master主机可以通过ssh免密登录slave1和slave2主机

 

4注意:想要三台机器互相录免密登录:

master:
ssh-keygen -t rsa  //生成自己的私钥和公钥,/home/Mcwang就会自动生成.ssh文件
chmod 700 .ssh  //.ssh权限700
cp id_rsa.pub authorized_keys   //master已经有了自己的公钥
chmod 600 authorized_keys
scp authorized_keys Mcwang@192.168.29.137:/home/Mcwang/.ssh/authorized  //将公钥复制到slave1中
slave1:生成自己的公钥
ssh-keygen -t rsa  //生成自己的私钥和公钥,/home/Mcwang就会自动生成.ssh文件
chmod 700 .ssh  //.ssh权限700
cat id_rsa.pub authorized_keys   //slave1公钥追加到authorized_keys (2)
chmod 600 authorized_keys
scp authorized_keys Mcwang@192.168.29.138:/home/Mcwang/.ssh/authorized  //将2个公钥复制到slave2中
slave2:
mkdir .ssh
chmod 700 .ssh
ssh-keygen -t rsa //生成自己的公钥和私钥
cat id_rsa.pub authorized_keys  //此时已有三个公钥,
scp authorized_keys Mcwang@192.168.29.136:/home/Mcwang/.ssh/authorized  //将三个公钥复制到master中
scp authorized_keys Mcwang@192.168.29.137:/home/Mcwang/.ssh/authorized  //将三个公钥复制到slave1中
  


注意:在一机器上是不能追加文件到另外的机器上的。
此时可实现三台主机互相免密登录

 

 

如何修改主机hostname

1、临时修改:hostname new hostname
2、永久修改:
sudo vi /etc/hostname
添加主机名(例如在master主机下):master(其他两个主机也需要添加主机名)
     HOSTNAME=master
 重启虚拟机以上配置会生效

 

 

 

 启动Hadoop

    在master主机上将节点文件系统格式化(只需要格式化一次,一次以上会出现问题:需要把创建的dfs,
dfs/name,dfs/data,tmp这四个文件删掉就好,再重新创建,然后该虚拟机又可以继续用。
格式化命令:hdfs namenode -format

 

 

在/home/hadoop/soft/hadoop/sbin下有start-all.sh 和 stop-all.sh,
是开启服务和关闭服务
在命令行执行:./start-all.sh 开启服务
在命令行执行:jps 查看服务

在master主机上会开启以下四项服务:
1 NameNode
2 SecondaryNameNode
3 ResourceManager
4 Jps
在slave1和slave2主机上会开启以下三项服务:
1 DataNode
2 Jps
3 NodeManager

 

 

如果要在Windows下的浏览器上访问hadoop,需要进行以下更改:


修改文件:C:/Windows/System32/drivers/etc/hosts
在文件中添加键值对:和vi /etc/hosts一样
192.168.201.133 slave1
192.168.201.134 slave2
192.138.201.135 master

 

 

 

在浏览器上访问:http://master:50070 可进入hadood的页面

master:8088

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值