hadoop伪分布式安装

Hadoop伪分布式环境搭建指南
本文详细介绍了如何在CentOS系统上进行Hadoop伪分布式安装,包括修改IP、主机名,配置SSH无密码登录,安装JDK,配置Hadoop环境,设置配置文件,以及启动和验证Hadoop服务。
hadoop伪分布式安装

准备工作
	1.修改IP
		yum -y install net-tools
		cd /etc/sysconfig/network-scripts/ifcfg-eno***

		
	2.修改主机名
		使用root账户
		------修改主机名称
		hostnamectl --static set-hostname n1

	3.----修改/etc/hosts

		192.168.190.111 n1
		
		
安装
1.创建用户组和用户

	groupadd hadoop  
	useradd -g hadoop hadoop  
	passwd  hadoop  
	
2.配置ssh无密码登录
	
	切换到hadoop用户
	su - hadoop 
	生成密钥
	ssh-keygen -t rsa -P ""   执行后会在.ssh目录下生成id_rsa和id_rsa.pub两个文件
	
	cd /home/hadoop/.ssh	  进入.ssh目录,并将id_rsa.pub追加到authorized_keys文件中
	
	cat id_rsa.pub >> authorized_keys    --将id_rsp.pub里边的文件内容追加到 或者复制到 authorized_keys文件里边  

	chmod 600 authorized_keys			 -rw------- (600) -- 只有属主有读写权限。

	测试是否可以登录
	ssh localhost  

	执行后会提示输入 yes or no. 输入yes后 

	如果提示为最后一次登录时间 则表明ssh无密码登陆 配置成功了。 
	
3.配置hadoop
	
	3.1  检测安装的jdk,自己下载的jdk
		检验系统原版本
			java -version	 
			java version "1.6.0_24"
			OpenJDK Runtime Environment (IcedTea6 1.11.1) (rhel-1.45.1.11.1.el6-x86_64)
			OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
			
			进一步查看JDK信息:

			rpm -qa | grep java
			tzdata-java-2012c-1.el6.noarch
			java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
			卸载OpenJDK,执行以下操作:

			rpm -e --nodeps tzdata-java-2012c-1.el6.noarch
			rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64



			确认还有没有卸载干净 如果执行后下边什么都没有 证明卸载干净
			rpm -qa | grep java 

		------------安装JDK 1.7

			安装JDK

			放在/usr/local/src下执行以下安装命令:

			rpm -ivh jdk-7u79-linux-x64.rpm


			默认会安装在/usr/java下
			检查是否安装


			java -version
			显示:java version"1.7.0_80" ...表示成功
			配置环境变量

			vi /etc/profile 

			在最后加入以下几行: 

			JAVA_HOME=/usr/java/jdk1.7.0_80
			CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
			PATH=$JAVA_HOME/bin:$PATH
			export JAVA_HOME CLASS_PATH PATH

			--生效
			source /etc/profile

			-------------centos 7修改 从中文 修改到英文

			cat   /etc/locale.conf

			--修改成为英文

			localectl set-locale LANG=en_US.UTF-8
			--修改成为中文
			localectl set-locale LANG=zh_CN.utf8

			-------------
			命令的几个常用方法如下:
			查看当前配置

			[root@localhost ~]# localectl status

			------------------------
			演示

			----确认防火墙状态是否关闭

			闭防火墙

			# service iptables status   //查看防火墙的状态

			# service iptables stop  //关闭防火墙

			# chkconfig iptables --list  //查看防火墙开机启动状态

			# chkconfig iptables off  //关闭防火墙开机启动
			
			*systemctl start firewalld.service#启动firewall
			*systemctl stop firewalld.service#停止firewall
			*systemctl disable firewalld.service#禁止firewall开机启动
			之前都是hadoop安装的准备工作
	
	
	3.2	
			tar -zvxf hadoop-2.6.5.tar.gz
			
			mkdir -p /usr/local/
			
			mv /tmp/hadoop-2.6.5/  /usr/local/

			cd /usr/local/

			mv hadoop-2.6.5 hadoop
			
	
	3.3	修改配置文件
	
		3.3.1 vi /etc/profile  
		
			export HADOOP_INSTALL=/usr/local/hadoop  
			export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin${PATH}  
			export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}  
			export HADOOP_COMMON_HOME=${HADOOP_INSTALL}  
			export HADOOP_HDFS_HOME=${HADOOP_INSTALL}  
			export YARN_HOME=${HADOOP_INSTALLL}  
			export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/native    
			export HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib:${HADOOP_INSTALL}/lib/native" 
		
		
		3.3.2 设置hadoop-env.sh中的java环境变量
 
		hadoop-env.sh该文件存放路径为:
		 
		/usr/local/hadoop/etc/hadoop/hadoop-env.sh
		 
		cd /usr/local/hadoop  

		vi ./etc/hadoop/hadoop-env.sh   
		   
				export JAVA_HOME= {你的java环境变量}     		//	/usr/java/jdk1.7.0_80
				
		
