hadoop分布式环境搭建(持续更新中)

Hadoop运行环境搭建

虚拟机环境准备

  1. 准备一台虚拟机,操作系统centos7
  2. 配置虚拟机的静态ip
  3. 修改主机名为single并进行端口映射

vi /etc/hostname
single
vi /etc/hosts
192.168.184.200 single
—注意重启 reboot

  1. 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

  1. 配置时钟同步
    时间服务器配置(必须root用户)
  • yum下载安装ntp服务

yum -y install ntp
rpm -qa|grep ntp
软件
—ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
—ntpdate-4.2.6p5-10.el6.centos.x86_64

  • 修改ntp配置文件
    写一个定时同步网络时间到硬件的脚本

#crontab -e
*/1 * * * * /usr/sbin/ntpdate -u pool.ntp.org;clock -w

  • 重新启动ntpd

systemctl stop ntpd
systemctl status ntpd
systemctl start ntpd

  • 设置为开机自启,执行:

systemctl enable ntpd.service

  1. 在/opt目录下创建文件夹
    (1)在/opt目录下创建install、software文件夹,分别存放

mkdir download
mkdir software

安装jdk1.8

  1. 如果已经安装jdk1.8以上版本,可忽略此操作
  2. 用Xftp工具将jdk安装包导入到opt目录下面的software文件夹下面
  3. 在linux系统下的opt目录中查看软件包是否导入成功。

cd software/
ls
jdk-8u161-linux-x64.tar.gz

  1. 解压jdk到/opt/download目录下

tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/download

  1. 配置jdk软链接
  • 切换到jdk安装目录

cd /opt/download/

  • 创建软链接

ln -s /opt/download/jdk1.8.0_161 /opt/download/jdk

  1. 配置jdk环境变量
  • 先获取jdk路径:

cd /opt/download/jdk
pwd
/opt/download/jdk

  • 打开/etc/profile文件:
    注意:该系统文件如果存在格式错误等,重启后会导致设备无法启动,修改时请务必注意,或者可以修改用户变量vim /root/.bashrc

vi /etc/profile

  • 在profile文件末尾添加jdk路径:按i

#JAVA_HOME export JAVA_HOME=/opt/install/jdk export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

  • 保存后退出:按esc
    :wq
  • 让修改后的文件生效:

source /etc/profile

  1. 测试jdk是否安装成功:

java -version
java version “1.8.0_161”
注意:(如果java -version不可以用,重启尝试)
sync
reboot

安装Hadoop

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop官方网站:http://hadoop.apache.org/

Hadoop运行模式

伪分布式运行模式

启动HDFS
Hadoop的配置文件全部在$HADOOP_HOME/etc/hadoop目录下($HADOOP_HOME=/opt/software/hadoop/hadoop260,$$ JAVA_HOME=/opt/software/jdk180)

cd $HADOOP_HOME/etc/hadoop

  • 配置集群

      (a)配置:hadoop-env.sh
      	vi hadoop-env.sh 	
      	原版:export JAVA_HOME=$ JAVA_HOME} 
      	改写:export JAVA_HOME=/opt/software/jdk180
      
      (b)配置:core-site.xml
      	vi core-site.xml 	
      	改写:
      	<configuration>
      	<property>
      	<name>hadoop.tmp.dir</name>
      	<value>/opt/software/hadoop/hadoop260</value>
      	</property>
      	<property>
      	<name>fs.defaultFS</name>
      	<value>hdfs://single:9000</value>
      	</property>
      	</configuration>
    
      (c)配置:hdfs-site.xml
      	<configuration>
      	<property>
      	<name>dfs.replication</name>
      	<value>1</value>
      	</property>
      	<property>
      	<name>dfs.namenode.name.dir</name>
      	<value>/opt/software/hadoop/hadoop260/tmp/name</value>
      	</property>
      	<property>
      	<name>dfs.datanode.data.dir</name>
      	<value>/opt/software/hadoop/hadoop260/tmp/data</value>
      	</property>
      	</configuration>
    
  • 启动集群

      (a)格式化NameNode(第一次启动时格式化,以后就不要格式化,多次格式化会导致namenode无法启动)
      cd /opt/software/hadoop/hadoop260/bin
      hdfs namenode -format
      (b)启动集群
      cd /opt/software/hadoop/hadoop260/sbin/
      start-dfs.sh
    
  • 查看集群

      (a)查看是否启动成功
      [root@single hadoop]# jps
      1872 DataNode
      1745 NameNode
      2033 SecondaryNameNode
      2602 Jps
      (b)查看产生的log日志
      cd  /opt/software/hadoop/hadoop260/logs
      (c)web端查看HDFS文件系统
      http://single:50070/
    
  • 操作集群

      在hdfs文件系统上创建一个input文件夹,将测试文件内容上传到文件系统上,查看上传的文件是否正确
      cd /opt/software/hadoop/hadoop260/bin
      hdfs dfs -mkdir -p /user/hadoop/input
      hdfs dfs -put wcinput/wc.input  /user/hadoop/input/
      hdfs dfs -ls  /user/hadoop/input/
      hdfs dfs -cat  /user/hadoop/ input/wc.input
    
