1. 程式人生 > >阿里雲虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解(偽分散式環境)

阿里雲虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解(偽分散式環境)

首先先搭配安全組

開啟映象後輸入以下內容:

            重要:  yum -y install lrzsz

HOSTNAME=(自己的主機名字)
hostname $HOSTNAME
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts
sed -i "s/^HOSTNAME.*$/HOSTNAME=$HOSTNAME/g" /etc/sysconfig/network

編譯工作需要以下環境支援: 

jdk1.7(

1.8也是可以的 有一個包衝突了 改下hadoop-annotations下的jdk版本指向1.8就行了

)
apache-maven-3 
protobuf-2.5.0 
findbugs-1.3.9 
gcc gcc-c++ make cmake 
openssl zlib ncurses snappy bzip2 
lzo lzop autoconf automake

PS:將所有檔案上傳到 /tmp 目錄下

配置jdk1.7:

mkdir /usr/java
cd /usr/java/
tar -xf /tmp/server-jre-7u80-linux-x64.tar.gz
chown root: /usr/java/jdk1.7.0_80/ -R
echo 'export JAVA_HOME=/usr/java/jdk1.7.0_80'>>/etc/profile

配置maven:

cd /usr/local/
yum -y install unzip
unzip /tmp/apache-maven-3.3.9-bin.zip
chown root: /usr/local/apache-maven-3.3.9 -R
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.3.9'>>/etc/profile
echo 'export MAVEN_OPTS="-Xms256m -Xmx512m"'>>/etc/profile

編譯安裝protobuf:

yum -y install gcc gcc-c++ make cmake
cd /tmp/
tar -xf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf
make && make install
echo 'export PROTOC_HOME=/usr/local/protobuf'>>/etc/profile


配置findbugs:

cd /usr/local/
unzip /tmp/findbugs-1.3.9.zip
chown root: findbugs-1.3.9 -R
echo 'export FINDBUGS_HOME=/usr/local/findbugs-1.3.9'>>/etc/profile

最終PATH變數和其他依賴包的安裝

echo "export PATH=\
\$FINDBUGS_HOME/bin:\
\$PROTOC_HOME/bin:\
\$MAVEN_HOME/bin:\
\$JAVA_HOME/bin:\
\$PATH">>/etc/profile
source /etc/profile
java -version
mvn -version
protoc --version
findbugs -version
# 測試java和maven以及protoc和findbugs是否配置成功
yum install -y openssl openssl-devel \
    svn ncurses-devel zlib-devel libtool \
    snappy snappy-devel bzip2 bzip2-devel \
    lzo lzo-devel lzop autoconf automake \
    openssh-clients

編譯hadoop2.6-cdh5.7.1的安裝包

cd /tmp
tar -xf hadoop-2.6.0-cdh5.7.1-src.tar.gz
cd hadoop-2.6.0-cdh5.7.1
mvn clean package -Pdist,native -DskipTests -Dtar
# 該步需要通過網路下載和編譯,耗時較長
# 引數解釋:
# clean package 清除原來的包
# -Pdist,native 將生成的包放入本地的dist目錄
# -DskipTests 忽略測試
# -Dtar 生成tar包
# 編譯生成 hadoop-2.6.0-cdh5.7.1.tar.gz
# 目錄:/tmp/hadoop-2.6.0-cdh5.7.1/hadoop-dist/target
# 可以將編譯生成的tar包儲存下來,就不用再次編譯了。

(注意:進入 /tmp/hadoop-2.6.0-cdh5.7.1/hadoop-dist/target

輸入mv 將檔案移出)

編譯出來的安裝包的部署不在需要findbugs和maven以及protobuf,只需要jdk即可。 
可以重新克隆一臺實驗機,然後配置jdk,也可以清掉編譯機器的環境進行部署:

cd /usr/local/
rm -rf findbugs-1.3.9 apache-maven-3.3.9 protobuf
sed -i '/^export MAVEN_HOME=/d'    /etc/profile
sed -i '/^export MAVEN_OPTS=/d'    /etc/profile
sed -i '/^export FINDBUGS_HOME=/d' /etc/profile
sed -i '/^export PROTOC_HOME=/d'   /etc/profile
sed -i '/^export PATH=/d'          /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH'>>/etc/profile
source /etc/profile

配置HDFS

新增hadoop使用者,配置sudo許可權:

useradd hadoop
echo hadoop|passwd --stdin hadoop
sed -i 's/^root.*/&\nhadoop  ALL=(ALL)       ALL/g' /etc/sudoers

安裝編譯生成的hadoop包:

cd /usr/local
tar -xf /tmp/hadoop-2.6.0-cdh5.7.1.tar.gz
chown hadoop: hadoop-2.6.0-cdh5.7.1 -R
ln -s hadoop-2.6.0-cdh5.7.1/ hadoop
cd hadoop
echo 'export HADOOP_HOME=/usr/local/hadoop'>>/etc/profile
echo 'export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH'>>/etc/profilesource /etc/profile

切換到hadoop使用者,配置ssh互信

su - hadoop
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh -o StrictHostKeyChecking=no localhost date
ssh -o StrictHostKeyChecking=no 127.0.0.1 date
ssh -o StrictHostKeyChecking=no $(hostname) date

配置HDFS:

cd /usr/local/hadoop
vi etc/hadoop/core-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop001:9000</value>
    </property>
</configuration>

vi etc/hadoop/hdfs-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop001:50090</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.https-address</name>
        <value>hadoop001:50091</value>
    </property>
</configuration>

cd /usr/local/hadoop/etc/hadoop
echo $(hostname)>slaves# 修改hadoop的slave的解析地址

格式化namenode,啟動HDFS:

cd /usr/local/hadoop/etc/hadoop/
sed -i "s#export JAVA_HOME=.*#export JAVA_HOME=$JAVA_HOME#g" hadoop-env.sh
hdfs namenode -format
start-dfs.sh

程序狀態檢視:

jps
# 檢視NameNode、SecondaryNameNode和DataNode是否啟動
# 網頁訪問:
# http://自己IP:50070

偽分散式配置MR和Yarn

MR配置部署:

cd /usr/local/hadoop/etc/hadoop
cp -av mapred-site.xml{.template,}
vi mapred-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

YARN配置部署:

vi yarn-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

啟動:

start-yarn.sh

設定開機自動啟動HDFS和YARN:

echo "/bin/su - hadoop -c '/usr/local/hadoop/sbin/start-all.sh'">>/etc/rc.local

來自@若澤大資料


 

相關推薦

no