Hadoop——环境搭建
序言
Centos7环境设置
1: 静态ip的设置
2:主机名的设置
vim /etc/sysconfig/network # 编辑network文件修改hostname行(重启生效)
HOSTANME=node1
或者通过命令
hostnamectl --static set-hostname node1
3:hosts文件的修改(ip和主机名的映射关系)
127.0.0.1 localhost node1 localhost4 localhost4.localdomain4
::1 localhost node1 localhost6 localhost6.localdomain6
192.168.22.129 node1
4:关闭防火墙——必须
- firewall-cmd --state #查看防火墙
- systemctl status firewalld #查看防火墙
- systemctl stop firewalld #临时关闭防火墙
- systemctl start firewalld #临时打开防火墙
- systemctl disable firewalld #开机禁止启动防火墙
- systemctl enable firewalld #开机启动防火墙
5:ssh免密码登录——必须
执行产生密钥命令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
执行产生命令:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
验证:ssh localhost
6:JDK的安装(jdk1.8) ——必须
本地模式安装
Hadoop本地模式只是用于本地开发调试,或者快速安装体验Hadoop,这部分做简单的介绍。
注意:本地模式不能hdfs,只能测试mapreduce。
1.拷贝hadoop
将hadoop-2.10.0.tar.gz拷贝并解压到/usr/local/hadoop目录
tar zxvf hadoop-2.10.0.tar.gz
2.配置hadoop环境变量
打开/etc/profile文件,配置hadoop环境变量 。
文件结尾新增以下配置
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#保存文件后执行以下命令刷新配置
source /etc/profile
3.修改配置文件hadoop-env.sh
vi hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
4.执行wordcount demo
建立测试输入文件/usr/local/hadoop/input/data1.txt
建立结果输出位置:/usr/local/hadoop/output
执行命令
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/local/hadoop/input/data1.txt /usr/local/hadoop/output/wordcountresult
查看结果
cat /usr/local/hadoop/output/wordcountresult/part-r-00000
伪分布式
分别修改四个配置文件
hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
core-site.xml
<configuration> <!-- 制定HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
hdfs-site.xml
<configuration> <!-- 指定HDFS保存数据副本的数量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
mapred-site.xml
<configuration> <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
注意如果没有mapred-site.xml而只有mapred-site.xml.template,要#cp mapred-site.xml.template mapred-site.xml(复制一份该模板mapred-site.xml.template更名为mapred-site.xml)
yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>192.168.229.133</value> <!--填写自定义的主机名/ip--> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>0.0.0.0:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>0.0.0.0:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>0.0.0.0:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>0.0.0.0:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>0.0.0.0:8088</value> </property> </configuration>
启动
hdfs namenode -format
start-dfs.sh
start-yarn.sh
start-all.sh
HDFS管理界面
http://localhost:50070/
http://192.168.229.133:50070
yarn MR管理界面
start-yarn.sh
stop-yarn.sh
http://localhost:8088
测试
HDFS简单测试
上传一个文件至HDFS : hadoop fs -put xxxx.tar.gz hdfs://192.168.229.133:9000/
从HDFS下载一个文件 : hadoop fs -get hdfs://192.168.229.133:9000/xxxx.tar.gz
MapReduce简单测试
这里直接运行一个hadoop自带的求圆周率的example:
cd /usr/local/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.10.0.jar pi 5 5
分布式集群模式
Win10安装(生产环境不推荐)
资料
https://www.cnblogs.com/qingyunzong/category/1169344.html