sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop
sudo vim /etc/sudoers // 添加如下內容 hadoop ALL=(ALL:ALL) ALL
tar xvz -f jdk-8u171-linux-x64.tar.gz sudo cp -r ~/Downloads/jdk1.8.0_171 /usr/lib/jvm
vim /etc/profile // 添加一下內容 export JAVA_HOME=/usr/lib/jvm export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH source /etc/profile
將Hadoop解壓縮到/usr/local下java
tar xvz -f hadoop-2.8.3.tar.gz sudo cp -r hadoop-2.8.3 /usr/local/ sudo ln -s /usr/local/hadoop-2.8.3 hadoopnode
配置環境變量linux
vim ~/.zshrc // 添加如下內容 # Java Variable Start export JAVA_HOME=/usr/lib/jvm export PATH=${JAVA_HOME}/bin:$PATH # Java Variable End # Hadoop Variable Start export HADOOP_INSTALL=/usr/local/hadoop export PATH=${HADOOP_INSTALL}/bin:$PATH export PATH=${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_INSTALL} export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/native export HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib" source ~/.zshrc
查看hadoop版本git
hadoop version // 獲得如下輸出 Hadoop 2.8.3 Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b3fe56402d908019d99af1f1f4fc65cb1d1436a2 Compiled by jdu on 2017-12-05T03:43Z Compiled with protoc 2.5.0 From source with checksum 9ff4856d824e983fa510d3f843e3f19d This command was run using /usr/local/hadoop-2.8.3/share/hadoop/common/hadoop-common-2.8.3.jar
另外,下載Hadoop3.0.*發現,提供了一個最新的安裝方法是使用docker安裝。安裝好docker後,執行start-build-env.sh腳本,會自動安裝全部用到的工具,準備好用於Hadoop源碼編譯的環境。而後用marven管理整個Hadoop項目。嘗試了一下,可使用,可是不會用docker,後面再看吧。另外安裝過程當中注意要麼更換鏡像源,要麼設置系統全局代理(命令行),否則不只速度感人,並且極可能會失敗docker
hadoop的配置文件在/usr/local/hadoop/etc/hadoop下,配置文件是xml格式的,每一個配置聲明都以name和value的形式說明。配置爲僞分佈式須要修改兩個配置文件:core-site.xml和hdfs-site.xmlapache
<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property>
兩個屬性,第一個配置了NameNode的主機地址和端口號,第二個配置了hadoop運行時產生的文件的路徑vim
<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>
三個屬性,第一個指定了hdfs保存數據的副本數量,分佈式中通常是3。下面兩個分別指定namenode和datanode的文件路徑jvm
注意輸出文件夾不容許已經存在,hadoop會本身建立分佈式
hdfd namenode -format // 格式化namenode hadoop/sbin/start-dfs.sh // 啓動hdfs hdfs dfs -mkdir -p /user/hadoop // 建立用戶目錄 hdfs dfs -rm -r -f output hdfs dfs -mkdir input hdfs dfs -put README.txt input hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.5-sources.jar org.apache.hadoop.examples.WordCount input output
這裏找到一個很詳細的教程 http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/工具