Hadoop 單機版和偽分布式版安裝
阿新 • • 發佈:2018-11-18
single 是否 reference 問題 需要 gif -c mode www.
1 依賴項
- java
- ssh
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
$ echo $JAVA_HOME
/path/to/jdk1.8.0_181
2 安裝和配置
這裏使用2.9.1版本:http://www.apache.org/dyn/closer.cgi/hadoop/common/
sudo useradd -m hadoop -s /bin/bash # 創建hadoop用戶 sudo passwd hadoop # 修改密碼 sudo adduser hadoop sudo # 增加管理員權限 $ cat /etc/passwd |tail -n 1 hadoop:x:10003:10003::/home/hadoop:/bin/bash $ ./bin/hadoop version Hadoop 2.9.1 Subversion https://github.com/apache/hadoop.git -r e30710aea4e6e55e69372929106cf119af06fd0e
2.1 單機版配置
默認情況下Hadoop就是起一個java進程來運行單機版的,到這裏可以使用單機版了,不需要額外的配置。
官方grep例子
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar #所有例子 $ mkdir input $ cp etc/hadoop/*.xml input $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep input output ‘dfs[a-z.]+‘ $ cat output/*
2.2 偽分布式配置
偽分布式模式下每個Hadoop守護進程都是一個獨立java進程。
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> <property> <name>dfs.namenode.name.dir</name> <value>file:/path/to/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/path/to/hdfs/data</value> </property> </configuration>
$ cd /usr/local/hadoop
$ bin/hdfs namenode -format # namenode 格式化
sbin/start-dfs.sh # 開啟守護進程
./sbin/stop-dfs.sh # 關閉
jps # 判斷是否啟動成功
$ hdfs dfs -ls / #列出/下所有文件
Found 2 items
drwxrwx--- - work supergroup 0 2018-10-11 22:04 /tmp
drwxr-xr-x - work supergroup 0 2018-10-11 21:55 /user
2.3 yarn
./etc/hadoop/mapred-site.xml :
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
./etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
$ ./sbin/start-yarn.sh # 啟動YARN
$ ./sbin/mr-jobhistory-daemon.sh start historyserver # 開啟歷史服務器,才能在Web中查看任務運行情況
$ jps
77153 DataNode
84726 JobHistoryServer
77003 NameNode
84269 ResourceManager # yarn
77341 SecondaryNameNode
56588 Jps
84572 NodeManager # yarn
resource manager 和 node manager共同組成 data-computation 框架。
yarn的理念是把 resource management 和 job scheduling/monitoring 拆分成獨立的守護進程。
架構如下:
有一個全局的RM,每個應用(單個job或者job組成的DAG)有一個AM。
RM包含2部分: Scheduler 和 ApplicationsManager。
其中Scheduler只負責資源分配,把 resource Container 作為和 memory, cpu, disk, network一樣的資源去管理。
AM負責接收提交的job,為了運行應用,要從 Scheduler 申請合適的 Container ,跟蹤其狀態,監控其進程,出問題要重啟。
ref: http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
3 web UI
yarn: http://localhost:8088/cluster
hadoop: http://localhost:50070/dfshealth.html#tab-overview
References
- http://dblab.xmu.edu.cn/blog/install-hadoop-simplify/
- http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
Hadoop 單機版和偽分布式版安裝