安装hadoop,JDK等相关详细笔记

Hadoop,jdk的安装,及环境变量的配置,启动hadopp等

/home/Mcwang/soft/hadoop
jdk
一、通过sudo获得root的权限
root下:
chmod u+w /etc/sudoers
vi   /etc/sudoers
在root  ALL=(ALL)  ALL下添加
Mcwang  ALL=(ALL)  ALL 
chmod u-w  /etc/sudoers
就完成了
注意:使用root权限的时候,要在命令前加上:sudo  
例如:sudo vi/etc/hosts


创建用户:useradd Mcwang
  passwd  Mcwang
二、SSH上传文件
上传文件:hadoop2.7.3,jdk-8u162(jdk1.8),都是.tar.gz形式


三、jdk的卸载与安装
1.将系统自带的jdk1.7版本卸载
rpm -qa|grep java  //查询安装jdk的版本
yum -y remove java*  //彻底删除jdk (需要使用root权限: sudo 或root下)
再次查询:java -verison jdk版本信息,会报command not found,说明卸载成功。
2.在soft有之前上传的两个包:/soft下操作
先安装jdk,后hadoop
1)解压jdk包
tar -zxvf jdk-8u162
mv jdk1.8.0 jdk
ln -s jdk jdk.soft
2)配置jdk环境变量
sudo vi /etc/profile
                        #-------jdk环境配置
			export JAVA_HOME=/home/Mcwang/soft/jdk.soft
			export JRE_HOME=$JAVA_HOME/jre
			export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
			export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
			#-------------------------------------------------
3)source /etc/profile (可以直接在普通用户下执行的)
4)java -version //查询jdk版本
5)java 或javac命令也可以查看是否安装正确
四、安装Hadoop
1.前提保证:关闭防火墙和SELINUX=disabled
暂时关闭:
chkconfig iptables stop
chkconfig ip6table stop
永久关闭:
chkconfig iptables off /on
chkconfig iptables off /on
防火墙的状态:
chkconfig iptables --list
chkconfig iptabele --list
sudo vi /etc/sysconfig/selinux
将SELINUX=disabled
关闭/打开需要root权限,查看不需要。
1.解压
tar -zxvf hadoop2.7.3.tar.gz
mv hadoop2.7.3 hadoop
ln -s hadoop hadoop.soft
2.创建三个文件夹
在/home/Mcwang/hadoop下创建文件夹:
mkdir dfs dfs/name dfs/data tmp 
3.配置hadoop环境 变量:
1). 在Mcwang下:
sudo vi /etc/profile
   root用户下:
vi /etc/profile
2).在/etc/profile添加下列配置信息:
 
                       #---------------Hadoop环境配置
		 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
		 #--------------------------------------------------------------


3).source /etc/profile :使之生效
4).hdfs  :测试一下
4.修改七个文件
1)vi core-site.xml
 
<!-- Put site-specific property overrides in this file. -->
			 <configuration>
				  <property>   
				 <name>hadoop.tmp.dir</name>     
				 <value>file:/home/Mcwang/soft/hadoop/tmp</value>   
			  <description>Abase for other temporary directories.</description>    
			  </property>  
			  <property>    
				 <name>fs.defaultFS</name>       
				 <value>hdfs://master:9000</value>  
			  </property>
			 </configuration>
2)vi hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/Mcwang/soft/jdk.soft

3)vi hdfs-site.xml
 <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>
		
            4)vi mapred-site.xml
                cp mapred-site.xml.template 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>
5)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>
6)vi slaves
slave1 
slave2
7)vi yarn-env.sh
添加:export JAVA_HOME=/home/Mcwang/soft/jdk.soft

5.将hadoop文件发送给slave1和slave2
scp hadoop [email protected]:/home/Mcwang/soft  会报错:not a regular file
scp hadoop [email protected]:/home/Mcwnag/soft
所以:得先压缩 也可以 -r加个参数:scp -r 表示递归文件
tar -zcvf hadoop.tar.gz hadoop
scp hadoop.tar.gz [email protected]:/home/Mcwang/soft  //yes 密码
scp hadoop.tar.gz [email protected]:/home/mcwnag/soft
其他机器:
tar -zxvf hadoop.tar.gz
ln -s hadoop hadoop.soft
配置Hadoop环境变量:
 sudo vi /etc/profile
                        #---------------Hadoop环境配置
			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(普通用户直接执行就行)
     修改两个机器上的slaves文件,里面填写另两个主机名。

五、SSH无密钥输入 (.ssh的权限是700,authorized_keys权限是600)
1)master :在~下
ssh-keygen -t rsa  //生成自己的私钥和公钥,/home/Mcwang就会自动生成.ssh文件
chmod 700 .ssh  //.ssh权限700
cp id_rsa.pub authorized_keys  
chmod 600 authorized_keys
2)master免钥登陆slave1
slave1:
mkdir .ssh
chmod 700 .ssh
master: scp authorized_keys [email protected]:/home/Mcwang/.ssh/authorized_keys  //将master公钥复制到slave1
master:
ssh [email protected]
然后:master就可以免密钥登陆slave1了。
要是想登陆其他机器,就需要把公钥复制到其他机器的authorized——keys上。就可以登陆了。


3)三台机器互相免密钥登陆 (需要.ssh/authorized_keys需要)
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 [email protected]:/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 [email protected]:/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 [email protected]:/home/Mcwang/.ssh/authorized  //将三个公钥复制到master中
scp authorized_keys [email protected]:/home/Mcwang/.ssh/authorized  //将三个公钥复制到slave1中
  
注意:在一机器上是不能追加文件到另外的机器上的。
  4)执行无密码登陆:
  格式:  ssh 用户名@IP
  ssh [email protected]  //master连接slave1
若是想:让master直接连接slave1,slave2, 
即: ssh slave1
ssh slave2
则需要做如下更改
sudo vi  /etc/hosts 
192.168.29.136 master
192.168.29.137 slave1
192.168.29.138 slave2
六、 Linux里,若想让主机名代替IP
vi  /etc/hosts 
192.168.29.136 master
192.168.29.137 slave1
192.168.29.138 slave2
七、启动hadoop
1. 在master主机上将节点文件系统格式化(只需要格式化一次,一次以上会出现问题:需要把创建的dfs,
dfs/name,dfs/data,tmp这四个文件删掉就好,再重新创建,然后该虚拟机又可以继续用。
格式化命令:
hdfs namenode -format
2.启动文件
在/home/hadoop/soft/hadoop/sbin下:
有 start-all.sh :是开启服务
   stop-all.sh  :关闭服务
 
在命令行执行:start-all.sh 
或在/home/Mcwang/soft/hadoop/sbin下执行./start-all.sh  开启服务
在命令行执行:
jps   查看开启的服务

(如果报错:找不到指令,说明jdk版本不对)
八、查看服务:各个主机的服务
在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
在文件中添加键值对:
192.168.29.136 master
192.168.29.137 slave1
192.138.29.138 slave2


十、在浏览器访问方式
在浏览器上访问:http://master:50070 http://master:8088/cluster 可进入hadoop





猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80369354