CentOS下安裝hadoop

CentOS下安裝hadoop

用戶配置

添加用戶

adduser hadoop
passwd hadoop

權限配置

chmod u+w /etc/sudoers
vi /etc/sudoers
在
root    ALL=(ALL) ALL
下添加
hadoop    ALL=(ALL) ALL
chmod u-w /etc/sudoers

關閉防火牆

查看防火牆狀態

service iptables status

關閉防火牆

service iptables stop

查看防火牆開機啓動狀態

chkconfig iptables --list

關閉防火牆開機啓動

chkconfig iptables off

安裝JDK1.7

卸載系統自帶OpenJDK

查看目前系統jdk

rpm -qa | grep jdk

獲得結果:

java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64

卸載:

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64

下載JDK1.7

下載地址: jdk-7u79-linux-x64.tar.gz 下載html

上傳hadoop文件

使用Filezilla client把jdk-7u79-linux-x64.tar.gz放到CentOS目錄/usr/lib/jvm中(史上最簡單的上傳文件到linux系統方法)java

修改權限

sudo chmod u+x jdk-7u79-linux-x64.tar.gz

解壓JDK1.7

cd /usr/lib/jvm
sudo tar -zxvf ./jdk-7u79-linux-x64.tar.gz  -C /usr/lib/jvm

配置環境

打開profile文件:

sudo gedit /etc/profile

在文件最下邊輸入:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_4579
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_4579/jre
export CLASSPATH=.:$JRE_HOME/lib/tr.jar:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

使其馬上生效:

source /etc/profile

驗證是否成功

java -version

手動設置系統默認JDK

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_79/bin/jar 300
sudo update-alternatives --config java

配置SSH免密碼登錄

進入用戶的根目錄下

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

驗證是否安裝成功

ssh -version

登錄

ssh localhost

安裝Hadoop2.6.0

下載hadoop2.6

hadoop-2.6.0.tar.gznode

解壓hadoop-2.6.0.tar.gz

進入/usr/local/hadoop

sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop
sudo chown -R hadoop:hadoop ./hadoop

配置hadoop2.6.0環境

打開profile

sudo gedit /etc/profile

在最下邊添加:

# set hadoop path
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使其馬上生效:

source /etc/profile

修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79

僞分佈式Hadoop2.6.0配置

etc / hadoop / core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc / hadoop / hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

啓動Hadoop2.6.0

進入hadoop的bin目錄

cd /usr/local/hadoop/bin

格式化Hadoop的文件系統HDFS

hdfs namenode -format

進入hadoop的sbin目錄

cd /usr/local/hadoop/sbin

啓動全部進程

start-all.sh

成功的話,會看到 successfully formatted 的提示,且倒數第5行的提示以下,Exitting with status 0 表示成功,若爲 Exitting with status 1 則是出錯。若出錯(不應如此,請仔細檢查以前步驟),可試着加上 sudo, 既 sudo bin/hdfs namenode -format 再試試看。linux

關閉命令

stop-all.sh

用jps查看啓動的進程

Jps
ResourceManager
NameNode
DataNode
SecondaryNameNode
NodeManager

瀏覽器訪問:http://localhost:50070

hadoop進程管理頁面http://localhost:8088

問題

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

緣由是hadoop-2.6.0.tar.gz安裝包是在32位機器上編譯的,64位的機器加載本地庫.so文件時出錯,不影響使用。apache

解決:

一、從新編譯源碼後將新的lib/native替換到集羣中原來的lib/native
二、修改hadoop-env.sh ,增長
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

文檔參考:

  1. hadoop 2.6.0單節點-僞分佈式模式安裝
  2. Hadoop:設置一個節點集羣
  3. Hadoop安裝教程_單機/僞分佈式配置_Hadoop2.6.0/Ubuntu14.04
  4. Hadoop入門基礎教程之服務器基礎環境搭建
相關文章
相關標籤/搜索