1. 程式人生 > >非root使用者搭建hadoop偽分散式

非root使用者搭建hadoop偽分散式

0、安裝軟體列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar 1、準備Linux環境(root使用者) 1.1、修改主機名:vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop1 1.2、修改上網IP #windows端: 開啟虛擬軟體VMware,Edit --> Virtual Network Editor下點選Restore Default。開啟網路和共享中心 -> 更改介面卡設定 -> 將連線網線的連線設定為“共享”,並共享給VMware Network Adapter VMnet8,此時IP為:192.168.137.1。 #Linux端: 修改配置檔案方式:vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" HWADDR="00:0C:29:3C:BF:E7" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c" IPADDR="192.168.137.31" NETMASK="255.255.255.0" GATEWAY="192.168.137.1" 1.3、修改主機名和IP的對映關係:
vim /etc/hosts 192.168.137.31 hadoop1 1.4、關閉防火牆 #檢視防火牆狀態 service iptables status #關閉防火牆 service iptables stop #關閉防火牆開機啟動 chkconfig iptables off #檢視防火牆開機啟動狀態 chkconfig iptables --list 1.5、重啟系統:reboot 2、配置ssh免登陸(非root使用者,這裡使用者名稱為hadoop 2.1、生成ssh免登陸金鑰 ssh-keygen -t rsa -P '' 執行完這個命令後,在~/.ssh目錄下生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰) 2.2、將公鑰拷貝到要免登陸的機器上 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 2.3、修改檔案authorized_keys許可權,如果不設定,在驗證時仍提示輸入密碼。 chmod 600 ~/.ssh/authorized_keys 2.4、用root使用者設定SSH配置檔案/etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile      .ssh/authorized_keys 2.5、重啟SSH服務,使剛才設定有效。 service sshd restart 2.6、退出root登入,使用hadoop普通使用者驗證是否成功。 ssh localhost 3、安裝JDK(非root使用者,這裡使用者名稱為
hadoop
3.1、上傳到/home/hadoop/soft 3.2、解壓安裝:tar -xvf jdk-7u25-linux-x64.tar.gz 3.3、將java新增到環境變數中:vim ~/.bash_profile #在檔案最後新增 export JAVA_HOME=/home/hadoop/jdk1.7.0_25 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin 3.4、重新整理配置:source ~/.bash_profile 3.5、檢驗安裝結果
:java -version java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b15) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) 4、安裝hadoop(非root使用者,這裡使用者名稱為hadoop 4.1、上傳到/home/hadoop/soft 4.2、解壓安裝:tar -xvf hadoop-2.5.0.tar.gz 4.3、配置hadoop(配置檔案目錄$HADOOP_HOME/etc/hadoop) 第一個:hadoop-env.sh export JAVA_HOME=/home/hadoop/jdk1.7.0_25 第二個:core-site.xml     <!-- 制定HDFS的老大(NameNode)的地址 -->     <property>         <name>fs.defaultFS</name>         <value>hdfs://hadoop1:9000</value>     </property>     <!-- 指定hadoop執行時產生檔案的儲存目錄 -->     <property>         <name>hadoop.tmp.dir</name>         <value>/home/hadoop/hadoop-2.5.0/tmp</value>     </property> 第三個:hdfs-site.xml     <!-- 指定HDFS副本的數量 -->     <property>         <name>dfs.replication</name>         <value>1</value>     </property> 第四個:mapred-site.xml     mv mapred-site.xml.template mapred-site.xml     vim mapred-site.xml     <!-- 指定mr執行在yarn上 -->     <property>         <name>mapreduce.framework.name</name>         <value>yarn</value>     </property> 第五個:yarn-site.xml     <!-- 指定YARN的老大(ResourceManager)的地址 -->     <property>         <name>yarn.resourcemanager.hostname</name>         <value>hadoop1</value>     </property>     <!-- reducer獲取資料的方式 -->     <property>         <name>yarn.nodemanager.aux-services</name>         <value>mapreduce_shuffle</value>     </property> 4.4、將hadoop新增到環境變數:vim ~/.bash_profile export JAVA_HOME=/home/hadoop/jdk1.7.0_25 export HADOOP_HOME=/home/hadoop/hadoop-2.5.0 export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 使配置生效:source ~/.bash_profile 4.5、格式化namenode(是對namenode進行初始化) hdfs namenode -format 4.6、啟動hadoop 先啟動HDFS:sbin/start-dfs.sh 再啟動YARN:sbin/start-yarn.sh 4.7、使用jps命令驗證是否啟動成功 27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode 4.8、開啟管理介面驗證是否啟動成功 http://192.168.137.31:50070/dfshealth.jsp(HDFS管理介面) http://192.168.137.31:8088/cluster(MR管理介面) 4.9、執行相關操作驗證是否啟動成功 第一種:上傳檔案。建立檔案words並上傳到hdfs,執行:hadoop fs -put ~/doc/words /test 第二種:統計字元。建立檔案words並已經上傳到hdfs,進入$HADOOP_HOME/share/hadoop/mapreduce,執行: hadoop jar hadoop-mapreduce-examples-2.5.0.jar wordcount /words /wordCount   部署過程中問題 1、hadoop “util.NativeCodeLoader: Unable to load native-hadoop library for your platform” hadoop安裝完以後,經常會提示一下警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...using builtin-java classes where applicable 搜了好多文章,都說是跟系統位數有關係,但我使用的Liunx、JDK、Hadoop都是64位。 【解決方式】需要下載hadoop-native-64-2.5.0.tar:http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.5.0.tar。下載完以後,解壓到hadoop的native目錄下,覆蓋原有檔案即可。操作如下:tar -xvf hadoop-native-64-2.5.0.tar -C /home/hadoop/hadoop-2.5.0/lib/native/