關於幾個疑問和幾處心得!html
a.用NAT,仍是橋接,仍是only-host模式?java
b.用static的ip,仍是dhcp的?node
答:staticlinux
c.別認爲快照和克隆不重要,小技巧,比別人靈活用,會很節省時間和大大減小錯誤。web
d.重用起來腳本語言的編程,如paython或shell編程。shell
對於用scp -r命令或deploy.conf(配置文件),deploy.sh(實現文件複製的shell腳本文件),runRemoteCdm.sh(在遠程節點上執行命令的shell腳本文件)。apache
e.重要Vmare Tools加強工具,或者,rz上傳、sz下載。編程
f.大多數人經常使用tomcat
用到的所需:bash
一、VMware-workstation-full-11.1.2.61471.1437365244.exe
二、CentOS-6.5-x86_64-bin-DVD1.iso
三、jdk-7u69-linux-x64.tar.gz
四、hadoop-2.6.0-cdh5.4.5.tar
五、apache-cassandra-2.2.1-bin.tar.gz
六、apache-flume-1.6.0-bin.tar.gz
七、apache-tomcat-7.0.65.tar.gz
八、flume-ng-1.5.0-cdh5.4.5.tar.gz
九、hbase-1.0.0-cdh5.4.5.tar.gz
十、hive-1.1.0-cdh5.4.5.tar.gz
十一、protobuf-2.5.0.tar.gz
十二、sqoop-1.4.5-cdh5.4.5.tar.gz
1三、zookeeper-3.4.5-cdh5.4.5.tar.gz
機器規劃:
192.168.80.11 ---------------- CDHNode1
192.168.80.12 ---------------- CDHNode2
192.168.80.13 ---------------- CDHNode3
目錄規劃:
一、安裝目錄:
/home/hadoop/app/
二、數據存放目錄:
dfs.namenode.name.dir ---file:/home/hadoop/data/name //存放元數據
dfs.datanode.data.dir ---file:/home/hadoop/data/datanode //datanode數據存放目錄
dfs.namenode.edits.dir---file:/home/hadoop/data/hdfs/edits //存放編輯日誌
dfs.journalnode.edits.dir--/home/hadoop/data/journaldata/jn //存放編輯日誌同步數據
dfs.hosts.exclude--/home/hadoop/app/hadoop-2.6.0-cdh5.4.5/etc/hadoop/excludes //它是一個文件排除host
三、進程pid:
export HADOOP_PID_DIR=/home/hadoop/data/pid //存儲hadoop 常駐進程pid
export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/data/pid //datanode進程 pid
四、臨時目錄:
/home/hadoop/data/tmp
第一步:安裝VMware-workstation虛擬機,我這裏是VMware-workstation11版本。
詳細見 ->
第二步:安裝CentOS系統,我這裏是6.6版本。推薦(生產環境中經常使用)
詳細見 ->
第三步:VMware Tools加強工具安裝
詳細見 ->
第四步:準備小修改(學會用快照和克隆,根據自身要求狀況,合理位置快照)
詳細見 ->
一、ssh的安裝(SSH安裝完以後的免密碼配置,放在後面)
二、靜態IP的設置
三、hostname和/etc/hosts
四、永久關閉防火牆
五、時間同步
1 軟件環境準備
虛擬機 |
VMWare11 |
操做系統 |
CentOS6.5 |
JDK |
|
遠程鏈接 |
XShell |
|
|
2 主機規劃
因爲我要安裝3個節點的集羣環境,因此咱們分配好ip地址和主機功能
|
CDHNode1 /192.168.80.11 |
CDHNode2 /192.168.80.12 |
CDHNode3 /192.168.80.13 |
namenode |
是 |
是 |
否 |
datanode |
否 |
是 |
是 |
resourcemanager |
是 |
是 |
否 |
journalnode |
是 |
是 |
是 |
zookeeper |
是 |
是 |
是 |
日誌採集服務器 |
是 |
是 |
否 |
採集服務器負載均衡 |
是 |
是 |
是 |
目標網站(web)程序 |
是 |
否 |
是 |
注意:Journalnode和ZooKeeper保持奇數個,最少很多於 3 個節點。
3 CDHNode一、CDHNode二、CDHNode3的靜態IP、網絡配置、主機名、用戶名和用戶組
一、 CDHNode一、CDHNode二、CDHNode3的Linux安裝省略,再也不贅述。
二、 CDHNode一、CDHNode二、CDHNode3的靜態IP、網絡配置、主機名、用戶名、用戶組
新建用戶組、用戶、用戶密碼、刪除用戶組、用戶(適合CentOS、Ubuntu)
groupadd hadoop 建立hadoop用戶組
useradd -m -g hadoop hadoop 新建hadoop用戶並增長到hadoop用戶組中
passwd hadoop hadoop用戶密碼,爲hadoop
‘’
4 、目錄規劃、下載必備軟件
目錄規劃
1、安裝目錄:
/home/hadoop/app/
2、數據存放目錄:
dfs.namenode.name.dir ---file:/home/hadoop/data/name //存放元數據
dfs.datanode.data.dir ---file:/home/hadoop/data/datanode //datanode數據存放目錄
dfs.namenode.edits.dir---file:/home/hadoop/data/hdfs/edits //存放編輯日誌
dfs.journalnode.edits.dir--/home/hadoop/data/journaldata/jn //存放編輯日誌同步數據
dfs.hosts.exclude--/home/hadoop/app/hadoop-2.6.0-cdh5.4.5/etc/hadoop/excludes //它是一個文件排除host
3、進程pid:
export HADOOP_PID_DIR=/home/hadoop/data/pid //存儲hadoop 常駐進程pid
export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/data/pid //datanode進程 pid
4、臨時目錄:
/home/hadoop/data/tmp
1、安裝目錄:
/home/hadoop/app/
2、數據存放目錄:
dfs.namenode.name.dir ---file:/home/hadoop/data/name //存放元數據
dfs.datanode.data.dir ---file:/home/hadoop/data/datanode //datanode數據存放目錄
dfs.namenode.edits.dir---file:/home/hadoop/data/hdfs/edits //存放編輯日誌
dfs.journalnode.edits.dir--/home/hadoop/data/journaldata/jn //存放編輯日誌同步數據
dfs.hosts.exclude--/home/hadoop/app/hadoop-2.6.0-cdh5.4.5/etc/hadoop/excludes //它是一個文件排除host
dfs.hosts.exclude--/home/hadoop/app/hadoop-2.6.0-cdh5.4.5/etc/hadoop/excludes //它是一個文件排除host
等到後面,解壓了hadoop-2.6.0-cdh5.4.5的安裝包後,再新建。
3、進程pid:
export HADOOP_PID_DIR=/home/hadoop/data/pid //存儲hadoop 常駐進程pid
export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/data/pid //datanode進程 pid
4、臨時目錄:
/home/hadoop/data/tmp
下載必備軟件
注:一、在CDHNode1節點上安裝,使用yum命令 ,參數-y表示,下載過程當中的自動回答yes,有興趣的話,能夠試試不加的狀況;install表示從網上下載安裝。
二、使用yum命令安裝軟件必須是root用戶。
一、安裝lrzsz,能夠方便在Xshell上,上傳和下載文件,輸入rz命令,能夠上傳文件,sz命令能夠從遠程主機上下載文件到本地。
二、安裝ssh服務器。
三、安裝ssh客戶端。
五、永久關閉防火牆、時間同步
只有在關機重啓後,生效。
關機後,重啓。再查看下
時間同步
一、咱們先使用date命令查看當前系統時間
若是系統時間與當前時間不一致,能夠按照以下方式修改。
二、查看時區設置是否正確。咱們設置的統一時區爲Asia/Shanghai,若是時區設置不正確,能夠按照以下步驟把當前時區修改成上海。
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三、下面咱們使用ntp(網絡時間協議)同步時間。若是ntp命令不存在,則須要在線安裝ntp
四、安裝ntp後,咱們可使用ntpdate命令進行聯網時間同步。
ntpdate pool.ntp.org
ntpdate pool.ntp.org
五、最後咱們在使用date命令查看,時間是否同步成功。
因而可知,咱們的時鐘同步,完成。
方便操做
一、 首先點擊新建按鈕,以下;在新建會話屬性對話框中輸入名稱和須要鏈接的主機ip地址。
二、 接下來點擊左側的用戶身份驗證,輸入要登陸主機的用戶名和密碼,點擊肯定,此時建立成功。
三、 在打開會話對話框中選中剛建立的CDHNode1,而後點擊鏈接
四、 此時鏈接成功,便可進行遠程操做
五、爲了之後方便打開遠程主機,咱們能夠把當前鏈接的主機添加到連接欄中,只需點擊添加到連接欄按鈕便可添加
這樣之後,就很方便啦。
六、上傳hadoop-2.6.0-cdh5.4.5.tar.gz安裝包和SSH免密碼登陸
在master上啓動start-dfs.sh,master上啓動namenode,在slave1和2上啓動datanode。
那這是如何作到的呢?有興趣,能夠看看。這就是要作免密碼登陸的必要!
這裏,三處都回車。
如今,來進入SSH免密碼登陸的設置。
總的來講:
一、 集羣裏的每臺機器本身自己的無密碼訪問設置
CDHNode1自己、CDHNode2自己、CDHNode3自己
CDHNode1自己
CDHNode2自己
CDHNode3自己
一、 集羣裏的每臺機器本身自己的無密碼訪問設置
CDHNode2與 CDHNode一、CDHNode3與CDHNode一、而後CDHNode1分發~/.ssh/ authorized_keys
CDHNode2與 CDHNode1
CDHNode3與 CDHNode1
cat ~/.ssh/id_rsa.pub | ssh hadoop@CDHNode1 'cat >> ~/.ssh/authorized_keys'
將CDHNode1的~/.ssh/ authorized_keys,分發給CDHNode2
知識點:用本身寫好的腳本,也能夠,或者,用scp命令
scp -r authorized_keys hadoop@CDHNode2:~/.ssh/
將CDHNode1的~/.ssh/ authorized_keys,分發給CDHNode3
至此,集羣間機器完成SSH免密碼登陸。
七、上傳jdk-7u79-linux-x64.tar安裝包和jdk環境變量配置
如果有自帶的java,必定將其卸載。
rpm -qa|grep java命令查出沒有
注意:
通常在生產上,部署一個集羣時候,咱們的用戶是不少的,好比有hadoop用戶、hbase用戶、hive用戶、zookeeper用戶等。。。
這樣,咱們若將jdk安裝到hadoop用戶的主目錄下,則出現其餘的用戶沒法使用,很麻煩,
強烈建議,安裝在/usr/local 或 /usr/share
實際上,jdk自帶的它默認就是安裝在這個目錄底下,嘿嘿
而我這裏,沒自帶,因此,沒對應的java目錄。
好,如今開始上傳jdk-7u79-linux-x64.tar.gz
在生產環境裏,通常jdk安裝在/usr/local或/usr/share。這裏,咱們選擇/usr/share
這裏要注意,知識點,必須是root用戶才能夠。
改下,uucp。並刪除,jdk壓縮包
退回到hadoop用戶
總結,在實驗裏,就沒分那麼多用戶了,hadoop用戶、hive用戶、zookeeper用戶、、、
配置在這個文件~/.bash_profile,或者也能夠,配置在那個全局的文件裏,也能夠喲。/etc/profile。
#java
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_60
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
爲了偷懶,
scp -r .bash_profile hadoop@CDHNode2:~
scp -r .bash_profile hadoop@CDHNode3:~
八、HDFS核心配置文件的配置和exclueds文件創立
學會技巧,通常,先在NotePad++裏寫好,
直接傳上去。
刪除壓縮包,留下壓縮後的文件夾。
其餘兩個同樣
cd hadoop-2.6.0-cdh5.4.5/etc/Hadoop
rm core-site.xml
rm hadoop-env.sh
rm hdfs-site.xml
rm slaves
rm yarn-env.sh
rm yarn-site.xml
其餘兩個同樣
接下來,將在NotePad++裏寫好的,直接上傳。
其餘兩個同樣
至此,HDFS核心配置文件的配置完成!
在,
如今,該是建立這個文件的時候了
touch /home/hadoop/app/hadoop-2.6.0-cdh5.4.5/etc/hadoop/excludes
其餘兩個同樣
九、zookeeper-3.4.5-cdh5.4.5.tar.gz的安裝、環境變量配置和hadoop-2.6.0-cdh5.4.5的環境變量配置
Zookeeper-3.4.5-cdh5.4.5.tar.gz
注意:hadoop-2.6.0-cdh5.4.5.tar.gz與Zookeeper-3.4.5-cdh5.4.5.tar.gz保持一致。
安裝在/home/hadoop/app/下,
CDHNode2和3的同樣
CDHNode2和3的同樣
並刪除壓縮包,
CDHNode2和3的同樣
CDHNode2和3的同樣
爲此,如今須要,對zookeeper-3.4.5-cdh5.4.5/下的zoo.cfg進行,修改配置。
修改地方是
dataDir=/home/hadoop/data/zookeeper
server.1=CDHNode1:2892:3892
server.2=CDHNode2:2892:3892
server.3=CDHNode3:2892:3892
分析:
由於,用到了目錄/home/hadoop/data/zookeeper,因此,咱們得新建好它。
下面,將zookeeper的安裝目錄放到環境變量裏去,以便在任何路徑下
這裏是~/.bash_profile
CDHNode2和3,都同樣
這裏,是,把hadoop-2.6.0-cdh5.4.5的環境變量配置好了,算是補的!
十、初始化hdfs(一次性操做)
a) 先啓動zookeeper,在安裝zookeeper的機器上執行./bin/zkServer.sh start
這裏安裝zookeeper的機器是,CDHNode一、2和3。
CDHNode1爲F,
CDHNode2爲L,
CDHNode3爲F,
總結,初始化一次,就能夠了。之後啓動,會自帶啓動。
Zookeeper之後仍是要本身啓動。
b) 在hadoop-2.6.0-cdh5.4.5啓動journalnode(全部journalnode節點都得起)
./sbin/hadoop-daemon.sh start journalnode
這裏,CDHNode一、2和3都要作。
CDHNode2和3同樣
c) 主節點(CDHNode1)的hadoop-2.6.0-cdh5.4.5執行
./bin/hdfs namenode -format
./bin/hdfs zkfc -formatZK
./bin/hdfs namenode
接着,會出現下面問題
buildSupportsSnappy()Z問題,解決連接:
知識點,CDH默認是沒有提供native庫的,須要咱們本身去編譯。
提供的是32位,咱們須要的是64位。編譯過程很複雜,
這裏如何去編譯呢?這裏是個知識點,我就在網上,找個別人已經編譯好了的64位。具體見連接: http://download.csdn.net/detail/tongyuehong/8524619
編譯好以後的native放到/home/hadoop/app/hadoop-2.6.0-cdh5.4.5/lib/
因此呀,看到了,最好仍是本身要掌握!!!加油
經過hadoop-2.6.0-cdh5.4.5.src.tar.gz來編譯,安裝snappy並生成hadoop native本地庫。
(大牛的教導:特意開設一個節點,專門來玩玩如apache、cdh這樣的hadoop源代碼編譯,來提高本身的橫向能力!並寫於博客。)
去吧,開啓一個新的節點,新的起點。
快照恢復
CDHNode二、3同樣。
先去製做native庫吧!