hadoop2.7.3伪分布式环境搭建详细安装过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop2.7.3伪分布式环境搭建详细安装过程相关的知识,希望对你有一定的参考价值。

参考技术A

新建hadoop目录,并创建source文件夹用来存放相关的软件。

vim /etc/profile

环境变量HADOOP_DATA_DIR=/mnt/hdfs

进入相应的路径

对要修改的文件进行备份

修改hadoop-env.sh

**修改core-site.xml **
在<configuration></configuration>增加hdfs的端口信息
增加的内容如下:

修改hdfs-site.xml
在<configuration></configuration>增加以下内容:

修改mapred-site.xml文件

修改yarn-site.xml文件
在<configuration></configuration>增加以下内容:

hadoop全部守护进程启动应该有5个,如下:

注意:
在搭建过程中遇到报错一定要去查看日志,然后再去解决问题,会事半功倍。错误日志所在目录为:hadoop的安装路径/logs

hadoop格式化时报错org.apache.hadoop.hdfs.server.namenode.NameNode。。。
我这里是由于之前安装过cognos,java环境变量设置的是cognos的自带java环境。
解决办法

由于执行的时候总是从$PATH的开始搜索可执行文件的位置,所以如果环境变量中已经设置了一个jdk,那么把新的jdk设置在PATH的开始才会有用。

jps发现少了nodemanager,于是查看日志文件hadoop-root-datanode-cognos.log
发现报了一下错误:

格式化并启动所有进程后没有datanode进程
查看datanode日志发现

这是由于datanode的clusterID 和 namenode的clusterID 不匹配造成的。
造成这个原因的操作是我刚开始配置 core-site.xml 的时候,hdfs的value配置的是: hdfs://localhost:9000 。而后来我又改成了hdfs://172.16.7.191:9000。这导致在两次执行格式化操作的时候datanode的clusterID 和 namenode的clusterID 不匹配。

解决办法

参考文章:
jdk版本切换
通过web端口查看主节点、slave1节点及集群运行状态

30分钟从零搭建hadoop+spark伪分布式环境

最近在学习大数据 重新搭一套环境hadoop3.2+spark3.0

网上教程很多 但是都会有很多坑 我自己搭的过程也是绕了一些弯路

现在把安装包和配置包都打包好 和教程一起分享给大家

有兴趣搭建的 一步步来是完全没有问题的

可以使用公有云esc 或者虚拟机

Hadoop+Spark安装文件和配置配置文件都打包分享

链接:https://pan.baidu.com/s/1yxKZopM4nyOmTQIa8ewoMg提取码:jsyy
软件环境:Hadoop3.2.1+Spark3.0.1 (java1.8 scala2.12)安装环境:Centos7安装路径:/home/Hostname:hadoop

1. 安装jdk和Scala

jdk-8u221-linux-x64.tar

scala-2.12.12

配置环境变量

vi /etc/profile

profile追加

#set java environmentJAVA_HOME=/home/jdk1.8.0_221(java_home实际位置)PATH=$PATH:$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME CLASSPATH PATH#Scala EnvSCALA_HOME=/home/scala-2.12.12PATH=$PATH:$SCALA_HOME/binexport SCALA_HOME CLASSPATH PATH

生效

. /etc/profile

检查是否配置成功

Java -version
scala -version


2. 安装hadoop和配置hadoop(伪分布式)

# tar -zxvf hadoop-3.2.1.tar.gz

设置自身免登陆

ssh-keygencat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keysssh root@localhost

一路回车 本地免密登录就设置好了

配置hadoop环境变量

vi /etc/profile

profile追加

#hadoopexport HADOOP_HOME=/home/hadoop-3.2.1export HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport HDFS_DATANODE_USER=rootexport HDFS_DATANODE_SECURE_USER=rootexport HDFS_NAMENODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

生效

. /etc/profile

 在hadoop里设置javahome

