爲了進行遠程調試,在基本的Hadoop配置上修改幾個點:
首先修改主機名映射,修改/etc/hostname中的主機名,例如hadoop,然後在/etc/hosts文件中定定義ip地址 和主機名映射,例如 114.223.33.3 hadoop。
然後在配置一般配置過程中的localhost修改爲0.0.0.0,後面具體說明。
添加新的hadoop用戶。注意Ubuntu下是adduser不是useradd否則/home下沒有對應的家目錄。 並通過sudo adduser hadoop sudo爲其添加管理員權限。
切換至hadoop用戶:su - hadoop(- 表示同時切換環境,切換回root使用 sudo su)。
更新apt: sudo apt-get update
安裝jdk: sudo apt-get install openjdk-8-jdk
查看路徑:dpkg -L openjdk-8-jdk
配置環境變量: sudo vi ~/.bashrc 修改系統配置,添加如下(javahome的值看上圖):
# java,:表示追加內容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile啓用
java -version查看版本,成功顯示即配置成功。
安裝SSH、配置SSH無密碼登陸 Hadoop是分佈式系統,通過網絡操作,需要配置ssh。集羣、單節點模式都需要用到 SSH 登陸(類似於遠程登陸,你可以登錄某臺 Linux 主機,並且在上面運行命令),Ubuntu 默認已安裝了 SSH client,此外還需要安裝 SSH server
安裝: sudo apt-get install openssh-server
登陸:ssh 主機名
退出:exit
現在設置免密登陸。
cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh 主機
ssh-keygen -t rsa # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授權
安裝Hadoop:
建立新文件夾:mkdir /usr/localhost/hadoop
轉到:cd /usr/localhost/hadoop
下載
wget http://mirrors.hust.edu.cn/apache/hadoop/common/stable2/hadoop-2.7.4.tar.gz
解壓:tar -zxvf hadoop-2.7.4.tar.gz
Hadoop配置
Hadoop2.7的配置文件都放在 hadoop-2.7.4/etc/hadoop 中,下面需要修改幾個配置文件。
vim ./etc/hadoop/hadoop-env.sh ,進入修改配置文件 將其中的export JAVA_HOME的註釋取消,並修改成java安裝路徑(可以使用; $JAVA_HOME查看)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
hdfs-site.xml ,在新建目錄dfs/name和dfs/data,作爲namenode和datanode的路徑,這裏是設置namenode和datanode兩個節點的路徑,來模擬分佈式.
mkdir dfs
mkdir dfs/data
mkdir dfs/name
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/localhost/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/localhost/hadoop/dfs/data</value>
</property>
core.site.xml,在/myhadoop目錄下建立tmp文件夾,配置默認設置,否則每次啓動Hadoop都要重新配置。。
# 注意這裏其他人一般配置爲localhost,但是我們要設置爲0.0.0.0,否則無法連接
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/myhadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
若要全局使用Hadoop,需要設置一下hadoop的環境變量 同樣的 進入/etc/profile 修改如下(記得通過source ~/.bashrc生效):
# java, the : is Signify that add operation
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# hadoop
export HADOOP_HOME=/usr/local/hadoop/hadoop2.7.4
export PATH=$PATH:$HADOOP_HOME/bin
格式化並啓動Hadoop:格式化namenode 在hadoop安裝目錄下執行。
完成之後,可以看到exit 0 就表示成功格式化
./bin/hdfs namenode -format
./sbin/start-all.sh
通過jps查看,顯示下圖成功。
ps:如果格式化不成功或者需要重新格式化會導致namenode和datanode中的clusterID數值不一致,將namenode中的編號複製到datanode中。