Hadoop僞分佈式部署

1、創建賬戶
[root@hadoop1 ~]# useradd hadoop 添加賬戶
[root@hadoop1 ~]# passwd hadoop 設置密碼

2、調整hadoop賬戶 sudo權限
[root@hadoop1 ~]# vi /etc/sudoers
root ALL=(ALL) ALL
hadoop ALL=(root) NOPASSWD:ALL

注意: 如果root用戶無法修改sudoers文件,先動手爲root 賬戶添加寫權限
[root@hadoop1 ~]# chmod u+w /etc/sudo

3、關閉防火牆
[root@hadoop1 ~]# systemctl stop firewalld.service
[root@hadoop1 ~]# systemctl disable firewalld.service
[root@hadoop1 ~]# iptables -F

4、修改Hostname
[root@hadoop1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost
192.168.5.136 hadoop1

5、解壓JDK 以及設置環境變量
[hadoop@hadoop1 software]$ tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@hadoop1 software]# mv jdk1.8.0_171/ /usr/java 將JDK移至 /usr/java並重命名
設置環境變量:
[root@hadoop1 software]# vi /etc/profile
export JAVA_HOME=/usr/java
export CLASSPATH=.:$JAVA_HOME/lib:$JER_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

[root@hadoop1 software]# source /etc/profile 刷新生效
[root@hadoop1 software]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

6、切換Hadoop賬戶
[root@hadoop1 ~]# su - hadoop

7、創建存放 Hadoop文件的目錄

[hadoop@hadoop1 ~]$ sudo mkdir -p /opt/software

8、將hadoop文件夾的所有者指定爲hadoop賬戶
如果存放hadoop的目錄所有者不是hadoop,後續hadoop運行時可能會出現權限問題,爲此請將hadoop文件目錄修改爲hadoop

[hadoop@hadoop1 ~]$ chown -R hadoop:hadoop /opt/software/ 修改文件夾所有者

9、安裝rz軟件
[hadoop@hadoop1 ~]$ sudo yum install -y lrzsz 部署 rz 軟件

10、上傳 hadoop-2.6.0-cdh5.15.2.tar.gz 軟件到 /opt/software
解壓hadoop-2.6.0-cdh5.15.2.tar.gz
[hadoop@hadoop1 software]$ tar -zxvf hadoop-2.6.0-cdh5.15.2.tar.gz

11、配置hadoop環境變量
[hadoop@hadoop1 hadoop-2.6.0-cdh5.15.2]$ sudo vi /etc/profile
添加配置
exprot HADOOP_HOME=/opt/software/hadoop-2.6.0-cdh5.15.2
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
執行 [hadoop@hadoop1 hadoop-2.6.0-cdh5.15.2]$ source /etc/profile 刷新配置生效

驗證hadoop_home參數
[hadoop@hadoop1 hadoop-2.6.0-cdh5.15.2]$ echo $HADOOP_HOME
/opt/software/hadoop-2.6.0-cdh5.15.2

12、配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的 JAVA_HOME參數
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/software/hadoop-2.6.0-cdh5.15.2

13、core-site.xml 配置
[hadoop@hadoop1 tmp]$ vi /opt/software/hadoop-2.6.0-cdh5.15.2/etc/hadoop/core-site.xml
<configuration>

<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>

</configuration>

備註:
fs.defaultFS 參數用於配置HDFS的地址
hadoop.tmp.dir 配置是 hadoop臨時目錄,hdfs的NameNode數據默認都存放的目錄下,也就是NameNode 將HDFS的元數據存儲在tmp目錄下,但如果系統重啓,/tmp 目錄下的東西將被清空,導致NameNode元數據丟失,這樣將出現嚴重問題。
需單獨創建臨時目錄
[hadoop@hadoop1 tmp]$ sudo mkdir -p /opt/data/tmp
修改臨時目錄的所有者權限
[hadoop@hadoop1 tmp]$ chown -R hadoop:hadoop /opt/data/tmp/

14、hdfs-site.xml

<configuration>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop3:50090</value>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

</configuration>

備註:
dfs.replication 配置是hdfs存儲的備份數據,因爲這裏是僞分佈式環境只有一個節點,所以這裏是1

15、配置ssh localhost無密碼信任關係
[root@hadoop1 bin]# ssh-keygen -t rsa -P ''

[root@hadoop1 bin]# ls -hl /root/.ssh
total 8.0K
-rw-------. 1 root root 1.7K Apr 27 17:25 id_rsa 私鑰
-rw-r--r--. 1 root root 394 Apr 27 17:25 id_rsa.pub 公鑰

[root@hadoop1 bin]# cp -r /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 拷貝形成無需密碼登陸;
[root@hadoop1 bin]# ssh localhost date
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is cd:02:3c:7f:8a:42:ef:6c:ec:d8:1d:6c:36:99:ab:39.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Sat Apr 27 17:33:20 CST 2019

備註: 如果出現 提示需要 密碼 ,但這個用戶沒有配置密碼, 這時檢查一下 authorized_keys 所有者以及 修改權限
[hadoop@hadoop1 .ssh]$ chmod 600 /home/hadoop/.ssh/authorized_keys
[hadoop@hadoop1 .ssh]$ chown -R hadoop:hadoop /home/hadoop/.ssh/authorized_keys

