Hadoop在ubuntu下安装配置文件及出现问题
我的配置:
路径:
hadoop /home/flyuz/hadoop
jdk1.8.0_172 /opt/java/jdk1.8.0_172
eclipse /opt/eclipse
版本:
ubuntu16.04
hadoop 2.7.6
jdk1.8.0_172
相关软件从官网下载,安装Hadoop前需要先安装ssh,看https://www.cnblogs.com/flyuz/p/9555694.html
环境文件:
/etc/profile
#set java 别删path
export JAVA_HOME=/opt/java/jdk1.8.0_172
export JRE_HOME=/opt/java/jdk1.8.0_172/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
~/.bashrc
#set java
export JAVA_HOME=/opt/java/jdk1.8.0_172
#ser hadoop 经测试不弄这个也能用
export HADOOP_INSTALL=/home/flyuz//hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
Hadoop伪分布式配置
伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (gedit ./etc/hadoop/core-site.xml
),将当中的
<configuration> </configuration>
改为:(其中file 应该为你的hadoop文件夹根目录)
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
修改配置文件 hdfs-site.xml:(和上面一样)
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
配置完成后,执行 NameNode 的格式化:
./bin hadoop namenode -format
如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置 JAVA_HOME 环境变量那边就没设置好,请按教程先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。如果已经按照前面教程在.bashrc文件中设置了JAVA_HOME,还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop。
Spark安装:
http://dblab.xmu.edu.cn/blog/1307-2/
遇到的问题:
datanode 打不开, 原因 format次数过多,导致namenode的clusterID和datanode的clusterID 不匹配。
解决:
/home/flyuz/hadoop/tmp/dfs 中的data下的version中的clusterID复制成和name下的version一样的
eclipse中编译时出错:log4j
解决:在项目src目录中 创建log4j.properties的文本文件
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
配置完成后:
cd ~/hadoop/sbin/
start-all.sh 运行
jps 查看启动情况 应该有六个
SecondaryNameNode
Jps
NameNode
DataNode
ResourceManager
NodeManager