Hadoop 详细配置文档
準備配置:
1、用sudo gedit /etc/hostname ,在打開的文件里更改主機名
2、為了虛擬機之間能夠ping通,需要修改主機名
???sudo gedit /etc/hosts 命令,把對應的主機名進行更改,同時更改前面對應的ip地址
3、關閉防火墻:用sudo ufw version 來查看是否有防火墻
????開啟/關閉防火墻:sudo ufw enable/disable
?
SSH配置
1、終端輸入ssh localhost 來測試是否有sshserver
???如果出現request confuse,則使用sudo apt-get install openssh-server語句,安裝服務,一路回車
???教程網站https://www.linuxidc.com/Linux/2015-01/112045.htm
?
2、對新用戶user配置ssh公匙認證。
mkdir ~/.ssh 創建隱藏ssh文件夾
cd ~/.ssh 轉到ssh文件夾
ssh-keygen -t rsa ??生成密匙(不加sudo)
?
3、
如果權限不夠,無法生成rsa文件,則是.ssh文件夾權限不夠
更改.ssh文件夾權限:chmod ?777 ??~/.ssh
注:
如果無法更改可能是文件夾所屬權限問題,在root用戶下輸入:chown + -R + 所屬者 文件路徑 。可以把文件夾的權限更改到指定所有者,-R遞歸下面的每一個文件(夾)
?
4、scp ?~/.ssh/id_rsa.pub h1@192.168.45.72:~/.ssh/ras.pub
將host1上.ssh下的所有文件復制到主機host2上
然后在host2上追加:cat rsa.pub >> .ssh/authorized_keys
?
5、用ssh h1@192.168.43.38?命令測試是否成功(如果主機名一致可以不加h1@,如果不一致必須要加h1@)
?
6、用ls -al 語句顯示.ssh文件夾下的主要內容有4個:
授權鑰匙:authorized_keys(不一定有)
私有鑰匙:id_rsa
公用鑰匙:id_rsa.pub
登錄日志:known_hosts
?
?
JDK安裝配置:
(Ubuntu系統還要配置.bashrc文件:sudo gedit ~/.bashrc)
export JAVA_HOME=/usr/java/jdk1.8.0_191 export JRE_HOME=${JAVA_HOME}/jre export PATH=$PATH:${JAVA_HOME}/bin export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libUbuntu系統還要配置~/.bashrc文件
Source ~/.bashrc 更新
用 echo $PATH (或 Java -version)查看是否配置成功
?
?
HADOOP配置
1、下載Hadoop壓縮包(.tar),解壓到/home/h1/目錄下,重命名為hadoop
?
2、在hadoop目錄新建名為hdfs的文件夾
文件結構:/home/h1/hadoop/hdfs/
在hdfs文件夾下新建tmp文件夾
文件結構:/home/h1/hadoop/hdfs/tmp/
在hdfs文件夾下新建name文件夾
文件結構:/home/h1/hadoop/hdfs/name/
在hdfs文件夾下新建data文件夾
文件結構:/home/h1/hadoop/hdfs/data/
?
3、配置hadoop的配置文件:
先進入/home/h1/hadoop/etc/hadoop/文件夾下:
(實際操作中,用主機的ip地址代替master,用從機ip地址代替slave)
?
~1、配置core-site.xml文件(用sudo gedit core-site.xml 命令打開)
在<configuration></configuration>中加入以下代碼:?
<property><name>hadoop.tmp.dir</name><value>file:/home/h1/hadoop/hdfs/tmp</value><description>A base for other temporary directories.</description></property><property><name>io.file.buffer.size</name><value>131072</value></property><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property>注意:第一個屬性中的value和我們之前創建的/hadoop/hdfs/tmp路徑要一 ??致
?
~2、配置hadoop-env.sh文件(用sudo gedit hadoop-env.sh命令打開)
??將JAVA_HOME文件配置作為本機JAVA_HOME路徑
?????????
?
~3、配置yarn-env.sh文件(用sudo gedit yarn-env.sh 命令打開)
?????將其中的JAVA_HOME修改為本機的JAVA_HOME路徑(先把這一行#去掉)
?????????
?
~4、配置hdfs-site.xml文件(用sudo gedit hdfs-site.xml 命令打開)
??在<configuration></configuration>中加入以下代碼:
?<property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name> ??<value>file:/home/h1/hadoop/hdfs/name</value><final>true</final> </property><property><name>dfs.datanode.data.dir</name><value>file:/home/h1/hadoop/hdfs/data</value><final>true</final></property><property><name>dfs.namenode.secondary.http-address</name><value>master:9001</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property><property><name>dfs.permissions</name><value>false</value></property>注意(其中第二個dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前創建的/hdfs/name和/hdfs/data路徑一致;因為這里只有一個從主機slave1,所以dfs.replication設置為1)
?????????另外在這個文件中追加以下代碼,可以設置分塊大小:
<property>?? <name>dfs.blocksize</name>?? <value>31457280</value> </property>??<property> <name>dfs.namenode.fs-limits.min-block-size</name>? <value>31457280</value>? </property>?Value值為分塊的大小,31457280為30MB(以字節為單位。)
?
~5、復制mapred-site.xml.template文件,并命名為mapred-site.xml
(用sudo gedit mapred-site.xml 命令打開)
配置 mapred-site.xml,在標簽<configuration>中添加以下代碼
<property><name>mapreduce.framework.name</name><value>yarn</value></property>?
~6、配置yarn-site.xml文件(用sudo gedit yarn-site.xml?命令打開)
在<configuration>標簽中添加以下代碼
<property><name>yarn.resourcemanager.address</name><value>master:18040</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:18030</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>master:18088</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:18025</value></property><property><name>yarn.resourcemanager.admin.address</name><value>master:18141</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>~7、配置slaves文件(用sudo gedit slaves命令打開)
?????把原本的localhost刪掉,改成從機的主機名
?
?
4、配置hadoop的環境變量打開profile文件(sudo gedit /etc/profile)
(Ubuntu還有.bashrc)
在后面添加:
HADOOP_HOME=/home/h1/hadoop CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin然后用 source /etc/profile 命令刷新profile文件
用scp命令將hadoop文件夾拷貝到從機上,傳過去后在從機上面對hadoop進行環境變量配置,如4步。
?
5、初始化hadoop:hdfs namenode ?-format
?
6、開啟hadoop:start-all.sh
在master上鍵入jps看到4個文件表明成功
在h1上鍵入jps看到3個文件表明成功
?
7、測試hadoop:
???hadoop ??jar ??/home/h1/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar ?pi 10 10
出現上面圖片表明成功。
?
?
測試:
wordcount測試
1.在當前用戶目錄下建立hadoop_data文件夾
2.建立file1.txt?file2.txt文件,內容自定即可
3.在hadoop根目錄下建立文件夾
hdfs?dfs?-mkdir?/intput??
??查看hadoop根目錄
hdfs?dfs?-ls?/
4.將本地文件上傳到hadoop目錄下
hdfs?dfs?-put?/home/h1/hadoop_data/*.txt??/input/
5.執行測試程序
hadoop?jar?/home/h1/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar??wordcount??/input??/output
6.查看結果
hadoop?fs?-cat?/output/part-r-00000
?
?
補充:
1、初始化成功后,啟動失敗
初始化次數過多,namenode和hdfs文件夾內容不匹配
解決:刪除Hadoop 下的logs文件夾里面的所有內容
??????刪除hdfs文件夾下的三個文件夾,在重新創建三個文件夾
在重新初始化,在啟動。
?
2、jps找不到
配置~/.bashrc 和profile文件
?
3、初始化過多會進入安全模式:
退出安全模式:hadoop dfsadmin -safemode leave
總結
以上是生活随笔為你收集整理的Hadoop 详细配置文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 堆操作,版本二
- 下一篇: 梯度下降法进行线性回归---------