目录
配置mapred-site.xml----包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等
草...首先要有一个完全分布式的hadoop集群,所以此文跳到完全分布式hadoop集群的搭建,不过估计也就安装hadoop麻烦点吧,大概.....
准备工作
vmware安装centos并配置ip地址
首先准备3个虚拟机,centos7的,设置内存4G,磁盘20G,单文件存储,没有4G内存按喜好设,我也不知道会咋样
装好后网卡选择NAT模式,这样能公用主机网络,下载东西方便,然后查看你的虚拟网络编辑器下的nat模式,记下网关(实际就是入网路由器地址), 子网掩码,后续有用。
顺便说下,我网关用的本机ipconfig的网关,子网掩码也是本机的子网掩码。
因为不论在家还是在公司都是都是局域网,所以本机ip基本不变,所以把3台虚拟机的ip地址也固定,em...顶多家里一套ip公司一套ip,记下脚本
cd etc/sysconfig/network-scripts/
vi ifcfg-ens33
#增加并修改如下
bootProtocal=static 原来是dhcp动态主机配置协议,dhcp服务器会给启动的主机随机分配ip,我们指定ip,所以改为static
onboot=yes 重启生效?
IPADDR=你的ip,别跟网关相同,但是又要处于同一网段
NETMASK=刚刚记下的子网掩码
GATEWAY=刚刚记下的网关
然后
service network restart 重启网络
ip addr 看下新ip生效没
centos7开放端口
实在被vmware的窗口弄得受不了,决定用xshell去连接它,所以得先开下端口,没记错ssh用的是22,开
看一下现在打开的端口,发现全关着
firewall-cmd --zone=public --list-ports
22号端口开
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload # 重启防火墙生效
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #顺便记录个关闭端口的命令
#最后嫌麻烦我选择全部关闭
启动: systemctl start firewalld
查状态:systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
xshell一连,美滋滋
其他准备
配置本虚拟机域名,不然老是一堆文件改ip地址,我给我的3台虚拟机命名menber3,menber2, menber1
vi /etc/hosts
配置ssh免密登陆,因为hadoop各节点间通信如果还得输入密码很麻烦
#在menber3上生成公钥
ssh-keygen -t rsa
#分发至
ssh-copy-id menber3
ssh-copy-id menber2
ssh-copy-id menber1
#在menber2,menber1上重复以上步骤,都生成公钥,然后都分发到3台机子
接下来要安装jdk
要不是云hbase太贵,serverless模式又不支持pheonix,我真的不想重复装这些
用yum先看下云库里有什么java包
yum -y list java
#竟然发现虚拟机无法识别别人域名
vi /etc/resolv.conf
nameserver 114.114.114.114
#安装java1.8
yum install java-1.8.0-openjdk* -y
#默认jre jdk 安装路径是/usr/lib/jvm 下面,这特么是个隐藏目录 ls -a可以看到
#配置到环境变量
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
#使配置生效
. /etc/profile
安装hadoop2真分布式
终于开始安装大数据组件了.......预计这样装,网上抄的图
配置hadoop-env.sh
该文件的主要是配置hadoop的环境变量。例如守护进程的JVM启动参数:java堆大小和垃圾回收策略等。在这个文件中还可以设置HBase配置文件的目录、日志目录、SSH选项、进程pid文件的目录等。
#发现wget用不了,就没法下载相关包,安装下
yum -y install wget
#选定一台作为主,在上面安装hadoop
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
#压缩包出现了,把他解压到 /usr/local/hadoop-2.8.5目录下
mkdir /usr/local/hadoop-2.8.5
tar -zxvf hadoop-2.8.5.tar.gz -C /usr/local/hadoop-2.8.5
#跑到hadoop目录里去改配置
vi /usr/local/hadoop-2.8.5/hadoop-2.8.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_PID_DIR=/var/hadoopdata/pids
export HADOOP_LOG_DIR=/var/hadoopdata/logs
配置core-site.xml
#先把这个目录创建出来用于存储hadoop的临时文件
mkdir /var/hadoopdata/tmp/
#添加配置,分别为nameNode接收Client连接的RPC端口,和临时目录
vi /usr/local/hadoop-2.8.5/hadoop-2.8.5/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://menber3:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoopdata/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
#配置secondaryNameNode路径
#设置每个文件有两个副本
#dfs.namenode.name.dir是保存FsImage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata
#dfs.datanode.data.dir是存放HDFS文件系统数据文件的目录,作用是存放hadoop的数据节点datanode里的多个数据块
#dfs.namenode.http-address是nameNode的http访问网址
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>menber1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/var/data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/var/data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>menber3:8084</value>
</property>
</configuration>
配置yarn-site.xml----集群资源管理系统参数
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.localizer.address</name>
<value>0.0.0.0:8140</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>menber3</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://menber1:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>menber3:3206</value>
</property>
</configuration>
配置mapred-site.xml----包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>menber1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>menber1:19888</value>
</property>
</configuration>
复制Hadoop配置好的包到其他Linux主机
scp -r ./hadoop-2.8.5 root@menber2:/usr/local/
scp -r ./hadoop-2.8.5 root@menber1:/usr/local/
停止启动
#必须先在主节点初始化集群,不然你会发现你集群没按你指定的端口启动
./bin/hadoop namenode -format
./bin/hadoop datanode -format
start-all.sh
stop-all.sh
#如果运气不好有进程杀不死,只能ps查看一个个杀了
到menber1启动yarn日志系统,start-all.sh并不会帮你启动它,导致在yarn控制台无法看到任务日志
https://blog.csdn.net/qq_26950567/article/details/106453770
查看hdfs的页面
http://10.118.239.239:8084
查看 YARN Web页面
http://10.118.239.239:3206/cluster
玩转控制台
来一个mapReduce任务
#查看有哪些mapReduce案例
hadoop jar /usr/local/hadoop-2.5.8/hadoop-2.5.8/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.8.jar
#在hdfs中准备好input目录:
hadoop dfs -mkdir /input
hadoop dfs -mkdir /output
#上传一个文件到hdfs, 假定文件名称为wordcount
hadoop dfs -put wordcount /input/wordcount
#执行
hadoop jar hadoop-mapreduce-examples-2.8.5.jar wordcount /input/wordcount /output/wordcount-result
点击hdfs的web页面--utilities可以下载,如果下载不了,检查自己宿主机的hosts文件有没有配上menber1,menber2,menber3