hadoop伪分布式搭建

Hadoop2.x环境搭建

一、Linux环境

1. 修改主机名

	$ vi /etc/sysconfig/network
	$ cat /etc/sysconfig/network

2. 主机映射

# vi /etc/hosts
	ip地址  主机名

3. 修改网卡

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
	ONBOOT=yes
	BOOTPROTO=static

二、jdk安装

(推荐)用户只有一个(不要是root),user01

	#创建两个目录
	$ mkdir /opt/software /opt/modules
	/opt/software  #存放*.tag.gz
	/opt/modules    #放置安装文件
	$ chown -R user01:user01 /opt/modules/ /opt/software/

	$ ll
	drwxr-xr-x. 3 user01 user01 4096 Mar  7 07:34 modules
	drwxr-xr-x. 2 root   root   4096 Nov 22  2013 rh
	drwxr-xr-x. 2 user01 user01 4096 Mar  7 07:28 software
	
	#安装jdk
	$ tar -zxf jdk-7u67-linux-x64.tar.gz  -C ../modules/
	 
	# 配置环境变量
	$sudo vim /etc/profile  
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
	#使配置生效
	$ source /etc/profile
	 #卸载openJDK
  $ rpm -qa | grep jdk
  $ rpm -e --nodeps   XXX.rpm   //不验证依赖进行卸载
  
  #Linux 防火墙
  $ service iptables status   ##查看防火墙状态
  iptables: Firewall is not running.
  $ service iptables stop     ##关闭防火墙


  #关闭开机启动防火墙
  $  chkconfig iptables off   ##不随机启动

  #关闭安全子系统
  $ vi /etc/sysconfig/selinux
  SELINUX=disabled

三、配置Hadoop

${HADOOP_HOME}—hadoop的安装目录
解压安装hadoop【注意上传和解压过程中的用户权限问题】

$ tar -zxf hadoop-2.5.0.tar.gz -C  /opt/modules/

1. 配置hadoop的java环境支持, ${HADOOP_HOME}/etc/hadoop目录下

  • hadoop-env.sh
  • mapred-env.sh
  • yarn-env.sh
    在这3个文件中都配置
export JAVA_HOME=/opt/modules/jdk1.7.0_67

2. 与hdfs相关的配置 ${HADOOP_HOME}/etc/hadoop

(1)core-site.xml
<!--NameNode地址,8020是指定进程8020,访问入口 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
    </property>

	<!--hadoop在运行时产生的文件,元数据在本地的存放目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
	</property>
(2)hdfs-site.xml
	<!--存放到hdfs上的文件的副本数,伪分布式配置为1 -->
	<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
(3) slave
bigdata01
(4)格式化namenode
    #${HADOOP_HOME}目录下:
$ bin/hdfs namenode -format 
(5)启动hdfs守护进程
  $ sbin/hadoop-daemon.sh start namenode  //启动namenode进程
  $ sbin/hadoop-daemon.sh start datanode    //启动datanode
  $  jps
3097 Jps
2931 NameNode
3023 DataNode
(6) web访问界面

http://bigdata01:50070/

(7)HDFS文件系统常用命令
$ bin/hdfs dfs   //可以查看所有的dfs相关的操作指令
$ bin/hdfs dfs -ls /  
$ bin/hdfs dfs -mkdir -p /input/test
$ bin/hdfs dfs  -rmdir /input/test
$ bin/hdfs dfs  -put /opt/software/jdk-7u67-linux-x64.tar.gz /input/test

3. 配置secondarynamenode

修改hdfs-site.xml,指定机器以及外部交互端口号

<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>bigdata01:50090</value>
</property>

-》启动

$ sbin/hadoop-daemon.sh start secondarynamenode

3.配置YARN 任务调度 (Mapreduce) 资源管理(resourcemanager nodemanager)

(1) 配置yarn-site.xml
#${HADOOP_HOME}/etc/hadoop目录下配置yarn-site.xml
<!-- 指定ResorceManager所在服务器的主机名-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>bigdata01</value>
</property>

<!-- 指明在执行MapReduce的时候使用shuffle-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
(2) 配置mapred-site.xml
#复制并重名模板文件
$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
#${HADOOP_HOME}/etc/hadoop目录下配置mapred-site.xml
<!-- 指定MapReduce基于Yarn来运行-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
(3)启动hdfs yarn进程
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
(4)提交示例任务
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  pi 5 3

4. 配置日志聚合

(1)mapred-site.xml后追加以下配置
<property>
	<name>mapreduce.jobhistory.address</name>
	<!--配置实际的主机名和端口-->
	<value>[hostname]:10020</value>
</property>

<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<value>[hostname]:19888</value>
</property>
(2)yarn-site.xml
<!--启用日志聚合功能-->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>
	<!--日志保存时间-->
	默认保存3-7
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>86400</value>
</property>
5. 停止所有进程重新启动,以便配置文件生效
(1)停止进程
$ sbin/hadoop-daemon.sh stop namenode
$ sbin/hadoop-daemon.sh stop datanode
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh stop nodemanager
(2)启动进程
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
(3)启动历史
#启动历史服务
$ sbin/mr-jobhistory-daemon.sh start historyserver
(4)查看守护进程
$ jps
28904 ResourceManager
28724 NameNode
28808 DataNode
29152 NodeManager
29304 JobHistoryServer
30561 Jps
(5) 取消hdfs权限检测

1、取消HDFS权限检测功能
2、修改hdfs-site.xml

<property>
	<name>dfs.permissions.enabled</name>
	<value>false</value>
</property>

6.【常见问题】

1、格式化问题
一般情况格式化一次即可
bin/hdfs namenode -format
生成fsimage
操作HDFS之后生成edits
多次格式化之前,需要清空hadoop.tmp.dir参数下设置的路径下的所有文件和目录
2、出现错误
一定要学会查看日志文件,查看logs/下的对应进程的.log后缀的文件
【框架名】【用户名】【进程名】【主机名】【文件后缀】
hadoop-beifeng-datanode-bigdata-04.log
查看最新的日志记录,最新时间
3、clusterID
查看VERSION
[dfs/name/current]:namenode
clusterID=CID-6172ab83-9c0a-4da0-8d14-d5e14a2c57cd

[dfs/data/current]:datanode
clusterID=CID-6172ab83-9c0a-4da0-8d14-d5e14a2c57cd
集群ID不一致
第一种解决方法:修改VERSION文件,以namenode的ID为准,改为一致即可
第二种解决方法:重新格式化生成

4、pid进程号(注意权限问题)
系统进程每次启动之后会有一个pid编号,每次启动会随机生成
多个用户启动进程,会记录不同用户的pid进程编号
建议不要多个用户混用
如果出现pid进程编号多个的话,直接删除rm /tmp/*.pid
再用同一个用户去启动

5、host主机名与IP不一致
检查core-site
检查/etc/hosts
检查ip

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值