一.為什么要大數據學習?
這是一個大數據的時代,一個企業只有掌握了大數據才能把握住市場的命脈,一個人掌握了大數據就可以比較輕松的向機器學習、人工智能等方向發展。所以我們有必要去掌握大數據的技術同時也關注大數據的發展趨勢,不能裹足不前。
二.關於本專題的學習
作為一個普通本科大學生,在校的大數據學習比較的“水”,普通大學嘛,大家都懂。在一個就是編程實戰方向上的東西本來就該靠自學,而不是靠別人去教。我覺得大數據的學習是一個緩慢的過程,需要半年的時間去學習。我想在大二結束差不多就可以完成大數據最基本的學習了。(看看明年暑假能不能去個公司實習一下:-))因為這也是我也是第一次學習大數據,這一系列文章是我的學習筆記而不是我的工作經歷總結,其中難免有部分錯誤,還望前輩們不嗇賜教。
三.在阿里雲上安裝hadoop,同時集成6台雲主機
3.1版本說明:1.Linux centos7
2.Java jdk1.8
3.Hadoop Hadoop2.7.3
3.2 安裝Java
在這里我們使用的是Java 1.8,當然你也可以使用其他的版本,但是一定要是Linux版本的Java!
我們下載的壓縮包格式,下載到本地后通過winscp上傳到阿里雲上
下載鏈接 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我們在阿里雲上的opt文件夾下創建Java文件夾和hadoop文件夾如圖
我們將我們的Java壓縮包放到Java文件夾中去。
然后進入該文件夾執行解壓操作
進入該文件夾 cd /opt/java
解壓操作 tar -zxvf jdk-8u 191-linux-x64.tar.gz (注意你自己的jdk版本號和你自己的文件名)
解壓完成后會看見一個文件夾如下
接下來我們呢就要去配置文件了
修改/etc/profile文件 使用命令符 vim /etc/profile
在文件的最后加上
export JAVA_HOME=/opt/java/jdk1.8.0_191 (注意你自己的版本號)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
更改完后輸入命令命令符 Java、 javac、java -version。
出現下面的字符說明安裝成功:



3.3實現6個機子ssh免密碼登錄
檢查機器名稱
輸入命令符 hostname 可以查看你們的機器名稱,如圖:
其他的5台服務器也是分別為hserver2、hserver3、hserver4、hserver5、hserver6(這幾個為datenode)
修改映射文件輸入命令符vim /etc/hosts 將所有的服務器的主機ip地址和他們的hostname相對應
如圖:
修改完成后我們檢查一下是否能夠發送成功。
ping -c 3 hserver2
這樣就說明成功了,當然剩下的5台服務器也測試后成功了。
配置ssh文件
輸入命令 ssh-keygen -t rsa -P ''
在過程中需要輸入回車
然后ls /root/.ssh/ 出現下圖
查看id_rsa.pub vim id_rsa.pub
我們將所有主機中的id_rsa.pub 文件中的公匙復制到一個文件中authorized_keys,然后將authorized_keys放置到/root/.ssh/文件夾下
查看authorized_keys vim authorized_keys 如下:
測試是否ssh配置成功
依次檢查ssh hserver2 、3、4、5、6
第一次輸入一般會詢問鏈接 輸入yes
測試完后一定要關閉鏈接否者你在本機上的命令會在那一台機子上執行,
命令符 exit 退出
3.4安裝hadoop
下載hadoop到本地然后上傳到阿里雲上,解壓。資源網上都有可以去找 ,我這里使用的Hadoop版本為2.7.3下面解壓后所有的路徑你們根據你們的版本去修改。
我們的將Hadoop的壓縮包放到/opt/hadoop/文件夾下:
然后我們進入該文件夾 cd /opt/hadoop/
接着執行 tar -xvf hadoop-2.7.3.tar.gz (注意你們的文件版本名)解壓文件
解壓完成后你會的得到一個文件夾
然后創建如下幾個文件夾
mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data
修改配置文件:
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml
在<configuration>節點中寫入:
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hserver1:9000</value>
</property>
</configuration>
注意如果你的namenode的hostname不為hserver1你要改成你的namenode的hostname
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
將export JAVA_HOME=${JAVA_HOME}
修改為:
export JAVA_HOME=/opt/java/jdk1.8.0_191 (注意你自己的Java版本號)
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
在<configuration>節點中寫入:
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
在該版本中,有一個名為mapred-site.xml.template的文件,復制該文件,然后改名為mapred-site.xml,命令是:
cp /opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
在<configuration>節點內加入配置:
<property>
<name>mapred.job.tracker</name>
<value>hserver1:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/slaves
加入你的datenode的hostname
如下圖:
vim /opt/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
在<configuration>節點內加入配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hserver1</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>0.0.0.0:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>0.0.0.0:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>0.0.0.0:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>0.0.0.0:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>0.0.0.0:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>0.0.0.0:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每個節點可用內存,單位MB,默認8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
四.初始化hadoop和執行hadoop
cd /opt/hadoop/hadoop-2.7.3/bin 進入文件夾
./hadoop namenode -format 初始化腳本
格式化成功后,可以在看到在/root/hadoop/dfs/name/目錄多了一個current目錄,而且該目錄內有一系列文件
在namenode上去執行啟動命令
cd /opt/hadoop/hadoop-2.8.0/sbin (進入文件夾)
./start-all.sh (執行命令)
過程中所有詢問輸入yes
五.測試hadoop是否成功
namenode的地址為39.105.201.218
關閉防火牆 systemctl stop firewalld.service 后
打開:
http://39.103.201.218:50090/(HDFS管理界面)
http://39.103.201.218:8088/ (cluster頁面)
參考文章 https://blog.csdn.net/pucao_cug/article/details/71698903