centos7虚拟机安装hadoop

环境:VMware pro14
虚拟机配置:内存2G 硬盘100G 处理器1(每个处理器4核)centos7

centos7虚拟机安装 分区选择默认自动分

basecentos7 https://blog.csdn.net/paotianzhou/article/details/97923351
虚拟机复制要修改mac地址和ip地址
centos7

找到网关地址 编辑 -> 虚拟网络编辑器

网关地址

网关 192.168.20.2

本机vmnet8配置固定地址

设置vmnet8静态ip
虚拟机更改mac地址

00:0C:29:DB:E6:B1


image.png

CentOS 7.0虚拟机更改MAC地址和ip地址
vi /etc/sysconfig/network-scripts/ifcfg-xx
修改完重启生效

image.png

hosts
192.168.20.11 node02
192.168.20.12 node01
192.168.20.133 node03

secure CRT 连接三个节点,上传安装文件
alt+p 进入sftp> cd 想放置的路径 put 文件本地地址

解压jdk 安装
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/

配置环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_144
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/dt/jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

source /etc/profile

java、javac、java -version检验安装情况


image.png

建立hadoop用户
sudo useradd -m hadoop -s /bin/bash
设密码
sudo passwd hadoop
将hadoop加入用户组
usermod -g root hadoop
id hadoop
(为了后面方便)
root用户登录,进入到/etc目录。
执行chmod u+w /etc/sudoers给sudoers文件增加write权限。
执行vi /etc/sudoers 找到root ALL=(ALL) ALL这一行,一下面增加hadoop ALL=(ALL) ALL(注:hadoop为普通用户的用户名)
5,执行命令chmod u-w /etc/sudoers,撤销write权限。,
6,登录hadoop用户,进行测试。比如sudo cd /root 如果成功进入 /root目录说明配置成功

su hadoop 切换到hadoop用户
ssh免密登录
ssh-keygen -t rsa -P ''
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

把三个节点的 authorized_keys 的不同内容复制到一个authorized_keys里,再粘贴到每个节点的 authorized_keys 里
vi .ssh/authorized_keys
每台节点进行验证(第一次需要输入yesÏ)
ssh node01 date
ssh node02 date
ssh node03 date

同步时间(可选)
切换到root
yum -y install ntp
chkconfig ntpd on && service ntpd start
date

sudo vi /etc/profile

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export PATH={HADOOP_HOME}/sbin:$PATH

source /etc/profile

去压缩包所在的目录,解压hadoop
tar -zxvf hadoop-2.7.3.tar.gz -C /home/hadoop

节点规划:
node01 namenode、datanode
node02 datanode
node03 datanode

每个节点
cd /home/hadoop/hadoop-2.7.3/etc/hadoop/
修改 core-site.xml


fs.defaultFS
hdfs://node01:9000


hadoop.tmp.dir
/home/hadoop/hadoop-2.7.3/data/tmp

修改 hdfs-site.xml


dfs.replication
2

cp mapred-site.xml.template mapred-site.xml
修改 mapred-site.xml


mapreduce.framework.name
yarn

修改 yarn-site.xml



yarn.nodemanager.aux-services
mapreduce_shuffle


yarn.resourcemanager.hostname
node01

修改 slaves
node01
node02
node03

(单虚拟机安装好jdk,hadoop,配好环境变量这种相同的配置,复制整个虚拟机文件夹,然后进去改各自不同的配置)

启动

初始化 namenode (第一次需初始化或者删掉 temp.dir 的内容也初始化)
cd /home/hadoop/hadoop-2.7.3/bin
hdfs namenode -format


初始化 namenode

start-dfs.sh
start-yarn.sh
(或者直接start-all.sh,伪分布式)

启动集群
3节点输入jps 验证

查看浏览器界面
namenode 后台 http://192.168.20.133:50070/
yarn 后台 http://192.168.20.133:8088/

datanode

集群节点信息

(浏览器页面打不开去检查一下namenode的防火墙状态,防火墙关了才能访问
[root@node01 hadoop]# firewall-cmd --state
running
[root@node01 hadoop]# systemctl stop firewalld.service
[root@node01 hadoop]# firewall-cmd --state
not running
[root@node01 hadoop]# systemctl disable firewalld.service
(误以为复制虚拟机之前关了防火墙,而且因为互相之间能ping通所以没想到防火墙))

运行word count

创建路径
输入 hadoop fs -mkdir -p /input
输出 hadoop fs -mkdir -p /output
上传文件()
[hadoop@node01 test] hadoop fs -put 2.txt /input
put: `/data/wordcount/2.txt': File exists
执行wordcount程序(注:输入文件夹要有input,不然运行会提示找不到input)
hadoop jar /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount input output
(出现问题:一直卡在 Running job: job_1594537XXX,还报错java.net.NoRouteToHostException: No Route to Host from node01/192.168.20.133 to node02:38072 failed on socket timeout exception:,好像是连网连不上node02,后来发现node02 node03的防火墙开着,关掉之后可以执行)

运行结束

hdfs dfs -cat output/*


查看统计结果,(和人工数的结果一样)

启用jobhistory

可以更好的查看job的历史记录和管理job的日志。

文件名 mapred-env.sh

export HADOOP_MAPRED_LOG_DIR="/home/hadoop/logs/mapred"
export HADOOP_MAPRED_PID_DIR="/home/hadoop/data/pid"
修改 mapred-site.xml

mapreduce.jobhistory.address
node01:10020

修改 yarn-site.xml 做日志聚合,开启后job的日志不再存到node本地,而是上传到hdfs

yarn.log-aggregation-enable
true

重启集群
mr-jobhistory-daemon.sh start historyserver
jps查看 30786 JobHistoryServer
浏览器http://192.168.20.133:19888/ 或者从 application 页的 History 跳转
默认情况下,日志会分散在各个工作的datanode,查看非常麻烦;配置了日志聚合后则会上传到hdfs,各节点本地的会被删除,可以点击上图的 Job ID ,然后 ApplicationMaster -> logs 即可看到聚合后的日志或通过命令行查看聚合日志
yarn logs -applicationId [application id]

停止集群

stop-yarn.sh
stop-dfs.sh

你可能感兴趣的:(centos7虚拟机安装hadoop)