hadoop配置教程
前期准备⼯作:
1. 安装虚拟机 : VMware 或者 VirtualBox 2. 下载centos7
3. 安装linux系统 【安装失败,解决办法 : 重启电脑 进⼊电脑BISO界⾯ 修改CPU下的第3个 】 4. 安装linux系统时,注意打开⽹络配置
1.1步骤⼀ ⽹络配置:
配置静态ip :在虚拟机终端 进⼊超级⽤户 : su 密码
切换到⽬录下 :cd /etc/sysconfig/network-scripts 打开⽹管配置⽂件 : vim ifcfg-ens33
a) BOOTPROTO=\"static\" # 使⽤静态IP地址,默认为dhcp
b) IPADDR=\"192.168.***.***\" # 设置的静态IP地址 【与⽹关ip是⼀样的,最后⼀位不是0、2、255】 c) NETMASK=\"255.255.255.0\" # ⼦⽹掩码 d) GATEWAY=\"\" # ⽹关地址
e) DNS1=\"\" # DNS服务器 【输⼊⽹关地址】
【输⼊ i 写⼊ ,按Esc退出写⼊模式 再按shift + : 输⼊wq 保存退出;查看⽹关地址的⽅法 : 查看虚拟机中的虚拟⽹络编辑器 ,找NAT模式,复制⽹关lp】
重合服务 :service network restart
配置hostname的⽅法为 hostnamectl set-hostname 主机名 配置IP地址映射为 : vim /etc/hosts
systemctl restart network.service
1.2步骤⼆ SSH免密登陆配置
配置ssh免密登录 : 在虚拟机终端 安装ssh : rpm -qa|grep ssh
切换到⽬录下 :vim /etc/ssh/sshd_config
a) 修改原始⽂件内容的43内容去掉注释#(#PubkeyAuthentication yes) b) 在43⾏上添加⼀条:RSAAuthentication yes c) 同理在其他两台虚拟机上也配置⽂件 d) 重启sshd服务 : systemctl restart sshd
【systemctl restart sshd.servic 是centos6的命令,systemctl restart sshd.servic 是centos7的命令。】 切换到普通⽤户:exit a) 切换到 : cd ~
b) ⽣成公钥和私钥 : ssh-keygen c) 切换到ssh⽬录 : cd .ssh
d) 复制公钥 : cat id_rsa.pub >> authorized_keys e) 修改密钥⽂件相关权限 : chmod 0600 authorized_keys
f) 共享公钥 : ssh-copy-id -i id_rsa.pub ⽤户名@第⼆台虚拟机的hostnam
1.3步骤三 安装java环境
切换到超级⽤户 : su 密码 查看Java的版本 : java –version 使⽤命令安装jdk : rpm –qa|grep jdk
卸载java的旧版本(jdk1.8.0以及jdk1.7.0) : yum -y remove java-1.8.0* 使⽤xftp软件连接到虚拟机中,创建myfile⽂件夹并上传安装包。 a) 切换到根⽬录 : cd /usr b) 创建java⽬录 : mkdir java c) 切换到⽬录 : cd java
d) 解压安装包 :tar -zxvf /home/user/myfile/jdk 【安tab键 补全jdk的版本】 配置java的环境
a) 打开配置变量⽂件 : vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar b) 重新加载配置 : source /etc/profile c) 打印PATH : echo $PATH d) 查看java的版本 : java –version
1.4步骤四 安装hadoop环境
切换到超级⽤户 : su 密码 切换到⽬录下 : cd /usr/local
解压安装包 :tar -zxvf /home/user/myfile/hadoop 【安tab 键 补全hadoop版本】 切换到⽬录 : cd /usr/local/hadoop-2.9.2 cd etc/Hadoop
创建新⽂件 : vim /etc/profile.d/hadoop.sh 设置配置hadoop.sh⽂件 :
export HADOOP_HOME=/usr/local/hadoop-2.9.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 重新加载配置⽂件 : source /etc/profile.d/hadoop.sh 查看系统变量 :echo $PATH
设置配置⽂件的权限 :chown -R user /usr/local/hadoop-2.9.2 【必须3台电脑都设置】
1.5步骤五 配置hadoop系统信息
切换到⽬录 : cd /usr/local/hadoop-2.9.2 cd etc/Hadoop
配置 hadoop-env.sh ⽂件 :vim hadoop-env.sh a) 第25⾏修改为 : export JAVA_HOME=/usr/java/jdk版本
b) 第6⾏添加为 :export HADOOP_SSH_OPTS='-o StrictHostKeyChecking=no'
c) 第113⾏ 修改为 : export HADOOP_PID_DIR=${HADOOP_HOME}/pids 配置 mapred-env.sh ⽂件 : vim mapred-env.sh
a) 第16⾏修改为 : export JAVA_HOME=/usr/java/jdk版本
b) 第28⾏修改为 : export HADOOP_MAPRED_PID_DIR= ${HADOOP_HOME}/pids 配置 yarn-env.sh ⽂件 :vim yarn-env.sh
a) 第23⾏修改为 : export JAVA_HOME=/usr/java/jdk版本
b) 最后⼀⾏ 添加为 : export YARN_PID_DIR=${HADOOP_HOME}/pids 配置 core-site.xml ⽂件 : vim core-site.xml
在中间添加以下内容 : 【其中需要注意 : 中间的ip 是linux系统的ip】 fs.defaultFS
hdfs:⾃⼰设置的ip:9000
hadoop.tmp.dir
/usr/local/hadoop-2.9.2/hdfsdata
io.file.buffer.size 131072
配置 mapred-site.xml ⽂件 :因系统没有这个⽂件,需要复制。 cp mapred-site.xml.template mapred-site.xml vim mapred-site.xml
在中间添加以下内容 : mapreduce.framework.name yuan
配置 yarn-site.xml ⽂件 : vim yarn-site.xml
在中间添加以下内容 : yarn.resourcemanager.hostname master
yarn.nodemanger.aux-services mapreduce_shuffle
配置 slaves ⽂件 : vim slaves
先删除原有的localhost,依次输⼊从节点的主机名,回车时不要有空格。 同步配置⽂件
同步 hadoop.sh ⽂件 : 【切换到超级⽤户下】 scp /etc/profile.d/hadoop.sh root@从节点:/etc/profile.d/ ls -all ~/.ssh
cat ~/.ssh/known_hosts
同步 hadoop 配置⽂件 : 【切换到普通⽤户下】
scp -r /usr/local/hadoop-2.9.2/etc/hadoop/* user@从节点:/usr/local/hadoop-2.9.2/etc/hadoop/
1.6步骤六 关闭防⽕墙
1. 在所有虚拟机上关闭防⽕墙 : systemctl disable firewalld.service 【切换到超级⽤户下】2. 重启机器 : reboot 【重启所有的虚拟机】
3. 查看防⽕墙状态 : systemctl status firewalld.service 【 普通⽤户下输⼊】
1.7步骤七 格式化hadoop系统
格式化⽂件系统 :【切换到普通⽤户下】
1. 必须在主节点上 : hdfs namenode -format
2. 验证是否格式化成功:查看hadoop的安装⽬录下是否有hdfsdata⽂件夹 3. 切换到⽬录 : cd /usr/local/hadoop-2.9.24. 查看其下的所有内容 : ls
1.8步骤⼋ 启动hadoop
1. 启动全分布模式Hadoop集群的守护进程 a) 命令1:start-dfs.sh b) 命令2:start-yarn.sh
c) 命令3:mr-jobhistory-daemon.sh start historyserver 说明:
a) 命令1执⾏后,所产⽣的⽂件及服务
b) 启动的服务:主节点(NameNode SecondaryNameNode),从节点( DataNode ) 查看启动了哪些服务的⽅法: 命令:jps ⽣成的⽂件:
c) 在主节点的hadoop安装⽬录/hdfsdata/dfs中⾃动⽣成namesecondary⽬录及⽂件
在主,从节点的hadoop安装⽬录下⽣logs⽇志⽂件⽬录及⽂件,pids守护进程号⽬录及⽂件 在从节点的hadoop安装⽬录/hdfsdata/dfs中⾃动⽣成data数据块⽬录及⽂件 d) 命令2执⾏后,所产⽣的⽂件及服务
启动的服务:主节点(ResourceManager) 从节点(NodeManager) ⽣成的⽂件:在从节点的hadoop安装⽬录的hdfsdata下产⽣nm-local-dir⽂件⽬录及⽂件 ⽣成的⽂件:在个⽇志⽂件⽬录(logs)中,会⽣成各⽇志⽂件。 e) 命令3执⾏后,所产⽣的⽂件及服务
启动的服务:主节点(JobHistoryServer)
⽣成的⽂件:在各⽇志⽂件⽬录(logs)中,产⽣⽇志⽂件 注:与mapreduce有关的⽇志⽂件
1.9步骤九 验证hadoop集群
1. 步骤1:打开浏览器
2. 步骤2:输⼊⽹址(master的ip地址)
a) 192.168.246.128:50070 HDFS 进程的Web b) 192.168.246.128:8088 YARN 进程的Web c) 192.168.246.128:19888 MapReduce 进程的Web1. 运⾏第1个MapReduce程序—WordCount
a) 三⼤核⼼:存储(HDFS) 计算(MapReduce) 管理框架(yarn) b) 在根⽬录下,新建⼀个存放需要计算的⽂件的⽂件夹 (InputDataTest) c) hdfs dfs -mkdir /InputDataTest
d) 上传两个⽂件hadoop-env.sh ,mapred-env.sh
e) hdfsdfs-put /usr/local/hadoop-2.9.2/etc/hadoop/hadoop-env.sh /InputDataTest hdfs dfs -put /usr/local/hadoop-2.9.2/etc/hadoop/mapred-env.sh /InputDataTest
f) 运⾏WordCount( ⼯作⽬录:/usr/local/hadoop-2.9.2/share/hadoop/mapreduce/)
hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcout 源⽂件夹 ⽬标⽂件夹 功能:统计源⽂件中的每个字符的个数,将统计结果存放到⽬标⽂件中
⽰例:hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcout /InputDataTest /OutputDataTest g) 查看运⾏结果
h) hdfs dfs -ls /OutputDataTest
注意:会有两个⽂件(_SUCCESS:表⽰运⾏成功,没有任何内容)
part-r-00000:⾥⾯存放的运⾏结果,查看该⽂件内容的命令hdfs dfs -cat /OutputDataTest/part-r-00000
1.10步骤⼗ 退出hadoop集群
关闭Hadoop
说明:闭流程和启动流程相反,有以下三个命令 1. mr-jobhistory-daemon.sh stop historyserver 2. stop-yarn.sh 3. stop-dfs.sh