启动YARN上
  • 配置集群

      (a)配置:yarn-env.sh
      	vi hadoop-env.sh 	
      	原版:export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      	改写:export JAVA_HOME=/opt/software/jdk180
      
      (b)配置yarn-site.xml
      	<configuration>
      	<!-- Site specific YARN configuration properties -->
      	<!-- reducer获取数据的方式 -->
      	<property>
      	<name>yarn.nodemanager.aux-services</name>
      	<value>mapreduce_shuffle</value>
      	</property>
      	<!-- 指定YARN的ResourceManager的地址 -->
      	<property>
      	<name>yarn.resourcemanager.hostname</name>
      	<value>single</value>
      	</property>
      	</configuration>
    
    
      (c)配置mapred-env.sh
      	原版:export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      	改写:export JAVA_HOME=/opt/software/jdk180
      	
      (d)配置:mapred-site.xml
      mv mapred-site.xml.template mapred-site.xml
      
      	<configuration>
      	<property>
      	<name>mapreduce.framework.name</name>
      	<value>yarn</value>
      	</property>
      	</configuration>
    
  • 启动集群

      (a)启动前必须保证namenode和datanode已经启动
      (b)启动yarn
      cd /opt/software/hadoop/hadoop260/sbin/
      start-yarn.sh
    
  • 查看操作

      yarn的浏览器页面查看,yarn的web ui端口为8088
      http://single:8088/cluster
    
配置历史服务器
配置历史服务器可以查看MapReduce任务的详情信息,查看日志,定位错误
步骤如下:
- 配置mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.jobhistory.address</name>
<value>single:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>single:19888</value>
</property>
- 启动历史服务器
cd /opt/software/hadoop/hadoop260/sbin/
mr-jobhistory-daemon.sh start historyserver
- 查看历史服务器是否启动
jps
- 查看jobhistory
http://single:19888/jobhistory
配置日志的聚集
日志聚集概念:应用运行完成以后,将日志信息上传到HDFS系统上。方便查看
开启日志聚集功能步骤:
- 配置yarn-site.xml
 vi yarn-site.xml
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
- 关闭nodemanager 、resourcemanager和historymanager
cd /opt/software/hadoop/hadoop260/sbin/
yarn-daemon.sh stop resourcemanager
cd /opt/software/hadoop/hadoop260/sbin/
yarn-daemon.sh stop nodemanager
cd /opt/software/hadoop/hadoop260/sbin/
mr-jobhistory-daemon.sh stop historyserver
- 启动nodemanager 、resourcemanager和historymanager
cd /opt/software/hadoop/hadoop260/sbin/
yarn-daemon.sh start resourcemanager
cd /opt/software/hadoop/hadoop260/sbin/
yarn-daemon.sh start nodemanager
cd /opt/software/hadoop/hadoop260/sbin/
mr-jobhistory-daemon.sh start historyserver
- 测试:删除hdfs上已经存在的hdfs文件
cd /opt/software/hadoop/hadoop260/bin/
hdfs dfs -rm -R /user/hadoop/output
- 执行wordcount程序
hadoop jar
 share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/hadoop/input /user/hadoop/output
- 查看日志
http://single/19888/jobhistory
配置文件说明

完全分布式运行模式

1)准备3台客户机(关闭防火墙、静态ip、主机名称、创建Hadoop用户),主机名称分别hadoop102,hadoop103,hadoop104
2)安装jdk
3)配置环境变量
4)安装hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群

常见安装错误及解决方案

1)防火墙没关闭	
2)主机名称配置错误	
3)ip地址配置错误	
4)ssh没有配置好
5)root用户和hadoop两个用户启动集群不统一	
6)配置文件修改不细心	
7)namenode无法启动	
多次重新启动
删除datanode节点中的数据后,再次重新格式化namenode。
8)不识别主机名称	
在/etc/hosts文件中添加主机与ip的映射
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值