1. 程式人生 > >大資料平臺搭建------CDH單機部署

大資料平臺搭建------CDH單機部署

       從 17年十一月入職起,到中間經歷了畢業、春節、轉正。在工作崗位上學到了很多很多的東西,非常有幸遇到這麼一群人生導師,早就想把工作中趟過的坑,總結的文件,開個部落格記錄起來,一來可以給其他人蔘考,二來也是自己的一個複習吧。可是拖延症作祟,這事,一直耽擱,爭取以後每週至少總結兩篇。加油,未來的路很長!

----------------------------------------------------我是分割線-----------------------------------------------------------------

一、部署前的準備

1、檢查jdk是否安裝:參考jdk安裝配置文件(jdk7或jdk8,所有節點都要一致)

2、相容性建議:CentOS6.8+CDH5.11.x(x>1)+mysql5.x+jdk1.7u80

***CDH5.13以上包含kafka3.0,不支援jdk1.7***

***CDH不支援ipv6,需提前關閉***

二、線上安裝

(不推薦,安裝慢,失敗率高,原因你懂得)

參考文件:

1、下載CDH5的包,放在linux系統中,下載連結:

2、使用rpm安裝

$ sudo yum --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm

3、(可選)將Cloudera公鑰新增到庫中

$ sudo rpm --import https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera

 4、安裝偽分散式hadoop

MRv1

$ sudo yum install hadoop-0.20-conf-pseudo

YARN

sudo yum install hadoop-conf-pseudo

 5、啟動Hadoop並且驗證其是否工作正常

MRv1

$ rpm -ql hadoop-0.20-conf-pseudo

YARN

$ rpm -ql hadoop-conf-pseudo

 6、格式化NameNode

$ sudo -u hdfs hdfs namenode -format

 7、啟動HDFS,通過http://localhost:50070/來檢查是否正常啟動

for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

 8、建立Hadoop程序所需的目錄

$ sudo /usr/lib/hadoop/libexec/init-hdfs.sh

9、驗證HDFS檔案結構

 sudo -u hdfs hadoop fs -ls -R /

 10、啟動MapReduce/YARN

MRv1

for x in `cd /etc/init.d ; ls hadoop-0.20-mapreduce-*` ; do sudo service $x start ; done

YARN

$ sudo service hadoop-yarn-resourcemanager start

$ sudo service hadoop-yarn-nodemanager start

$ sudo service hadoop-mapreduce-historyserver start

 11、在namenode建立使用者目錄

$ sudo -u hdfs hadoop fs -mkdir -p /user/<user>

$ sudo -u hdfs hadoop fs -chown <user> /user/<user>

 12、啟動MapReduce例子

MRv1

建立執行目錄

sudo -u hdfs hadoop fs -mkdir -p /user/joe

sudo -u hdfs hadoop fs -chown joe /user/joe

建立輸入目錄並拷貝xml檔案準備測試

$ hadoop fs -mkdir input

$ hadoop fs -put /etc/hadoop/conf/*.xml input

$ hadoop fs -ls input

執行hadoop示例

$ /usr/bin/hadoop jar

 /usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar grep input output 'dfs[a-z.]+'

檢視輸出

$ hadoop fs -ls output

YARN

建立執行目錄

sudo -u hdfs hadoop fs -mkdir -p /user/joe

sudo -u hdfs hadoop fs -chown joe /user/joe

建立輸入目錄並拷貝xml檔案準備測試

$ hadoop fs -mkdir input

$ hadoop fs -put /etc/hadoop/conf/*.xml input

$ hadoop fs -ls input

設定環境變數

$ export

HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce

執行hadoop示例

$ hadoop jar

/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep input output23 'dfs[a-z.]+'

檢視輸出

$ hadoop fs -ls output23

三、離線安裝

參考文件:

1、配置靜態IP(vmware的nat模式下)

(1)修改自己電腦的虛擬網絡卡VMware Network Adapter VMnet8——屬性——IPv4屬性設定靜態IP(此處設定的靜態IP要對應與VMware的虛擬網路編輯器中VMnet8的子網IP)

(2)、修改虛擬機器的IP

新增閘道器

vi /etc/sysconfig/network

GATEWAY=192.168.159.2(同虛擬網路編輯器中的nat設定中地址)

修改ip、子網掩碼

vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.159.10(最後一位自選10-255)

NETMASK=255.255.255.0

重啟網絡卡

service network restart或ifdown eth0;ifup eth0

*****************************問題*****************************

我們會克隆虛擬機器,克隆的機子沒有顯示網絡卡eth0,取而代之的是網絡卡 eth1

在原型機上找原型機的mac地址

vim /etc/udev/rules.d/70-persistent-net.rules(原型機上執行)

對比新機上的mac地址

vim /etc/udev/rules.d/70-persistent-net.rules(新機上執行)

發現新機上多個eth0和一個eth1,eth1是新機真實的mac地址,刪除多餘eth0,將eth1改成eth0,記錄下真實mac地址

重啟網絡卡和機器

service network restart

reboot


2、下載Hadoop與CDH對應版本,這裡選hadoop-2.6.0-cdh5.11.1.tar.gz

解壓到/home/hadoop下

tar -zxvf hadoop-2.6.0-cdh5.11.1.tar.gz -C /home/hadoop

3、關閉防火牆

service iptables stop

service ip6tables stop

4、配置全域性環境變數(追加)

vi /etc/profile

   JAVA_HOME=/opt/jdk1.7.0_80

   PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:HADOOP_HOME/sbin

   CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

   export HADOOP_HOME=/home/hadoop

   export JAVA_HOME

   export PATH

   export CLASSPATH

source /etc/profile

5、配置本機免密碼登入本機

ssh-keygen -t rsa

cat id_rsa.pub >> authorized_keys


6、配置hadoop_env.sh(追加)

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64

    export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

7、配置core-site.xml(追加在configuration裡)

vim $HADOOP_HOME/etc/hadoop/core-site.xml

   <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost</value>

   </property>

8、配置hdfs-site.xml(追加在configuration裡)

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

<property>

    <name>hadoop.tmp.dir</name>

    <value>/home/hadoop/hdfs</value>

</property>

<property>

    <name>dfs.namenode.http-address</name>

    <value>localhost:50070</value>

</property>

<property>

    <name>dfs.namenode.secondary.http-address</name>

     <value>localhost:50090</value>

</property>

9、配置yarn-site.xml(追加在configuration裡)

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

<property>

    <name>yarn.resourcemanager.hostname</name>

      <value>localhost</value>

</property>

<property>

      <name>yarn.nodemanager.aux-services</name>

      <value>mapreduce_shuffle</value>

</property>

<property>

      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

      <value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

10、配置slaves,如果已存在該檔案,且裡面是localhost,則不用修改,否則修改為localhost

vim $HADOOP_HOME/etc/hadoop/slave

遇到得問題:

     1、host檔案未修改

     2、hadoop_env.sh漏掉了一個$符

     3、忘了配置虛擬機器的dns伺服器,導致兩臺不能訪問外網

     3、yarn-site.xml粘貼出錯

     4、WARN util.NativeCodeLoader: Unable to load native-hadoop library foryour platform... using builtin-java classes where applicable