| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 关于Hadoop搭建经验 -> 正文阅读 |
|
[系统运维]关于Hadoop搭建经验 |
步骤一:vi? /etc/sysconfig/network-scripts/ifcfg-ens33 修改虚拟机IP地址 vi /etc/hosts 192.168.10.10 master 192.168.10.11 slave1 192.168.10.12 slave2??? 记录各虚拟机IP地址, vi? /etc/hostname master slave1 slave2 互相ping,使可以互相连接。 reboot 步骤二:systemctl stop firewalld? 关闭防火墙 reboot #ssh-keygen -t rsa生成密钥对 cd .ssh cat id_rsa.pub 查看密钥 在.ssh下编辑. vi? authorized_keys 将密钥复制 保存退出 scp? authorized_keys? root@slave1:/root/.ssh/ scp? authorized_keys? root@slave2:/root/.ssh/ 三台虚拟机互相连接 步骤三: 拖拽压缩包 # tar -xvf jdk-8u161-linux-x64.tar.gz # mv jdk1.8.0_161/ /usr/local/jdk1.8 在local目录下编辑 #vi? /etc/profile? 在末尾添加以下的内容: export JAVA_HOME=/usr/local/jdk1.8/ export JRE_HOME=/usr/local/jdk1.8/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 之后执行命令:#source /etc/profile
参考命令: #scp? -r? /usr/local/jdk1.8? root@slave1:/usr/local/ ?其中-r参数表示递归复制该目录下的所有目录和文件。 #scp? -r? /usr/local/jdk1.8? root@slave2:/usr/local/ #scp? /etc/profile? root@slave1:/etc/profile #scp? /etc/profile? root@slave2:/etc/profile 从master虚拟机拷贝/etc/profile到slave1和slave2并执行 #source? /etc/profile 步骤四、安装hadoop完全分布式集群
# tar -zxvf hadoop-2.6.0.tar.gz 移动Hadoop mv hadoop-2.6.0/ /usr/local/hadoop注:在普通用户下移动 cd /usr/local/hadoop mkdir tmp vi? /etc/profile export HADOOP_INSTALL=/usr/local/hadoop export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:${PATH} export HADOOP_MAPRED_HOME=${HADOOP_INSTALL} export HADOOP_COMMON_HOME=${HADOOP_INSTALL} export HADOOP_HDFS_HOME=${HADOOP_INSTALL} export YARN_HOME=${HADOOP_INSTALLL} cd ?/usr/local/hadoop/etc/hadoop
注意这里写的路径要对应实际的路径,下同
注意这两个value的值,路径要修改为实际的路径,hdfs://master主机的主机名。 <configuration> ?<property><!--hadoop临时文件的存放目录--> ? <name>hadoop.tmp.dir</name> ? <value>/usr/local/hadoop/tmp</value> ?</property> ?<property><!--NameNode 的URI默认端口为8020--> ? <name>fs.default.name</name> ? <value>hdfs://master</value> ?</property> </configuration>
注意这里的value要改成实际情况中的路径,数据需要备份的数量不能大于集群的机器数量,默认为3,由于只准备了两台slave虚拟机,所以已经改成2了。 <configuration> ?<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径--> ? <name>dfs.name.dir</name> ? <value>/usr/local/hadoop/dfs/name</value> ?</property> ?<property><!--DataNode存放块数据的本地文件系统路径--> ? <name>dfs.data.dir</name> ? <value>/usr/local/hadoop/dfs/data</value> ?</property> ?<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3--> ? <name>dfs.replication</name> ? <value>2</value> ?</property> </configuration>
注意这里需要修改主机名为master虚拟机的主机名,其它的用默认的就行了。 <configuration> <!-- Site specific YARN configuration properties --> <property><!--NodeManager上运行的附属服务,用于运行mapreduce--> ? <name>yarn.nodemanager.aux-services</name> ? <value>mapreduce_shuffle</value> </property> <property> <!--ResourceManager 对客户端暴露的地址--> ? <name>yarn.resourcemanager.address</name> ? <value>master:8032</value> </property> <property><!--ResourceManager 对ApplicationMaster暴露的地址--> <name>yarn.resourcemanager.scheduler.address</name> ? <value>master:8030</value> </property> <property><!--ResourceManager 对NodeManager暴露的地址--> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property><!--ResourceManager 对管理员暴露的地址--> <name>yarn.resourcemanager.master.address</name> ?<value>master:8033</value> </property> <property><!--ResourceManager 对外web暴露的地址,可在浏览器查看--> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration> (7)vim? mapred-site.xml ?(拷贝 mapred-site.xml.template) #cp? mapred-site.xml.template? mapred-site.xml #vim? mapred-site.xml <configuration> ?<property> ? <name>mapreduce.framework.name</name> ? <value>yarn</value> ?</property> </configuration> (8) vi slaves Slave1 Slave2 #scp? -r? /usr/local/hadoop? root@slave1:/usr/local/ #scp? -r? /usr/local/hadoop? root@slave2:/usr/local/ scp? /etc/profile? root@slave1:/etc/profile #source? /etc/profile 步骤五、初始化hdfs,启动hadoop集群(20分) 查看防火墙systemctl status firewalld
首先在进入相应的目录,例如:cd /usr/local/hadoop/bin 执行命令:./hadoop? namenode? -format 不报错的话,即执行成功,如图:? ? ?? 格式化成功后,可以在看到在hadoop/dfs/name/目录多了一个current目录
可以先进入相应的目录,例如:cd /usr/local/hadoop/sbin/ 脚本启动hadoop集群: ./start-all.sh 在slave1和slave2中用jps检查是否成功启动。 这时可以用浏览器访问网页内容 停止集群 ./stop-all.sh 步骤六:#hdfs dfs -ls? /? 可以查看hdfs的根目录。 # hdfs dfs -mkdir /input????????? 在根目录建立input目录 hdfs dfs -put ?/root/anaconda-ks.cfg? ?/input 注意关闭防火墙
参考示例:注意路径可能不同,要写实际的路径。 # hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input/*? ?/output 使用hdfs dfs -ls 命令查看wordcount程序运行结果目录 #hdfs dfs -ls / output 使用hdfs dfs -cat命令查看wordcount程序运行结果内容 # hdfs dfs -cat /output/part-r-00000 总结: 在学习中,遇到了各种错误,第一步可能会发生编辑的错误导致在xshell连接失败 还有net 桥连接要配置成功 第二步中容易将authorized_keys建立在其他目录,导致连接的失败 第三步中解压jdk1.8,我在操作的几遍中基本正确 第四步vi编辑要记住指令与 从master虚拟机拷贝hadoop到slave1和slave2中步骤要按部就班 第五步要关闭防火墙,在第二遍中因为防火墙没关导致在网页无法连接 第六步基本无错误 查看防火墙systemctl status firewalld |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:56:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |