关于Hadoop搭建经验
2021/11/15 23:40:15
本文主要是介绍关于Hadoop搭建经验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
步骤一:vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改虚拟机IP地址
vi /etc/hosts
192.168.10.10 master
192.168.10.11 slave1
192.168.10.12 slave2 记录各虚拟机IP地址,
vi /etc/hostname
master slave1 slave2
互相ping,使可以互相连接。
reboot
步骤二:systemctl stop firewalld 关闭防火墙 reboot
#ssh-keygen -t rsa生成密钥对
cd .ssh
cat id_rsa.pub
查看密钥
在.ssh下编辑.
vi authorized_keys
将密钥复制
保存退出
scp authorized_keys root@slave1:/root/.ssh/
scp authorized_keys root@slave2:/root/.ssh/
三台虚拟机互相连接
步骤三:
拖拽压缩包
# tar -xvf jdk-8u161-linux-x64.tar.gz
# mv jdk1.8.0_161/ /usr/local/jdk1.8
# cd /usr/local
在local目录下编辑
#vi /etc/profile 在末尾添加以下的内容:
export JAVA_HOME=/usr/local/jdk1.8/
export JRE_HOME=/usr/local/jdk1.8/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
之后执行命令:#source /etc/profile
- 从master虚拟机拷贝jdk到slave1和slave2;
参考命令:
#scp -r /usr/local/jdk1.8 root@slave1:/usr/local/
其中-r参数表示递归复制该目录下的所有目录和文件。
#scp -r /usr/local/jdk1.8 root@slave2:/usr/local/
#scp /etc/profile root@slave1:/etc/profile
#scp /etc/profile root@slave2:/etc/profile 从master虚拟机拷贝/etc/profile到slave1和slave2并执行
#source /etc/profile
步骤四、安装hadoop完全分布式集群
- 下载hadoop软件包解压到master虚拟机/usr/local/hadoop;
# tar -zxvf hadoop-2.6.0.tar.gz
移动Hadoop
mv hadoop-2.6.0/ /usr/local/hadoop注:在普通用户下移动
cd /usr/local/hadoop
mkdir tmp
vi /etc/profile
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:${PATH}
export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_HOME=${HADOOP_INSTALL}
export HADOOP_HDFS_HOME=${HADOOP_INSTALL}
export YARN_HOME=${HADOOP_INSTALLL}
cd /usr/local/hadoop/etc/hadoop
- vim hadoop-env.sh
注意这里写的路径要对应实际的路径,下同
- vim yarn-env.sh
- vim mapred-env.sh
- vim core-site.xml
注意这两个value的值,路径要修改为实际的路径,hdfs://master主机的主机名。
<configuration>
<property><!--hadoop临时文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property><!--NameNode 的URI默认端口为8020-->
<name>fs.default.name</name>
<value>hdfs://master</value>
</property>
</configuration>
- vim hdfs-site.xml
注意这里的value要改成实际情况中的路径,数据需要备份的数量不能大于集群的机器数量,默认为3,由于只准备了两台slave虚拟机,所以已经改成2了。
<configuration>
<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放块数据的本地文件系统路径-->
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
- vim yarn-site.xml
注意这里需要修改主机名为master虚拟机的主机名,其它的用默认的就行了。
<configuration>
<!-- Site specific YARN configuration properties -->
<property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property> <!--ResourceManager 对客户端暴露的地址-->
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property><!--ResourceManager 对ApplicationMaster暴露的地址-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property><!--ResourceManager 对NodeManager暴露的地址-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property><!--ResourceManager 对管理员暴露的地址-->
<name>yarn.resourcemanager.master.address</name>
<value>master:8033</value>
</property>
<property><!--ResourceManager 对外web暴露的地址,可在浏览器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
(7)vim mapred-site.xml (拷贝 mapred-site.xml.template)
#cp mapred-site.xml.template mapred-site.xml
#vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(8) vi slaves
Slave1
Slave2
#scp -r /usr/local/hadoop root@slave1:/usr/local/
#scp -r /usr/local/hadoop root@slave2:/usr/local/
scp /etc/profile root@slave1:/etc/profile
#source /etc/profile
步骤五、初始化hdfs,启动hadoop集群(20分)
查看防火墙systemctl status firewalld
- 在master虚拟机上执行hdfs初始化;
首先在进入相应的目录,例如:cd /usr/local/hadoop/bin
执行命令:./hadoop namenode -format
不报错的话,即执行成功,如图:
格式化成功后,可以在看到在hadoop/dfs/name/目录多了一个current目录
- 在master虚拟机使用脚本启动hadoop集群;
可以先进入相应的目录,例如:cd /usr/local/hadoop/sbin/
脚本启动hadoop集群: ./start-all.sh
在slave1和slave2中用jps检查是否成功启动。
这时可以用浏览器访问网页内容
停止集群 ./stop-all.sh
步骤六:#hdfs dfs -ls / 可以查看hdfs的根目录。
# hdfs dfs -mkdir /input 在根目录建立input目录
hdfs dfs -put /root/anaconda-ks.cfg /input
注意关闭防火墙
- 在master虚拟机运行hadoop例程中自带的wordcount程序
参考示例:注意路径可能不同,要写实际的路径。
# hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input/* /output
使用hdfs dfs -ls 命令查看wordcount程序运行结果目录
#hdfs dfs -ls / output
使用hdfs dfs -cat命令查看wordcount程序运行结果内容
# hdfs dfs -cat /output/part-r-00000
总结:
在学习中,遇到了各种错误,第一步可能会发生编辑的错误导致在xshell连接失败
还有net 桥连接要配置成功
第二步中容易将authorized_keys建立在其他目录,导致连接的失败
第三步中解压jdk1.8,我在操作的几遍中基本正确
第四步vi编辑要记住指令与
从master虚拟机拷贝hadoop到slave1和slave2中步骤要按部就班
第五步要关闭防火墙,在第二遍中因为防火墙没关导致在网页无法连接
第六步基本无错误
查看防火墙systemctl status firewalld
这篇关于关于Hadoop搭建经验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-05-13Windows下hadoop环境搭建之NameNode启动报错
- 2023-04-14hadoop伪分布式集群的安装(不是单机版)
- 2022-12-05Hadoop生态系统—数据仓库Hive的安装
- 2022-11-02Win10搭建Hadoop环境
- 2022-10-19Hadoop生态系统(数据仓库Hive的安装)
- 2022-10-03Hadoop、storm和Spark Streaming简单介绍
- 2022-10-03胖虎的Hadoop笔记——Hadoop的伪分布式部署
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-09Ubuntu下安装伪分布式HADOOP遇到的一些问题