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访问界面
(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
2277

被折叠的 条评论
为什么被折叠?