vi /home/hadoop-3.2.1/etc/hadoop/hadoop-env.shhadoop-env.sh添加export JAVA_HOME=/home/jdk1.8.0_221(java_home实际位置

l检查是否配置成功

Hadoop -version

 



 设置hadoop配置信息

最好直接复制分享包里的4个文件

vi /home/hadoop-3.2.1/etc/hadoop/core-site.xml


/home/hadoop-3.2.1/tmp创建tmp文件夹

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<description>指定HDFS Master(namenode)的通信地址,默认端口</description>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop-3.2.1/tmp</value>
<description>指定hadoop运行时产生文件的存储路径</description>
</property>

<property>
<name>hadoop.native.lib</name>
<value>false</value>
<description>是否应使用本机hadoop库(如果存在)</description>
</property>
</configuration>


vi /home/hadoop-3.2.1/etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>设置数据块应该被复制的份数</description>
</property>

<property>
<name>dfs.safemode.threshold.pct</name>
<value>0</value>
<description>小于等于0意味不进入安全模式,大于1意味一直处于安全模式</description>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
<description>文件操作时的权限检查标识, 关闭</description>
</property>
</configuration>
vi /home/hadoop-3.2.1/etc/hadoop/yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>

<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>


# vi /home/hadoop-3.2.1/etc/hadoop/mapred-site.xml :
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>yarn模式</description>
</property>

<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

</configuration>

最好直接复制分享包里的4个文件

格式化hdfs

hdfs namenode -format

30分钟从零搭建hadoop+spark伪分布式环境

修改hadoop启动文件防止和spark冲突

mv /home/hadoop-3.2.1/sbin/start-all.sh /home/hadoop-3.2.1/sbin/start-hadoop-all.shmv /home/hadoop-3.2.1/sbin/stop-all.sh /home/hadoop-3.2.1/sbin/stop-hadoop-all.sh

启动hadoop

start-hadoop-all.sh

30分钟从零搭建hadoop+spark伪分布式环境

关闭hadoop

stop-hadoop-all.sh

JPS检查是否允许运行成功


如果namenode没启动 应该要先关闭 然后# hadoop namenode -format 格式化一下

重新启动hadoop

 30分钟从零搭建hadoop+spark伪分布式环境

除开jps有上图5个hadoop就启动成功了

验证hadoop工作

Hostname 不能带下划线 不然hadoop job很有可能报错

WorkCount程序来检查hadoop工作是否正常:

创建input文件夹:

hdfs dfs -mkdir /input


将test.txt文件上传的hdfs的/input目录下:

hdfs dfs -put /home/hadoop-3.2.1/LICENSE.txt /input/test.txt

hadoop jar /home/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /input/test.txt /output/

30分钟从零搭建hadoop+spark伪分布式环境

类似这样的数据就是成功了


hdfs dfs -ls /outputhdfs dfs -cat /output/part-r-00000

30分钟从零搭建hadoop+spark伪分布式环境

能看到对英文单词的统计结果

 

3. 安装spark和配置spark

tar -zxvf spark-3.0.1-bin-hadoop3.2.tgzcp spark-3.0.0-bin-hadoop3.2 spark-3.0.0

设置环境变量

vim /etc/profile

 

增加一下配置:

#sparkexport SPARK_HOME=/home/spark-3.0.1export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

加载配置

 

. /etc/profile

修改配置


进入/spark-3.0.0/conf复制以下几个文件

mv spark-defaults.conf.template spark-defaults.confmv slaves.template slavesmv spark-env.sh.template spark-env.sh

修改spark-defaults.conf启用yarn模式

追加一行

spark.master yarn


修改spark的启动 关闭文件

mv /home/spark-3.0.1/sbin/start-all.sh /home/spark-3.0.1/sbin/start-spark-all.shmv /home/spark-3.0.1/sbin/stop-all.sh /home/spark-3.0.1/sbin/stop-spark-all.sh

启动 start-spark-all.sh 访问默认端口8080就可以看到spark是否成功了

start-spark-all.sh

 

Jps里面也可以看到 worker和Master

 30分钟从零搭建hadoop+spark伪分布式环境

 

到这里就全部安装完毕和运行起来了 如果遇到外网访问不到可以使用

iptables -AINPUT -ptcp --dport 端口 -jACCEPT

开启linux端口 如果是公有云记得配置安全组 开放端口


Hadoop主页:localhost:8088/cluster

30分钟从零搭建hadoop+spark伪分布式环境

Hdfs主页:localhost:9870/dfshealth.html#tab-overview

spark主页:localhost:8080/


最后祝大家学习顺利

以上是关于hadoop2.7.3伪分布式环境搭建详细安装过程的主要内容,如果未能解决你的问题,请参考以下文章

新手上路——hadoop2.7.3伪分布式模式环境搭建

Ubuntu16.04安装Hadoop2.7.3教程

Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2

Ubuntu16.04+hadoop2.7.3环境搭建

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

超详细从零记录Hadoop2.7.3完全分布式集群部署过程