自己动手5分钟搭建hadoop伪分布式
Posted uyuy34
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己动手5分钟搭建hadoop伪分布式相关的知识,希望对你有一定的参考价值。
-
下载并且解压hadoop-3.2.1和jdk1.8.0_161到指定目录 /opt/jdk 和hadoop
-
目录结构如下
-
找到并且配置hadoop环境
-
修改配置文件
etc/hadoop/core-site.xml: 核心配置文件 指定hdfs的地址
localhost=192.168.100.133
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
etc/hadoop/hdfs-site.xml:配置hdfs的备份数为1
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
2.设置无密码ssh
现在检查您是否可以在没有密码的情况下通过 ssh 连接到本地主机:
$ ssh localhost
如果没有密码,则无法通过 ssh 连接到本地主机,请执行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
3.执行
以下说明是在本地运行MapReduce作业。如果要在 YARN 上执行作业,请参阅单节点上的 YARN。
-
格式化文件系统:
$ bin/hdfs namenode -format
-
启动 NameNode 守护程序和 DataNode 守护程序:
$ sbin/start-dfs.sh
默认情况下启动NameNode出现错误
解决方法:编辑hadoop-env.sh
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"
Hadoop守护程序日志输出被写入
$HADOOP_LOG_DIR
目录(默认为$HADOOP_HOME/logs
)。 -
浏览 NameNode 的 Web 界面;默认情况下,它位于:
在windos访问 http://192.168.100.133:9870
-
名称节点 -
http://localhost:9870/ 成功运行如下
-
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 environment
JAVA_HOME=/home/jdk1.8.0_221(java_home实际位置)
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
#Scala Env
SCALA_HOME=/home/scala-2.12.12
PATH=$PATH:$SCALA_HOME/bin
export SCALA_HOME CLASSPATH PATH
生效
. /etc/profile
检查是否配置成功
Java -version
scala -version
2. 安装hadoop和配置hadoop(伪分布式)
# tar -zxvf hadoop-3.2.1.tar.gz
设置自身免登陆
ssh-keygen
cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh root@localhost
一路回车 本地免密登录就设置好了
配置hadoop环境变量
vi /etc/profile
profile追加
#hadoop
export HADOOP_HOME=/home/hadoop-3.2.1
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
生效
. /etc/profile
在hadoop里设置javahome
vi /home/hadoop-3.2.1/etc/hadoop/hadoop-env.sh
在hadoop-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
修改hadoop启动文件防止和spark冲突
mv /home/hadoop-3.2.1/sbin/start-all.sh /home/hadoop-3.2.1/sbin/start-hadoop-all.sh
mv /home/hadoop-3.2.1/sbin/stop-all.sh /home/hadoop-3.2.1/sbin/stop-hadoop-all.sh
启动hadoop
start-hadoop-all.sh
关闭hadoop
stop-hadoop-all.sh
JPS检查是否允许运行成功
如果namenode没启动 应该要先关闭 然后# hadoop namenode -format 格式化一下
重新启动hadoop
除开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/
类似这样的数据就是成功了
hdfs dfs -ls /output
hdfs dfs -cat /output/part-r-00000
能看到对英文单词的统计结果
3. 安装spark和配置spark
tar -zxvf spark-3.0.1-bin-hadoop3.2.tgz
cp spark-3.0.0-bin-hadoop3.2 spark-3.0.0
设置环境变量
vim /etc/profile
增加一下配置:
#spark
export SPARK_HOME=/home/spark-3.0.1
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
加载配置
. /etc/profile
修改配置
进入/spark-3.0.0/conf复制以下几个文件
mv spark-defaults.conf.template spark-defaults.conf
mv slaves.template slaves
mv 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.sh
mv /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
到这里就全部安装完毕和运行起来了 如果遇到外网访问不到可以使用
iptables -AINPUT -ptcp --dport 端口 -jACCEPT
开启linux端口 如果是公有云记得配置安全组 开放端口
Hadoop主页:localhost:8088/cluster
Hdfs主页:localhost:9870/dfshealth.html#tab-overview
spark主页:localhost:8080/
最后祝大家学习顺利
以上是关于自己动手5分钟搭建hadoop伪分布式的主要内容,如果未能解决你的问题,请参考以下文章