16、格式化 HDFS
[hadoop@hadoop1 ~]$ /opt/software/hadoop-2.6.0-cdh5.15.2/bin/hdfs namenode -format
備註:
執行之前檢查一下 /etc/hosts 中是否有 IP及名稱映射

17、啓動

[hadoop@hadoop1 sbin]$ start-dfs.sh
19/04/30 12:03:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [hadoop1]

18、jps 命令查看是否啓動;
[hadoop@hadoop1 sbin]$ jps
3120 SecondaryNameNode
2707 DataNode
2590 NameNode
19327 Jps

19、HDFS 上測試創建目錄、上傳、下載文件

HDFS上創建目錄
[hadoop@hadoop1 sbin]$ hdfs dfs -mkdir /test
上傳本地文件到 HDFS上
[hadoop@hadoop1 sbin]$ hdfs dfs -put /opt/software/hadoop-2.6.0-cdh5.15.2/etc/hadoop/core-site.xml /test/
讀取HDFS上的內容
[hadoop@hadoop1 sbin]$ hdfs dfs -cat /test/core-site.xml
將文件下載到本地
[hadoop@hadoop1 tmp]$ hdfs dfs -get /test/core-site.xml

20、配置、啓動 mapred-sited

默認情況下mapred-sited.xml 不存在, 有一個mapred-site.xml.template臨時模板文件,可以複製模板文件即可;
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
添加配置
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
<configuration>

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

</configuration>

備註:
指定mapreduce運行在yarn框架上

21、配置 yarn-site.xml

添加配置如下:
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop1</value>
</property>

</configuration>

備註:
yarn.nodemanager.aux-services 配置yarn默認混洗方式,選擇爲 mapreduce的模式混洗算法;
yarn.resourcemanager.hostname 指定了resourcemanager運行在那個節點上;

22、啓動 Resourcemanager
[hadoop@hadoop1 hadoop]$ yarn-daemon.sh start resourcemanager
[hadoop@hadoop1 hadoop]$ /opt/software/hadoop-2.6.0-cdh5.15.2/sbin/yarn-daemon.sh start resourcemanager

查看是否啓動成功
[hadoop@hadoop1 hadoop]$ jps
3120 SecondaryNameNode
20513 ResourceManager
2707 DataNode
20740 Jps
2590 NameNode

23、YARN的 Web頁面

YARN的WEB客戶端端口號是 8088 通過 http://192.168.5.136:8088 可以查詢

24、運行 MapReduce Job
hadoop中share目錄中 自帶了一些jar包,有些關於 mapreduce實例;其地址 [hadoop@hadoop1 sbin]$ cd /opt/software/hadoop-2.6.0-cdh5.15.2/share/hadoop/mapreduce/
hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar 可以運行例子體驗Hadoop平臺,可從 WordCount實例開始

創建測試目錄文件
[hadoop@hadoop1 mapreduce]$ hdfs dfs -mkdir -p /wordcountdemo/input
創建個文件
[hadoop@hadoop1 mapreduce]$ touch wc.input
錄入內容
[hadoop@hadoop1 mapreduce]$ vi wc.input
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop

將 wc.input文件上傳至HDFS的/wordcountdemo/input目錄中
[hadoop@hadoop1 mapreduce]$ hdfs dfs -put wc.input /wordcountdemo/input
運行wordcountmapreduct job
[hadoop@hadoop1 mapreduce]$ yarn jar hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar wordcount /wordcountdemo/input /wordcountdemo/output

查看輸出結果
[hadoop@hadoop1 mapreduce]$ hdfs dfs -ls /wordcountdemo/output

25、HDFS 模塊
HDFS 負責大數據存儲,用過將大文件分塊後進行分佈式存儲,突破了服務器硬盤大小的限制,解決了單臺服務器無法存儲大文件問題,HDFS是相對獨立的模塊,可以爲Yarn提供服務,可以爲Hbse等其他模塊提供服務

26、YARN模塊
YARN是一個通用的資源協同和任務調度,爲了解決Hadoop1.x中Mapreduce裏NameNode負載太大和其他問題而創建的一個框架;
YARN是一個通用的框架,不止可以運行MapReduce,還可以運行在Spark,storm等其他技術框架;

27、MapReduce模塊
MapReduce是一個技術框架,它給出一種數據處理方式,即通過 map階段、Reduce階段來分佈式流式處理數據,它只適合大數據的離線處理,對於實時性要求很高的應用不適用

28、開啓歷史服務
Hadoop 開啓歷史服務可以在web頁面上查看Yarn上執行job情況的詳細信息;可以通過歷史服務器查看已經運行完成的Mapreduce作業記錄 例如 多少個Map,用了多少 Reduce,作業提交時間,作業啓動時間,作業完成時間
開啓歷史服務
[hadoop@hadoop1 mapreduce]$ mr-jobhistory-daemon.sh start historyserver
可以通過web頁面查看歷史服務器
http://192.168.5.136:19888/

29、開啓日誌聚集
MapReduce是在各個機器上運行的,在運行過程中會產生日誌並存儲在各個機器上面,爲了可以統一查看各個機器的運行日誌,將日誌集中存放在HDFS上,這個過程就是日誌聚集

配置日誌聚集功能
Hadoop默認是不開啓聚集的,在yarn-site.xml文件裏配置啓用日誌聚集
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>

</configuration>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章