Hadoop2.7.5環境搭建
已編譯好的hadoop2.7.5(支援snappy)的安裝包:
伺服器環境為騰訊雲-Centos6.8,安裝hadoop單機模式,root使用者下安裝
注:hostname千萬不要包含下劃線 單機配置localhost
1. 配置主機名
騰訊雲不建議修改hostname,因騰訊雲伺服器預設hostname帶有下劃線則使用localhost。
2. 配置主機名和ip對映關係 hosts
vim /etc/hosts
#註釋127.0.0.1 hostname
ip hostname
3. 關閉防火牆
service iptables stop
chkconfig iptables off
4. 配置SSH免密碼登入
使用 ssh-keygen 命令生成公鑰和私鑰,這裡要注意的是可以對私鑰進行加密保護以增強安全性。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
上傳到伺服器
scp -r ~/.ssh/id_dsa.pub $hostname:/root/
目標機器將上傳的公鑰新增到自己的信任列表
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
5. 安裝依賴庫
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel
6. 配置maven環境
7. 安裝protocolbuf
7.1 下載安裝包
下載地址: https://github.com/google/protobuf/releases/tag/v2.5.0
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
7.2 解壓
tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
7.3 安裝
(1)./configure --prefix=/usr/local/protobuf
(2)make
(3)make check
(4)make install
2-4步用一個命令代替 make && make check && make install
7.4 設定環境變數
vim /etc/profile
#protoc setting
export PROTOC_HOME=/usr/local/protobuf
export PATH=$PATH:$PROTOC_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PROTOC_HOME/lib
#重新整理環境變數
source /etc/profile
7.5. 軟連結
ln -s /usr/local/protobuf/bin/protoc /usr/bin/protoc
輸入 protoc --version 有下面輸出結果則安裝並配置正確
8. 安裝findbugs
8.1 下載安裝包
下載地址:https://sourceforge.net/projects/findbugs/files/findbugs/
wget https://jaist.dl.sourceforge.net/project/findbugs/findbugs/1.3.9/findbugs-1.3.9.tar.gz
8.2 解壓縮
tar -zxvf findbugs-1.3.9.tar.gz -C /usr/local/
8.3 配置環境變數
vim /etc/profile
#findbugs settings
export FINDBUGS_HOME=/usr/local/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin
#重新整理環境變數
source /etc/profile
輸入findbugs -version,有下面輸出結果則安裝並配置正確。
9. 安裝 ant
yum -y install ant
ant -version
10. 編譯安裝snappy
# 用root使用者執行以下命令
10.1 下載安裝包
wget http://pkgs.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/snappy-1.1.1.tar.gz
10.2 解壓
tar -zxvf snappy-1.1.1.tar.gz
10.3 安裝
cd snappy-1.1.1/
./configure
make && make install
# 檢視snappy庫檔案
ls -lh /usr/local/lib |grep snappy
11. 編譯Hadoop
11.1 下載原始碼包
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.5/hadoop-2.7.5-src.tar.gz
11.2 解壓
tar -zxvf hadoop-2.7.5-src.tar.gz
cd hadoop-2.7.5-src/
mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy
執行成功後,hadoop-dist/target/hadoop-2.7.5.tar.gz即為新生成的二進位制安裝包。
12. 編譯hadoop-snappy(可選,在安裝hadoop後支援snappy庫時進行這一步)
已編譯好的包下載連結:https://pan.baidu.com/s/1-8vTwkIVOrXeL8xOp1O6nA 密碼:5slj
12.1 下載原始碼包
git clone https://github.com/electrum/hadoop-snappy.git
12.2 編譯
mvn package -Dsnappy.prefix=/usr/local
13. 安裝Hadoop
13.1 解壓縮編譯好的hadoop包
tar -zxvf hadoop-2.7.5-snappy.tar.gz -C /usr/local/
13.2 將編譯好的hadoop-snappy動態庫複製到$HADOOP_HOME/lib/native/ 目錄下
(若不是原始碼編譯hadoop支援snappy時,執行這一步操作)
cp /resources/hadoop-snappy/target/hadoop-snappy-0.0.1-SNAPSHOT-tar/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/* /usr/local/hadoop-2.7.5/lib/native/
13.3 配置環境變數
vim /etc/profile
#追加下面配置
#hadoop stand-alone settings
export HADOOP_HOME=/usr/local/hadoop-2.7.5
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$HADOOP_HOME/bin
#重新整理環境變數
source /etc/profile
13.4 配置hadoop(配置檔案在$HADOOP_HOME/etc/hadoop目錄下)
13.4.1 hadoop-env.sh
#配置JAVA_HOME
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk1.8.0_131
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native/
export HADOOP_LOG_DIR=/data/hadoop/logs/standalone
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export HADOOP_MAPRED_LOG_DIR=$HADOOP_LOG_DIR
13.4.2 core-site.xml
<!-- 用來指定hdfs的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 用來指定Hadoop執行時產生檔案的存放目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec
</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>localhost</value>
</property>
13.4.3 hdfs-site.xml
<!-- 指定HDFS儲存資料副本數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- namenode上儲存hdfs名字空間後設資料 -->
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<!-- datanode上資料塊的物理儲存位置 -->
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
<!-- 用於免密登入 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!-- 預設為true,namenode連線datanode時,會進行host解析查詢 -->
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>localhost</value>
<description>localhost對應DataNode所在伺服器主機名,可配置多個,用逗號隔開</description>
</property>
13.4.4 mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
替換配置檔案中的hostname, vi mapred-site.xml
:1,$s/mace/$hostname/g
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<!-- 告訴hadoop以後MR執行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/tmp/hadoop-yarn/staging</value>
</property>
13.4.5 slaves
配置hostname,單機為一個(localhost),叢集為多行
13.4.6 yarn-site.xml
<!-- NodeManager獲取資料的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 日誌聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日誌資訊儲存在檔案系統上的最長時間(一週) 秒為單位-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!-- 應用程式完成之後 NodeManager 的 DeletionService 刪除應用程式的本地化檔案和日誌目錄之前的時間(秒數)。要診斷 YARN 應用程式問題,請將此屬性的值設為足夠大(例如,設為 600 秒,即 10 分鐘)以允許檢查這些目錄 -->
<property>
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>604800</value>
</property>
<!-- 日誌聚合目錄 -->
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/var/log/hadoop-yarn/apps</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/logs/yar/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/data/hadoop/logs/yar/log</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://localhost:19888/jobhistory/logs</value>
</property>
<!-- 是否啟動一個執行緒檢查每個任務正使用的實體記憶體量,如果任務超出分配值,則直接將其殺掉,預設是true。 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否啟動一個執行緒檢查每個任務正使用的虛擬記憶體量,如果任務超出分配值,則直接將其殺掉,預設是true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
13.4.7 yarn-env.sh
vim yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_172
13.4 格式化namenode
cd /usr/local/hadoop-2.7.5
./bin/hdfs namenode -format
13.5 驗證是否安裝成功
hadoop version
hadoop checknative -a
14. 啟動與停止HDFS服務
#進入hadoop安裝目錄
cd $HADOOP_HOME
#啟動
./sbin/start-dfs.sh
#停止
./sbin/stop-dfs.sh
15. 啟動與停止yarn服務
#進入hadoop安裝目錄
cd $HADOOP_HOME
#啟動
./sbin/start-yarn.sh
#停止
./sbin/stop-yarn.sh
16. 啟動與停止jobhistory服務
#進入hadoop安裝目錄
cd $HADOOP_HOME
#啟動
./sbin/mr-jobhistory-daemon.sh start historyserver
#停止
./sbin/mr-jobhistory-daemon.sh stop historyserver
hadoop dfsadmin -report
17. UI介面
yarn http://ip:8088/cluster/cluster
namenode http://ip:50070
18. 提交wordcount作業測試環境
相關文章
- 環境搭建
- 搭建lnmp環境LNMP
- 搭建gym環境
- Linuxg環境搭建Linux
- JDK環境搭建JDK
- Angular環境搭建Angular
- anaconda 環境搭建
- ReactNative環境搭建React
- swoft 環境搭建
- Flutter環境搭建Flutter
- 搭建Java環境Java
- Supervisor 環境搭建
- react環境搭建React
- FNA環境搭建
- FNA 環境搭建
- Maven 環境搭建Maven
- Dubbo環境搭建
- Vagrant 環境搭建
- LNMP 環境搭建LNMP
- OpenGL 環境搭建
- App環境搭建APP
- gogs環境搭建Go
- Kubernetes環境搭建
- mac搭建環境Mac
- python環境搭建Python
- keil環境搭建
- Windows環境下的Nginx環境搭建WindowsNginx
- window環境下testlink環境搭建(xammp)
- 以太坊-Win環境下remix環境搭建REM
- GPU 環境搭建指南:使用 GPU Operator 加速 Kubernetes GPU 環境搭建GPU
- 【環境搭建】RocketMQ叢集搭建MQ
- React Native 環境搭建React Native
- WebDriver環境搭建使用Web
- Flutter環境搭建(Windows)FlutterWindows
- docker 搭建 lnmp 環境DockerLNMP
- Django框架環境搭建Django框架
- Mac Flutter環境搭建MacFlutter
- 搭建JAVAEE環境(一)Java