您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“HDFS怎么安裝”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“HDFS怎么安裝”這篇文章吧。
安裝java(大于1.6版本)
安裝ssh和rsync,并且啟動ssh服務
下載hadoop包,用編譯后的包,地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/
環境說明:
Linux發行版:centos6.5(64位,hadoop新版的只提供了64位包)
Hadoop版本:2.5.1
Java版本:1.7.0.67
設置了3個虛擬機,host為namenode(192.168.59.103),datanode1(192.168.59.104)和datanode2(192.168.59.105)
1.生成ssh key(namenode機器和datanode機器都是需要進行下面配置)
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys $ chmod 644 authorized_keys #該步驟在centos需要,在ubuntu是可以不用的
2.通過下面命令,如果可以直接登陸,說明免密碼登錄已經設置成功。
$ ssh localhost
3.在2臺datanode機器同樣生成自動登陸的ssh key,并將namenode的id_dsa.pub到datanode1和datanode2的.ssh的目錄下面
# 在namenode的機器,根目錄下面的.ssh $ scp id_dsa.pub hadoop@datanode1:~/.ssh/id_dsa.pub.namenode $ scp id_dsa.pub hadoop@datanode2:~/.ssh/id_dsa.pub.namenode # 在datanode1和datanode2的.ssh目錄下面 $ cat id_dsa.pub.namenode >> authorized_keys
4.驗證是否能通過ssh無密碼登錄到dataname1和datanode2,出現標紅的說明配置成功。
[hadoop@namenode .ssh]$ ssh datanode1 Last login: Sun Nov 30 11:03:52 2014 from 192.168.59.103 [hadoop@datanode1 ~]$ exit logout Connection to datanode1 closed. [hadoop@namenode .ssh]$ ssh datanode2 Last login: Sun Nov 30 11:03:15 2014 from localhost.localdomain [hadoop@datanode2 ~]$ exit logout Connection to datanode2 closed.
分別在namenode,datanode1和datanode2根目錄下面的.bash_profile配置下面內容:
# java環境變量 export JAVA_HOME=/home/hadoop/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # hadoop環境變量 export HADOOP_DEV_HOME=/home/hadoop/local/hadoop export PATH=$PATH:$HADOOP_DEV_HOME/bin export PATH=$PATH:$HADOOP_DEV_HOME/sbin export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME} export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME} export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME} export YARN_HOME=${HADOOP_DEV_HOME} export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后,需要重新登陸來加載環境變量(或者通過source ~/.bash_profile);通過下面的命令可以查看環境變量是否配置正常。
[hadoop@namenode ~]$ java -version java version "1.7.0_67" Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) [hadoop@namenode ~]$ hadoop Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters.
在namenode配置完成之后直接scp到其他datanode即可,這樣可以保證機器配置的一致性。
$ cd ~/local/hadoop/etc/hadoop
所有的配置文件都在這里。
打開hadoop-env.sh,配置jdk環境變量:
# 將export JAVA_HOME=${JAVA_HOME}替換為 export JAVA_HOME=/home/hadoop/local/jdk
配置yarn-env.sh:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 去掉注釋,并且替換為下面內容 export JAVA_HOME=/home/hadoop/local/jdk
配置slave文件(hdfs的datanode機器配置):
[hadoop@namenode hadoop]$ cat slaves namenode datanode1 datanode2
配置core-site.xml(hadoop的核心策略配置文件)
[hadoop@namenode hadoop]$ cat core-site.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.default.name</name> <value>hdfs://namenode:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp</value> <description>A base for other temporary directories.</description> </property> </configuration>
配置hdfs-site.xml(hdfs的策略配置文件):
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>namenode:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> <description>storage copy number</description> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
到此,整個hdfs的分布式文件系統就配置完成,把上面的hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml同步到datanode的機器上面。
通過下面命令進行操作
[hadoop@namenode hadoop]$ cd /home/hadoop/local/hadoop [hadoop@namenode hadoop]$ bin/hdfs namenode -format [hadoop@namenode hadoop]$ sbin/start-dfs.sh
第二個命令是為格式化整個hdfs的namenode節點,格式化之后會在配置的hadoop的name下面出現下面目錄結構
[hadoop@namenode hadoop]$ tree name name ├── current │ ├── edits_inprogress_0000000000000000001 │ ├── fsimage_0000000000000000000 │ ├── fsimage_0000000000000000000.md5 │ ├── seen_txid │ └── VERSION └── in_use.lock
在這個目錄中,有2個重要的文件:fsimage和edits。
其中fsimage鏡像文件包含了整個HDFS文件系統的所有目錄和文件的indoe信息。對于文件來說包括了數據塊描述信息、修改時間、訪問時間等;對于目錄來說包括修改時間、訪問權限控制信息(目錄所屬用戶,所在組等)等。
另外,edit文件主要是在NameNode已經啟動情況下對HDFS進行的各種更新操作進行記錄,HDFS客戶端執行所有的寫操作都會被記錄到edit文件中。
啟動dfs之后,從我們配置的data目錄可以看見下面目錄結果
[hadoop@namenode hadoop]$ tree data data ├── current │ ├── BP-441758184-192.168.59.103-1417330891399 │ │ ├── current │ │ │ ├── finalized │ │ │ ├── rbw │ │ │ └── VERSION │ │ ├── dncp_block_verification.log.curr │ │ └── tmp │ └── VERSION └── in_use.lock
執行put命令之后,可以看到一個文件在data中是如何存儲的。如下:
$ hadoop fs -put etc/hadoop/core-site.xml /data/input [hadoop@namenode hadoop]$ tree data data ├── current │ ├── BP-441758184-192.168.59.103-1417330891399 │ │ ├── current │ │ │ ├── finalized │ │ │ │ ├── blk_1073741827 │ │ │ │ └── blk_1073741827_1003.meta │ │ │ ├── rbw │ │ │ │ ├── blk_1073741825 │ │ │ │ ├── blk_1073741825_1001.meta │ │ │ │ ├── blk_1073741826 │ │ │ │ └── blk_1073741826_1002.meta │ │ │ └── VERSION │ │ ├── dncp_block_verification.log.curr │ │ ├── dncp_block_verification.log.prev │ │ └── tmp │ └── VERSION └── in_use.lock
以上是“HDFS怎么安裝”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。