4.配置伪分布式
	
	hadoop的配置文件主要有core-site.xml  、 hdfs-site.xml 、 yarn-site.xml 三个文件。
	
	---这些文件存放在/usr/local/hadoop/etc/hadoop下
   
	cd /usr/local/hadoop/etc/hadoop  
	 
	--手动创建tmp文件夹  
	切换到hadoop用户
	cd /usr/local/hadoop
	mkdir tmp
	 
	cd 	/usr/local/hadoop/etc/hadoop
	core-site.xml

	  <!--一定要配置  系统默认的缓存文件夹在每次重启后会被删除-->  
	   
	<configuration>  
		<property>  
			<name>hadoop.tmp.dir</name>  
			<value>/usr/local/hadoop/tmp</value>
		</property>  
		<property>  
			<name>fs.defaultFS</name>  
			<value>hdfs://localhost:9000</value>  			// 尽量写名,不要写localhost
		</property>  
	</configuration>  

	-------vi hdfs-site.xml
	切换hadoop用户
	mkdir -p /usr/local/hadoop/dfs/name

	mkdir -p /usr/local/hadoop/dfs/data

	  <!--这个属性节点是为了防止后面eclipse存在拒绝读写设置的 -->   
	   
	<configuration>    
		<property>    
			<name>dfs.replication</name>    
			<value>1</value>    
		</property>    
		<property>    
			<name>dfs.namenode.name.dir</name>    
			<value>file:/usr/local/hadoop/dfs/name</value>    
		</property>    
		<property>    
			<name>dfs.datanode.data.dir</name>    
			<value>file:/usr/local/hadoop/dfs/data</value>    
		</property>    
		<property>                
				<name>dfs.permissions</name>    
				<value>false</value>    
		 </property>    
	 </configuration>    
	 
	 
	 
	 
	 
	 --------vi yarn-site.xml
	 

	yarn-site.xml
	 
	 
	   
	<configuration>  
	<property>  
	<name>mapreduce.framework.name</name>  
	<value>yarn</value>  
	</property>  
	  
	<property>  
	<name>yarn.nodemanager.aux-services</name>  
	<value>mapreduce_shuffle</value>  
	</property>  
	</configuration> 
		
	
	
5. 若上面配置有错误,删除重新配置
		
	接下来创建需要的文件夹
	rm -rf /usr/local/hadoop/tmp
	rm -rf /usr/local/hadoop/dfs

	mkdir -p /usr/local/hadoop/tmp
	mkdir -p /usr/local/hadoop/dfs/name
	mkdir -p /usr/local/hadoop/dfs/data
   
	
   配置完成
	
6. 运行
	切换hadoop对象
	cd /usr/local/hadoop/bin
	
	首先格式化文件系统
	/usr/local/hadoop/bin
	
	./hdfs namenode -format  
	
	启动
	./sbin/start-dfs.sh  
	./sbin/start-yarn.sh  

	或者
	./sbin/start-all.sh

	./sbin/stop-all.sh
	
	如果不识别hadoop命令: 在vi ~/.bash_profile	中将jdk的环境变量写进去
	
	
	---jps查看后台java进程是否存在 都存在证明配置成功  该命令在sbin下

	namenode,datanode,resourcemanager,nodemanager,secondarynamenode


	提示如下则表明成功了。
	 
	 
	   
	Starting namenodes on [localhost]  
	localhost: starting namenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-namenode-.out  
	localhost: starting datanode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-datanode-.out  
	Starting secondary namenodes [0.0.0.0]  
	0.0.0.0: starting secondarynamenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-.out
	
	
	
	
	在hdfs中创建目录

	bin/hdfs dfs -mkdir /x

	这样就在hdfs中创建了一个目录x

	5、向hdfs中放入文件

	bin/hdfs dfs -put README.txt /x

	上面的命令会把当前目录下的README.TXT放入hdfs的/x目录中,在web管理界面里也可以看到该文件
		
	
	
http://192.168.190.112:50070/

http://192.168.190.112:8088/

运行WordCount实例

 
----讲解在shell下执行 和在web图形化界面执行效果:
 

创建测试两侧文件file1.txt,file2.txt

vi file1.txt

welcome to hadoop

hello world!

vi file2.txt

hadoop hello

 
在HDFS上创建输入input输入目录:

hdfs dfs -mkdir /input


将file1.txt与file2.txt文件上传到HDFS的input目录

hdfs dfs -put file1.txt /input
hdfs dfs -put file2.txt /input


查看刚才上传的两个文件

hdfs dfs -put file2.txt /input

14/10/25 14:43:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

hdfs dfs -ls /input

14/10/25 14:43:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 2 items
-rw-r--r--  1 hadoop supergroup        31 2014-10-25 14:43 /input/file1.txt
-rw-r--r--  1 hadoop supergroup        13 2014-10-25 14:43 /input/file2.txt


执行hadoop自带的WordCount程序,统计单词数

进入/opt/hadoop-2.6.0/share/hadoop/mapreduce执行命令:

hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount  /input /output

执行没报错,查看运行结果:

hdfs dfs -ls /output/part-r-00000
14/10/25 14:54:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: `/outputpart-r-00000': No such file or directory
hdfs dfs -cat /output/part-r-00000
14/10/25 14:54:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hadoop 2
hello 2
to 1
welcome 1
world! 1

统计结果正确!



7.伪分布配置成功


----------------
退出安全模式


hadoop dfsadmin -safemode leave
	
	
	
	
	
	
	
	
	
hdfs启动:
	namenode
	datanode
	secondarynode
	
yarn启动
	resourcemanager
	namenode		进程启动

	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值