我的配置:
路徑:
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